Socket
Socket
Sign inDemoInstall

treem

Package Overview
Dependencies
4
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.1.0 to 1.1.1

2

lib/header.js

@@ -71,2 +71,2 @@ "use strict";

exports.default = Header;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWFkZXIuanMiXSwibmFtZXMiOlsiSGVhZGVyIiwibmFtZSIsImFsaWFzIiwic2VwYXJhdG9yIiwiZGV0ZWN0IiwiX25hbWUiLCJfZWxlbWVudHMiLCJzcGxpdCIsIl9kZXB0aCIsImxlbmd0aCIsIl9wcm9wZXJ0eSIsImlzS2V5Iiwia2V5IiwiY2hlY2siLCJfaXNLZXkiLCJfbm9kZXMiLCJpIiwiY29sbGVjdGlvbiIsImlzQ29sbGVjdGlvbiIsInB1c2giXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7SUFBcUJBLE07QUFFbkIsa0JBQVlDLElBQVosRUFBa0JDLEtBQWxCLEVBQXlCQyxTQUF6QixFQUFvQ0MsTUFBcEMsRUFBNEM7QUFBQTs7QUFDMUMsU0FBS0MsS0FBTCxHQUFhSixJQUFiO0FBQ0EsU0FBS0ssU0FBTCxHQUFpQkosTUFBTUssS0FBTixDQUFZSixTQUFaLENBQWpCO0FBQ0EsU0FBS0ssTUFBTCxHQUFjLEtBQUtGLFNBQUwsQ0FBZUcsTUFBZixHQUF3QixDQUF0QztBQUNBLFNBQUtDLFNBQUwsR0FBaUIsS0FBS0osU0FBTCxDQUFlLEtBQUtFLE1BQXBCLENBQWpCO0FBQ0EsUUFBTUcsUUFBUVAsT0FBT1EsR0FBUCxDQUFXLEtBQUtGLFNBQWhCLENBQWQ7QUFDQSxRQUFJQyxNQUFNRSxLQUFWLEVBQWlCO0FBQ2YsV0FBS0MsTUFBTCxHQUFjLElBQWQ7QUFDQSxXQUFLSixTQUFMLEdBQWlCQyxNQUFNVixJQUF2QjtBQUNELEtBSEQsTUFHTztBQUNMLFdBQUthLE1BQUwsR0FBYyxLQUFkO0FBQ0Q7QUFDRCxTQUFLQyxNQUFMLEdBQWMsRUFBZDtBQUNBLFNBQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJLEtBQUtWLFNBQUwsQ0FBZUcsTUFBZixHQUF3QixDQUE1QyxFQUErQ08sR0FBL0MsRUFBb0Q7QUFDbEQsVUFBTUMsYUFBYWIsT0FBT2EsVUFBUCxDQUFrQixLQUFLWCxTQUFMLENBQWVVLENBQWYsQ0FBbEIsQ0FBbkI7QUFDQSxVQUFNZixRQUFPZ0IsV0FBV0osS0FBWCxHQUFtQkksV0FBV2hCLElBQTlCLEdBQXFDLEtBQUtLLFNBQUwsQ0FBZVUsQ0FBZixDQUFsRDtBQUNBLFVBQU1FLGVBQWVELFdBQVdKLEtBQWhDO0FBQ0EsV0FBS0UsTUFBTCxDQUFZSSxJQUFaLENBQWlCLEVBQUNsQixXQUFELEVBQU9pQiwwQkFBUCxFQUFqQjtBQUNEO0FBQ0Y7Ozs7NEJBa0JPO0FBQ04sYUFBTyxLQUFLSixNQUFaO0FBQ0Q7Ozt3QkFsQlU7QUFDVCxhQUFPLEtBQUtULEtBQVo7QUFDRDs7O3dCQUVXO0FBQ1YsYUFBTyxLQUFLRyxNQUFaO0FBQ0Q7Ozt3QkFFYztBQUNiLGFBQU8sS0FBS0UsU0FBWjtBQUNEOzs7d0JBRVc7QUFDVixhQUFPLEtBQUtLLE1BQVo7QUFDRDs7Ozs7a0JBckNrQmYsTSIsImZpbGUiOiJoZWFkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBjbGFzcyBIZWFkZXIge1xuXG4gIGNvbnN0cnVjdG9yKG5hbWUsIGFsaWFzLCBzZXBhcmF0b3IsIGRldGVjdCkge1xuICAgIHRoaXMuX25hbWUgPSBuYW1lO1xuICAgIHRoaXMuX2VsZW1lbnRzID0gYWxpYXMuc3BsaXQoc2VwYXJhdG9yKTtcbiAgICB0aGlzLl9kZXB0aCA9IHRoaXMuX2VsZW1lbnRzLmxlbmd0aCAtIDE7XG4gICAgdGhpcy5fcHJvcGVydHkgPSB0aGlzLl9lbGVtZW50c1t0aGlzLl9kZXB0aF07XG4gICAgY29uc3QgaXNLZXkgPSBkZXRlY3Qua2V5KHRoaXMuX3Byb3BlcnR5KTtcbiAgICBpZiAoaXNLZXkuY2hlY2spIHtcbiAgICAgIHRoaXMuX2lzS2V5ID0gdHJ1ZTtcbiAgICAgIHRoaXMuX3Byb3BlcnR5ID0gaXNLZXkubmFtZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faXNLZXkgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5fbm9kZXMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2VsZW1lbnRzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgY29uc3QgY29sbGVjdGlvbiA9IGRldGVjdC5jb2xsZWN0aW9uKHRoaXMuX2VsZW1lbnRzW2ldKTtcbiAgICAgIGNvbnN0IG5hbWUgPSBjb2xsZWN0aW9uLmNoZWNrID8gY29sbGVjdGlvbi5uYW1lIDogdGhpcy5fZWxlbWVudHNbaV07XG4gICAgICBjb25zdCBpc0NvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLmNoZWNrO1xuICAgICAgdGhpcy5fbm9kZXMucHVzaCh7bmFtZSwgaXNDb2xsZWN0aW9ufSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gIH1cblxuICBnZXQgZGVwdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlcHRoO1xuICB9XG5cbiAgZ2V0IHByb3BlcnR5KCkge1xuICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0eTtcbiAgfVxuXG4gIGdldCBub2RlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fbm9kZXM7XG4gIH1cblxuICBpc0tleSgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNLZXk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWFkZXIuanMiXSwibmFtZXMiOlsiSGVhZGVyIiwibmFtZSIsImFsaWFzIiwic2VwYXJhdG9yIiwiZGV0ZWN0IiwiX25hbWUiLCJfZWxlbWVudHMiLCJzcGxpdCIsIl9kZXB0aCIsImxlbmd0aCIsIl9wcm9wZXJ0eSIsImlzS2V5Iiwia2V5IiwiY2hlY2siLCJfaXNLZXkiLCJfbm9kZXMiLCJpIiwiY29sbGVjdGlvbiIsImlzQ29sbGVjdGlvbiIsInB1c2giXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7SUFBcUJBLE07QUFFbkIsa0JBQVlDLElBQVosRUFBa0JDLEtBQWxCLEVBQXlCQyxTQUF6QixFQUFvQ0MsTUFBcEMsRUFBNEM7QUFBQTs7QUFDMUMsU0FBS0MsS0FBTCxHQUFhSixJQUFiO0FBQ0EsU0FBS0ssU0FBTCxHQUFpQkosTUFBTUssS0FBTixDQUFZSixTQUFaLENBQWpCO0FBQ0EsU0FBS0ssTUFBTCxHQUFjLEtBQUtGLFNBQUwsQ0FBZUcsTUFBZixHQUF3QixDQUF0QztBQUNBLFNBQUtDLFNBQUwsR0FBaUIsS0FBS0osU0FBTCxDQUFlLEtBQUtFLE1BQXBCLENBQWpCO0FBQ0EsUUFBTUcsUUFBUVAsT0FBT1EsR0FBUCxDQUFXLEtBQUtGLFNBQWhCLENBQWQ7QUFDQSxRQUFJQyxNQUFNRSxLQUFWLEVBQWlCO0FBQ2YsV0FBS0MsTUFBTCxHQUFjLElBQWQ7QUFDQSxXQUFLSixTQUFMLEdBQWlCQyxNQUFNVixJQUF2QjtBQUNELEtBSEQsTUFHTztBQUNMLFdBQUthLE1BQUwsR0FBYyxLQUFkO0FBQ0Q7QUFDRCxTQUFLQyxNQUFMLEdBQWMsRUFBZDtBQUNBLFNBQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJLEtBQUtWLFNBQUwsQ0FBZUcsTUFBZixHQUF3QixDQUE1QyxFQUErQ08sR0FBL0MsRUFBb0Q7QUFDbEQsVUFBTUMsYUFBYWIsT0FBT2EsVUFBUCxDQUFrQixLQUFLWCxTQUFMLENBQWVVLENBQWYsQ0FBbEIsQ0FBbkI7QUFDQSxVQUFNZixRQUFPZ0IsV0FBV0osS0FBWCxHQUFtQkksV0FBV2hCLElBQTlCLEdBQXFDLEtBQUtLLFNBQUwsQ0FBZVUsQ0FBZixDQUFsRDtBQUNBLFVBQU1FLGVBQWVELFdBQVdKLEtBQWhDO0FBQ0EsV0FBS0UsTUFBTCxDQUFZSSxJQUFaLENBQWlCLEVBQUNsQixXQUFELEVBQU9pQiwwQkFBUCxFQUFqQjtBQUNEO0FBQ0Y7Ozs7NEJBa0JPO0FBQ04sYUFBTyxLQUFLSixNQUFaO0FBQ0Q7Ozt3QkFsQlU7QUFDVCxhQUFPLEtBQUtULEtBQVo7QUFDRDs7O3dCQUVXO0FBQ1YsYUFBTyxLQUFLRyxNQUFaO0FBQ0Q7Ozt3QkFFYztBQUNiLGFBQU8sS0FBS0UsU0FBWjtBQUNEOzs7d0JBRVc7QUFDVixhQUFPLEtBQUtLLE1BQVo7QUFDRDs7Ozs7a0JBckNrQmYsTSIsImZpbGUiOiJoZWFkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBjbGFzcyBIZWFkZXIge1xuXG4gIGNvbnN0cnVjdG9yKG5hbWUsIGFsaWFzLCBzZXBhcmF0b3IsIGRldGVjdCkge1xuICAgIHRoaXMuX25hbWUgPSBuYW1lO1xuICAgIHRoaXMuX2VsZW1lbnRzID0gYWxpYXMuc3BsaXQoc2VwYXJhdG9yKTtcbiAgICB0aGlzLl9kZXB0aCA9IHRoaXMuX2VsZW1lbnRzLmxlbmd0aCAtIDE7XG4gICAgdGhpcy5fcHJvcGVydHkgPSB0aGlzLl9lbGVtZW50c1t0aGlzLl9kZXB0aF07XG4gICAgY29uc3QgaXNLZXkgPSBkZXRlY3Qua2V5KHRoaXMuX3Byb3BlcnR5KTtcbiAgICBpZiAoaXNLZXkuY2hlY2spIHtcbiAgICAgIHRoaXMuX2lzS2V5ID0gdHJ1ZTtcbiAgICAgIHRoaXMuX3Byb3BlcnR5ID0gaXNLZXkubmFtZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faXNLZXkgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5fbm9kZXMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2VsZW1lbnRzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgY29uc3QgY29sbGVjdGlvbiA9IGRldGVjdC5jb2xsZWN0aW9uKHRoaXMuX2VsZW1lbnRzW2ldKTtcbiAgICAgIGNvbnN0IG5hbWUgPSBjb2xsZWN0aW9uLmNoZWNrID8gY29sbGVjdGlvbi5uYW1lIDogdGhpcy5fZWxlbWVudHNbaV07XG4gICAgICBjb25zdCBpc0NvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLmNoZWNrO1xuICAgICAgdGhpcy5fbm9kZXMucHVzaCh7bmFtZSwgaXNDb2xsZWN0aW9ufSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gIH1cblxuICBnZXQgZGVwdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlcHRoO1xuICB9XG5cbiAgZ2V0IHByb3BlcnR5KCkge1xuICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0eTtcbiAgfVxuXG4gIGdldCBub2RlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fbm9kZXM7XG4gIH1cblxuICBpc0tleSgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNLZXk7XG4gIH1cbn1cbiJdfQ==

@@ -85,89 +85,85 @@ 'use strict';

if (!this._data.has(key)) {
(function () {
var prune = true;
var newDatum = _this2._config.wrap.single(_this2._nodeName);
// set my properties
_this2._properties.forEach(function (_ref2) {
var property = _ref2.property,
name = _ref2.name;
var prune = true;
var newDatum = this._config.wrap.single(this._nodeName);
// set my properties
this._properties.forEach(function (_ref2) {
var property = _ref2.property,
name = _ref2.name;
if (!_this2._config.prune(row[name])) {
newDatum[property] = row[name];
if (!_this2._config.prune(row[name])) {
newDatum[property] = row[name];
prune = false;
}
});
// set placeholders for my children and call them
this._children.forEach(function (node, name) {
if (node._isCollection) {
newDatum[name] = _this2._config.wrap.collection(_this2._nodeName);
node.add(row, newDatum);
if (newDatum[name].length > 0) prune = false;
} else {
newDatum[name] = null;
node.add(row, newDatum);
if (newDatum[name] !== null) {
prune = false;
}
});
// set placeholders for my children and call them
_this2._children.forEach(function (node, name) {
if (node._isCollection) {
newDatum[name] = _this2._config.wrap.collection(_this2._nodeName);
node.add(row, newDatum);
if (newDatum[name].length > 0) prune = false;
} else {
newDatum[name] = null;
node.add(row, newDatum);
if (newDatum[name] !== null) {
prune = false;
} else {
delete newDatum[name];
}
delete newDatum[name];
}
});
var finalDatum = prune ? null : newDatum;
// add me to my parent's properties
_this2._parentData.set(finalDatum, new _set2.default([parentDatum]));
_this2._addToParent(parentDatum, finalDatum);
// memorize me
_this2._data.set(key, finalDatum);
})();
}
});
var finalDatum = prune ? null : newDatum;
// add me to my parent's properties
this._parentData.set(finalDatum, new _set2.default([parentDatum]));
this._addToParent(parentDatum, finalDatum);
// memorize me
this._data.set(key, finalDatum);
} else {
(function () {
var datum = _this2._data.get(key);
var prune = true;
var currentDatum = null;
// the cached datum can be null because of prune
if (datum !== null) {
prune = false;
currentDatum = datum;
var datum = this._data.get(key);
var _prune = true;
var currentDatum = null;
// the cached datum can be null because of prune
if (datum !== null) {
_prune = false;
currentDatum = datum;
} else {
currentDatum = this._config.wrap.single(this._nodeName);
}
this._children.forEach(function (node, name) {
if (node._isCollection) {
// the cached datum is null so create a new collection
if (datum === null) {
currentDatum[name] = _this2._config.wrap.collection(_this2._nodeName);
}
node.add(row, currentDatum);
if (currentDatum[name].length > 0) {
_prune = false;
}
} else {
currentDatum = _this2._config.wrap.single(_this2._nodeName);
}
_this2._children.forEach(function (node, name) {
if (node._isCollection) {
// the cached datum is null so create a new collection
if (datum === null) {
currentDatum[name] = _this2._config.wrap.collection(_this2._nodeName);
}
node.add(row, currentDatum);
if (currentDatum[name].length > 0) {
prune = false;
}
if (datum === null) {
currentDatum[name] = null;
}
var memObject = currentDatum[name];
// memObject can be undefined because of prune
if (memObject === undefined) {
memObject = null;
}
node.add(row, currentDatum);
// if overwrite is not allowed, use the memObject
// note : memObject may have changed because of additional rows in sub-collections
if (!_this2._config.overwriteObject) {
currentDatum[name] = memObject;
}
if (currentDatum[name] !== null) {
_prune = false;
} else {
if (datum === null) {
currentDatum[name] = null;
}
var memObject = currentDatum[name];
// memObject can be undefined because of prune
if (memObject === undefined) {
memObject = null;
}
node.add(row, currentDatum);
// if overwrite is not allowed, use the memObject
// note : memObject may have changed because of additional rows in sub-collections
if (!_this2._config.overwriteObject) {
currentDatum[name] = memObject;
}
if (currentDatum[name] !== null) {
prune = false;
} else {
delete currentDatum[name];
}
delete currentDatum[name];
}
});
var finalDatum = prune ? null : currentDatum;
var parentData = _this2._parentData.get(finalDatum);
if (!parentData.has(parentDatum)) {
_this2._addToParent(parentDatum, finalDatum);
parentData.add(parentDatum);
}
})();
});
var _finalDatum = _prune ? null : currentDatum;
var parentData = this._parentData.get(_finalDatum);
if (!parentData.has(parentDatum)) {
this._addToParent(parentDatum, _finalDatum);
parentData.add(parentDatum);
}
}

@@ -190,2 +186,2 @@ }

exports.default = Node;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlLmpzIl0sIm5hbWVzIjpbIk5vZGUiLCJuYW1lIiwiaGVhZGVycyIsImNvbmZpZyIsImlzQ29sbGVjdGlvbiIsImRlcHRoIiwiX25hbWUiLCJfY29uZmlnIiwiX2tleXMiLCJfcHJvcGVydGllcyIsIl9jaGlsZHJlbiIsIl9kYXRhIiwiX3BhcmVudERhdGEiLCJfaXNDb2xsZWN0aW9uIiwiX25vZGVOYW1lIiwiY2hpbGRyZW4iLCJmb3JFYWNoIiwiaGVhZGVyIiwicHVzaCIsImlzS2V5IiwiY2hpbGQiLCJub2RlcyIsImhhcyIsInNldCIsImdldCIsImxlbmd0aCIsIm1hcCIsIl9yZXVzZU9iamVjdCIsInJldXNlT2JqZWN0Iiwicm93IiwicGFyZW50RGF0dW0iLCJhcnJheUtleSIsImtleSIsImVxdWFsQXJyYXkiLCJwcnVuZSIsIm5ld0RhdHVtIiwid3JhcCIsInNpbmdsZSIsInByb3BlcnR5Iiwibm9kZSIsImNvbGxlY3Rpb24iLCJhZGQiLCJmaW5hbERhdHVtIiwiX2FkZFRvUGFyZW50IiwiZGF0dW0iLCJjdXJyZW50RGF0dW0iLCJtZW1PYmplY3QiLCJ1bmRlZmluZWQiLCJvdmVyd3JpdGVPYmplY3QiLCJwYXJlbnREYXRhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFBcUJBLEk7QUFFbkIsZ0JBQVlDLElBQVosRUFBa0JDLE9BQWxCLEVBQTJCQyxNQUEzQixFQUFtQ0MsWUFBbkMsRUFBNkQ7QUFBQTs7QUFBQSxRQUFaQyxLQUFZLHVFQUFKLENBQUk7QUFBQTs7QUFDM0QsU0FBS0MsS0FBTCxHQUFhTCxJQUFiO0FBQ0EsU0FBS00sT0FBTCxHQUFlSixNQUFmO0FBQ0EsU0FBS0ssS0FBTCxHQUFhLEVBQWI7QUFDQSxTQUFLQyxXQUFMLEdBQW1CLEVBQW5CO0FBQ0EsU0FBS0MsU0FBTCxHQUFpQixtQkFBakI7QUFDQSxTQUFLQyxLQUFMLEdBQWEsbUJBQWI7QUFDQSxTQUFLQyxXQUFMLEdBQW1CLG1CQUFu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RCxhQUFhNUMsSUFBYixNQUF1QixJQUEzQixFQUFpQztBQUMvQmlDLHdCQUFRLEtBQVI7QUFDRCxlQUZELE1BRU87QUFDTCx1QkFBT1csYUFBYTVDLElBQWIsQ0FBUDtBQUNEO0FBQ0Y7QUFDRixXQS9CRDtBQWdDQSxjQUFNeUMsYUFBYVIsUUFBUSxJQUFSLEdBQWVXLFlBQWxDO0FBQ0EsY0FBTUksYUFBYSxPQUFLckMsV0FBTCxDQUFpQlksR0FBakIsQ0FBcUJrQixVQUFyQixDQUFuQjtBQUNBLGNBQUksQ0FBQ08sV0FBVzNCLEdBQVgsQ0FBZVEsV0FBZixDQUFMLEVBQWtDO0FBQ2hDLG1CQUFLYSxZQUFMLENBQWtCYixXQUFsQixFQUErQlksVUFBL0I7QUFDQU8sdUJBQVdSLEdBQVgsQ0FBZVgsV0FBZjtBQUNEO0FBaERJO0FBaUROO0FBQ0Y7OztpQ0FFWUEsVyxFQUFhYyxLLEVBQU07QUFDOUIsVUFBSUEsVUFBVSxJQUFkLEVBQW9CO0FBQ3BCLFVBQUksS0FBSy9CLGFBQVQsRUFBd0I7QUFDdEJpQixvQkFBWSxLQUFLeEIsS0FBakIsRUFBd0JZLElBQXhCLENBQTZCMEIsS0FBN0I7QUFDRCxPQUZELE1BRU87QUFDTGQsb0JBQVksS0FBS3hCLEtBQWpCLElBQTBCc0MsS0FBMUI7QUFDRDtBQUNGOzs7OztrQkF6SWtCNUMsSSIsImZpbGUiOiJub2RlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgTm9kZSB7XG5cbiAgY29uc3RydWN0b3IobmFtZSwgaGVhZGVycywgY29uZmlnLCBpc0NvbGxlY3Rpb24sIGRlcHRoID0gMCApIHtcbiAgICB0aGlzLl9uYW1lID0gbmFtZTtcbiAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgdGhpcy5fa2V5cyA9IFtdO1xuICAgIHRoaXMuX3Byb3BlcnRpZXMgPSBbXTtcbiAgICB0aGlzLl9jaGlsZHJlbiA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLl9kYXRhID0gbmV3IE1hcCgpO1xuICAgIHRoaXMuX3BhcmVudERhdGEgPSBuZXcgTWFwKCk7XG4gICAgdGhpcy5faXNDb2xsZWN0aW9uID0gaXNDb2xsZWN0aW9uO1xuICAgIHRoaXMuX25vZGVOYW1lID0gZGVwdGggPT09IDAgPyAnJyA6IHRoaXMuX25hbWU7XG5cbiAgICBjb25zdCBjaGlsZHJlbiA9IG5ldyBNYXAoKTtcbiAgICBoZWFkZXJzLmZvckVhY2goaGVhZGVyID0+IHtcbiAgICAgIGlmIChoZWFkZXIuZGVwdGggPT09IGRlcHRoKSB7XG4gICAgICAgIHRoaXMuX3Byb3BlcnRpZXMucHVzaChoZWFkZXIpO1xuICAgICAgICBpZiAoaGVhZGVyLmlzS2V5KCkpIHtcbiAgICAgICAgICB0aGlzLl9rZXlzLnB1c2goaGVhZGVyLm5hbWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjaGlsZCA9IGhlYWRlci5ub2Rlc1tkZXB0aF07XG4gICAgICAgIGlmICghY2hpbGRyZW4uaGFzKGNoaWxkLm5hbWUpKSB7XG4gICAgICAgICAgY2hpbGRyZW4uc2V0KGNoaWxkLm5hbWUsIHtpc0NvbGxlY3Rpb246IGNoaWxkLmlzQ29sbGVjdGlvbiwgaGVhZGVyczogW119KTtcbiAgICAgICAgfVxuICAgICAgICBjaGlsZHJlbi5nZXQoY2hpbGQubmFtZSkuaGVhZGVycy5wdXNoKGhlYWRlcik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQsIG5hbWUpID0+IHtcbiAgICAgICAgdGhpcy5fY2hpbGRyZW4uc2V0KG5hbWUsIG5ldyBOb2RlKG5hbWUsIGNoaWxkLmhlYWRlcnMsIGNvbmZpZywgY2hpbGQuaXNDb2xsZWN0aW9uLCBkZXB0aCArIDEpKTtcbiAgICB9KTtcbiAgICAvLyBpZiBubyBrZXksIHVzZSBhbGwgcHJvcGVydGllcyBhcyBrZXlzXG4gICAgaWYgKHRoaXMuX2tleXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLl9rZXlzID0gdGhpcy5fcHJvcGVydGllcy5tYXAoKHtuYW1lfSkgPT4gbmFtZSk7XG4gICAgICB0aGlzLl9yZXVzZU9iamVjdCA9IHRoaXMuX2NvbmZpZy5yZXVzZU9iamVjdCA9PT0gJ2tleScgPyBmYWxzZSA6IHRoaXMuX2NvbmZpZy5yZXVzZU9iamVjdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcmV1c2VPYmplY3QgPSB0aGlzLl9jb25maWcucmV1c2VPYmplY3QgPT09ICdrZXknID8gdHJ1ZSA6IHRoaXMuX2NvbmZpZy5yZXVzZU9iamVjdDtcbiAgICB9XG4gIH1cblxuICBhZGQocm93LCBwYXJlbnREYXR1bSkge1xuICAgIGNvbnN0IGFycmF5S2V5ID0gdGhpcy5fa2V5cy5tYXAoa2V5ID0+IHJvd1trZXldKTtcbiAgICBpZiAoIXRoaXMuX3JldXNlT2JqZWN0KSB7XG4gICAgICBhcnJheUtleS5wdXNoKHBhcmVudERhdHVtKTtcbiAgICB9XG4gICAgY29uc3Qga2V5ID0gdGhpcy5fY29uZmlnLmVxdWFsQXJyYXkoYXJyYXlLZXkpO1xuICAgIGlmICghdGhpcy5fZGF0YS5oYXMoa2V5KSkge1xuICAgICAgbGV0IHBydW5lID0gdHJ1ZTtcbiAgICAgIGNvbnN0IG5ld0RhdHVtID0gdGhpcy5fY29uZmlnLndyYXAuc2luZ2xlKHRoaXMuX25vZGVOYW1lKTtcbiAgICAgIC8vIHNldCBteSBwcm9wZXJ0aWVzXG4gICAgICB0aGlzLl9wcm9wZXJ0aWVzLmZvckVhY2goKHtwcm9wZXJ0eSwgbmFtZX0pID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLl9jb25maWcucHJ1bmUocm93W25hbWVdKSkge1xuICAgICAgICAgIG5ld0RhdHVtW3Byb3BlcnR5XSA9IHJvd1tuYW1lXTtcbiAgICAgICAgICBwcnVuZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIC8vIHNldCBwbGFjZWhvbGRlcnMgZm9yIG15IGNoaWxkcmVuIGFuZCBjYWxsIHRoZW1cbiAgICAgIHRoaXMuX2NoaWxkcmVuLmZvckVhY2goKG5vZGUsIG5hbWUpID0+IHtcbiAgICAgICAgaWYgKG5vZGUuX2lzQ29sbGVjdGlvbikge1xuICAgICAgICAgIG5ld0RhdHVtW25hbWVdID0gdGhpcy5fY29uZmlnLndyYXAuY29sbGVjdGlvbih0aGlzLl9ub2RlTmFtZSk7XG4gICAgICAgICAgbm9kZS5hZGQocm93LCBuZXdEYXR1bSk7XG4gICAgICAgICAgaWYgKG5ld0RhdHVtW25hbWVdLmxlbmd0aCA+IDApIHBydW5lID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3RGF0dW1bbmFtZV0gPSBudWxsO1xuICAgICAgICAgIG5vZGUuYWRkKHJvdywgbmV3RGF0dW0pO1xuICAgICAgICAgIGlmIChuZXdEYXR1bVtuYW1lXSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcHJ1bmUgPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsZXRlIG5ld0RhdHVtW25hbWVdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBjb25zdCBmaW5hbERhdHVtID0gcHJ1bmUgPyBudWxsIDogbmV3RGF0dW07XG4gICAgICAvLyBhZGQgbWUgdG8gbXkgcGFyZW50J3MgcHJvcGVydGllc1xuICAgICAgdGhpcy5fcGFyZW50RGF0YS5zZXQoZmluYWxEYXR1bSwgbmV3IFNldChbcGFyZW50RGF0dW1dKSk7XG4gICAgICB0aGlzLl9hZGRUb1BhcmVudChwYXJlbnREYXR1bSwgZmluYWxEYXR1bSk7XG4gICAgICAvLyBtZW1vcml6ZSBtZVxuICAgICAgdGhpcy5fZGF0YS5zZXQoa2V5LCBmaW5hbERhdHVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZGF0dW0gPSB0aGlzLl9kYXRhLmdldChrZXkpO1xuICAgICAgbGV0IHBydW5lID0gdHJ1ZTtcbiAgICAgIGxldCBjdXJyZW50RGF0dW0gPSBudWxsO1xuICAgICAgLy8gdGhlIGNhY2hlZCBkYXR1bSBjYW4gYmUgbnVsbCBiZWNhdXNlIG9mIHBydW5lXG4gICAgICBpZiAoZGF0dW0gIT09IG51bGwpIHtcbiAgICAgICAgcHJ1bmUgPSBmYWxzZTtcbiAgICAgICAgY3VycmVudERhdHVtID0gZGF0dW07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdXJyZW50RGF0dW0gPSB0aGlzLl9jb25maWcud3JhcC5zaW5nbGUodGhpcy5fbm9kZU5hbWUpO1xuICAgICAgfVxuICAgICAgdGhpcy5fY2hpbGRyZW4uZm9yRWFjaCgobm9kZSwgbmFtZSkgPT4ge1xuICAgICAgICBpZiAobm9kZS5faXNDb2xsZWN0aW9uKSB7XG4gICAgICAgICAgLy8gdGhlIGNhY2hlZCBkYXR1bSBpcyBudWxsIHNvIGNyZWF0ZSBhIG5ldyBjb2xsZWN0aW9uXG4gICAgICAgICAgaWYgKGRhdHVtID09PSBudWxsKSB7XG4gICAgICAgICAgICBjdXJyZW50RGF0dW1bbmFtZV0gPSB0aGlzLl9jb25maWcud3JhcC5jb2xsZWN0aW9uKHRoaXMuX25vZGVOYW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbm9kZS5hZGQocm93LCBjdXJyZW50RGF0dW0pO1xuICAgICAgICAgIGlmIChjdXJyZW50RGF0dW1bbmFtZV0ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcHJ1bmUgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGRhdHVtID09PSBudWxsKSB7XG4gICAgICAgICAgICBjdXJyZW50RGF0dW1bbmFtZV0gPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsZXQgbWVtT2JqZWN0ID0gY3VycmVudERhdHVtW25hbWVdO1xuICAgICAgICAgIC8vICBtZW1PYmplY3QgY2FuIGJlIHVuZGVmaW5lZCBiZWNhdXNlIG9mIHBydW5lXG4gICAgICAgICAgaWYgKG1lbU9iamVjdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBtZW1PYmplY3QgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICBub2RlLmFkZChyb3csIGN1cnJlbnREYXR1bSk7XG4gICAgICAgICAgLy8gaWYgb3ZlcndyaXRlIGlzIG5vdCBhbGxvd2VkLCB1c2UgdGhlIG1lbU9iamVjdFxuICAgICAgICAgIC8vIG5vdGUgOiBtZW1PYmplY3QgbWF5IGhhdmUgY2hhbmdlZCBiZWNhdXNlIG9mIGFkZGl0aW9uYWwgcm93cyBpbiBzdWItY29sbGVjdGlvbnNcbiAgICAgICAgICBpZiAoIXRoaXMuX2NvbmZpZy5vdmVyd3JpdGVPYmplY3QpIHtcbiAgICAgICAgICAgIGN1cnJlbnREYXR1bVtuYW1lXSA9IG1lbU9iamVjdDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGN1cnJlbnREYXR1bVtuYW1lXSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcHJ1bmUgPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsZXRlIGN1cnJlbnREYXR1bVtuYW1lXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgY29uc3QgZmluYWxEYXR1bSA9IHBydW5lID8gbnVsbCA6IGN1cnJlbnREYXR1bTtcbiAgICAgIGNvbnN0IHBhcmVudERhdGEgPSB0aGlzLl9wYXJlbnREYXRhLmdldChmaW5hbERhdHVtKTtcbiAgICAgIGlmICghcGFyZW50RGF0YS5oYXMocGFyZW50RGF0dW0pKSB7XG4gICAgICAgIHRoaXMuX2FkZFRvUGFyZW50KHBhcmVudERhdHVtLCBmaW5hbERhdHVtKTtcbiAgICAgICAgcGFyZW50RGF0YS5hZGQocGFyZW50RGF0dW0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9hZGRUb1BhcmVudChwYXJlbnREYXR1bSwgZGF0dW0pe1xuICAgIGlmIChkYXR1bSA9PT0gbnVsbCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLl9pc0NvbGxlY3Rpb24pIHtcbiAgICAgIHBhcmVudERhdHVtW3RoaXMuX25hbWVdLnB1c2goZGF0dW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJlbnREYXR1bVt0aGlzLl9uYW1lXSA9IGRhdHVtO1xuICAgIH1cbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlLmpzIl0sIm5hbWVzIjpbIk5vZGUiLCJuYW1lIiwiaGVhZGVycyIsImNvbmZpZyIsImlzQ29sbGVjdGlvbiIsImRlcHRoIiwiX25hbWUiLCJfY29uZmlnIiwiX2tleXMiLCJfcHJvcGVydGllcyIsIl9jaGlsZHJlbiIsIl9kYXRhIiwiX3BhcmVudERhdGEiLCJfaXNDb2xsZWN0aW9uIiwiX25vZGVOYW1lIiwiY2hpbGRyZW4iLCJmb3JFYWNoIiwiaGVhZGVyIiwicHVzaCIsImlzS2V5IiwiY2hpbGQiLCJub2RlcyIsImhhcyIsInNldCIsImdldCIsImxlbmd0aCIsIm1hcCIsIl9yZXVzZU9iamVjdCIsInJldXNlT2JqZWN0Iiwicm93IiwicGFyZW50RGF0dW0iLCJhcnJheUtleSIsImtleSIsImVxdWFsQXJyYXkiLCJwcnVuZSIsIm5ld0RhdHVtIiwid3JhcCIsInNpbmdsZSIsInByb3BlcnR5Iiwibm9kZSIsImNvbGxlY3Rpb24iLCJhZGQiLCJmaW5hbERhdHVtIiwiX2FkZFRvUGFyZW50IiwiZGF0dW0iLCJjdXJyZW50RGF0dW0iLCJtZW1PYmplY3QiLCJ1bmRlZmluZWQiLCJvdmVyd3JpdGVPYmplY3QiLCJwYXJlbnREYXRhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFBcUJBLEk7QUFFbkIsZ0JBQVlDLElBQVosRUFBa0JDLE9BQWxCLEVBQTJCQyxNQUEzQixFQUFtQ0MsWUFBbkMsRUFBNkQ7QUFBQTs7QUFBQSxRQUFaQyxLQUFZLHVFQUFKLENBQUk7QUFBQTs7QUFDM0QsU0FBS0MsS0FBTCxHQUFhTCxJQUFiO0FBQ0EsU0FBS00sT0FBTCxHQUFlSixNQUFmO0FBQ0EsU0FBS0ssS0FBTCxHQUFhLEVBQWI7QUFDQSxTQUFLQyxXQUFMLEdBQW1CLEVBQW5CO0FBQ0EsU0FBS0MsU0FBTCxHQUFpQixtQkFBakI7QUFDQSxTQUFLQyxLQUFMLEdBQWEsbUJBQWI7QUFDQSxTQUFLQyxXQUFMLEdBQW1CLG1CQUFu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QztBQUMvQmlDLHVCQUFRLEtBQVI7QUFDRCxhQUZELE1BRU87QUFDTCxxQkFBT1csYUFBYTVDLElBQWIsQ0FBUDtBQUNEO0FBQ0Y7QUFDRixTQS9CRDtBQWdDQSxZQUFNeUMsY0FBYVIsU0FBUSxJQUFSLEdBQWVXLFlBQWxDO0FBQ0EsWUFBTUksYUFBYSxLQUFLckMsV0FBTCxDQUFpQlksR0FBakIsQ0FBcUJrQixXQUFyQixDQUFuQjtBQUNBLFlBQUksQ0FBQ08sV0FBVzNCLEdBQVgsQ0FBZVEsV0FBZixDQUFMLEVBQWtDO0FBQ2hDLGVBQUthLFlBQUwsQ0FBa0JiLFdBQWxCLEVBQStCWSxXQUEvQjtBQUNBTyxxQkFBV1IsR0FBWCxDQUFlWCxXQUFmO0FBQ0Q7QUFDRjtBQUNGOzs7aUNBRVlBLFcsRUFBYWMsSyxFQUFNO0FBQzlCLFVBQUlBLFVBQVUsSUFBZCxFQUFvQjtBQUNwQixVQUFJLEtBQUsvQixhQUFULEVBQXdCO0FBQ3RCaUIsb0JBQVksS0FBS3hCLEtBQWpCLEVBQXdCWSxJQUF4QixDQUE2QjBCLEtBQTdCO0FBQ0QsT0FGRCxNQUVPO0FBQ0xkLG9CQUFZLEtBQUt4QixLQUFqQixJQUEwQnNDLEtBQTFCO0FBQ0Q7QUFDRjs7Ozs7a0JBeklrQjVDLEkiLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vZGUge1xuXG4gIGNvbnN0cnVjdG9yKG5hbWUsIGhlYWRlcnMsIGNvbmZpZywgaXNDb2xsZWN0aW9uLCBkZXB0aCA9IDAgKSB7XG4gICAgdGhpcy5fbmFtZSA9IG5hbWU7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuX2tleXMgPSBbXTtcbiAgICB0aGlzLl9wcm9wZXJ0aWVzID0gW107XG4gICAgdGhpcy5fY2hpbGRyZW4gPSBuZXcgTWFwKCk7XG4gICAgdGhpcy5fZGF0YSA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLl9wYXJlbnREYXRhID0gbmV3IE1hcCgpO1xuICAgIHRoaXMuX2lzQ29sbGVjdGlvbiA9IGlzQ29sbGVjdGlvbjtcbiAgICB0aGlzLl9ub2RlTmFtZSA9IGRlcHRoID09PSAwID8gJycgOiB0aGlzLl9uYW1lO1xuXG4gICAgY29uc3QgY2hpbGRyZW4gPSBuZXcgTWFwKCk7XG4gICAgaGVhZGVycy5mb3JFYWNoKGhlYWRlciA9PiB7XG4gICAgICBpZiAoaGVhZGVyLmRlcHRoID09PSBkZXB0aCkge1xuICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzLnB1c2goaGVhZGVyKTtcbiAgICAgICAgaWYgKGhlYWRlci5pc0tleSgpKSB7XG4gICAgICAgICAgdGhpcy5fa2V5cy5wdXNoKGhlYWRlci5uYW1lKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY2hpbGQgPSBoZWFkZXIubm9kZXNbZGVwdGhdO1xuICAgICAgICBpZiAoIWNoaWxkcmVuLmhhcyhjaGlsZC5uYW1lKSkge1xuICAgICAgICAgIGNoaWxkcmVuLnNldChjaGlsZC5uYW1lLCB7aXNDb2xsZWN0aW9uOiBjaGlsZC5pc0NvbGxlY3Rpb24sIGhlYWRlcnM6IFtdfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2hpbGRyZW4uZ2V0KGNoaWxkLm5hbWUpLmhlYWRlcnMucHVzaChoZWFkZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNoaWxkcmVuLmZvckVhY2goKGNoaWxkLCBuYW1lKSA9PiB7XG4gICAgICAgIHRoaXMuX2NoaWxkcmVuLnNldChuYW1lLCBuZXcgTm9kZShuYW1lLCBjaGlsZC5oZWFkZXJzLCBjb25maWcsIGNoaWxkLmlzQ29sbGVjdGlvbiwgZGVwdGggKyAxKSk7XG4gICAgfSk7XG4gICAgLy8gaWYgbm8ga2V5LCB1c2UgYWxsIHByb3BlcnRpZXMgYXMga2V5c1xuICAgIGlmICh0aGlzLl9rZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5fa2V5cyA9IHRoaXMuX3Byb3BlcnRpZXMubWFwKCh7bmFtZX0pID0+IG5hbWUpO1xuICAgICAgdGhpcy5fcmV1c2VPYmplY3QgPSB0aGlzLl9jb25maWcucmV1c2VPYmplY3QgPT09ICdrZXknID8gZmFsc2UgOiB0aGlzLl9jb25maWcucmV1c2VPYmplY3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3JldXNlT2JqZWN0ID0gdGhpcy5fY29uZmlnLnJldXNlT2JqZWN0ID09PSAna2V5JyA/IHRydWUgOiB0aGlzLl9jb25maWcucmV1c2VPYmplY3Q7XG4gICAgfVxuICB9XG5cbiAgYWRkKHJvdywgcGFyZW50RGF0dW0pIHtcbiAgICBjb25zdCBhcnJheUtleSA9IHRoaXMuX2tleXMubWFwKGtleSA9PiByb3dba2V5XSk7XG4gICAgaWYgKCF0aGlzLl9yZXVzZU9iamVjdCkge1xuICAgICAgYXJyYXlLZXkucHVzaChwYXJlbnREYXR1bSk7XG4gICAgfVxuICAgIGNvbnN0IGtleSA9IHRoaXMuX2NvbmZpZy5lcXVhbEFycmF5KGFycmF5S2V5KTtcbiAgICBpZiAoIXRoaXMuX2RhdGEuaGFzKGtleSkpIHtcbiAgICAgIGxldCBwcnVuZSA9IHRydWU7XG4gICAgICBjb25zdCBuZXdEYXR1bSA9IHRoaXMuX2NvbmZpZy53cmFwLnNpbmdsZSh0aGlzLl9ub2RlTmFtZSk7XG4gICAgICAvLyBzZXQgbXkgcHJvcGVydGllc1xuICAgICAgdGhpcy5fcHJvcGVydGllcy5mb3JFYWNoKCh7cHJvcGVydHksIG5hbWV9KSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5fY29uZmlnLnBydW5lKHJvd1tuYW1lXSkpIHtcbiAgICAgICAgICBuZXdEYXR1bVtwcm9wZXJ0eV0gPSByb3dbbmFtZV07XG4gICAgICAgICAgcHJ1bmUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICAvLyBzZXQgcGxhY2Vob2xkZXJzIGZvciBteSBjaGlsZHJlbiBhbmQgY2FsbCB0aGVtXG4gICAgICB0aGlzLl9jaGlsZHJlbi5mb3JFYWNoKChub2RlLCBuYW1lKSA9PiB7XG4gICAgICAgIGlmIChub2RlLl9pc0NvbGxlY3Rpb24pIHtcbiAgICAgICAgICBuZXdEYXR1bVtuYW1lXSA9IHRoaXMuX2NvbmZpZy53cmFwLmNvbGxlY3Rpb24odGhpcy5fbm9kZU5hbWUpO1xuICAgICAgICAgIG5vZGUuYWRkKHJvdywgbmV3RGF0dW0pO1xuICAgICAgICAgIGlmIChuZXdEYXR1bVtuYW1lXS5sZW5ndGggPiAwKSBwcnVuZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld0RhdHVtW25hbWVdID0gbnVsbDtcbiAgICAgICAgICBub2RlLmFkZChyb3csIG5ld0RhdHVtKTtcbiAgICAgICAgICBpZiAobmV3RGF0dW1bbmFtZV0gIT09IG51bGwpIHtcbiAgICAgICAgICAgIHBydW5lID0gZmFsc2U7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlbGV0ZSBuZXdEYXR1bVtuYW1lXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgY29uc3QgZmluYWxEYXR1bSA9IHBydW5lID8gbnVsbCA6IG5ld0RhdHVtO1xuICAgICAgLy8gYWRkIG1lIHRvIG15IHBhcmVudCdzIHByb3BlcnRpZXNcbiAgICAgIHRoaXMuX3BhcmVudERhdGEuc2V0KGZpbmFsRGF0dW0sIG5ldyBTZXQoW3BhcmVudERhdHVtXSkpO1xuICAgICAgdGhpcy5fYWRkVG9QYXJlbnQocGFyZW50RGF0dW0sIGZpbmFsRGF0dW0pO1xuICAgICAgLy8gbWVtb3JpemUgbWVcbiAgICAgIHRoaXMuX2RhdGEuc2V0KGtleSwgZmluYWxEYXR1bSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRhdHVtID0gdGhpcy5fZGF0YS5nZXQoa2V5KTtcbiAgICAgIGxldCBwcnVuZSA9IHRydWU7XG4gICAgICBsZXQgY3VycmVudERhdHVtID0gbnVsbDtcbiAgICAgIC8vIHRoZSBjYWNoZWQgZGF0dW0gY2FuIGJlIG51bGwgYmVjYXVzZSBvZiBwcnVuZVxuICAgICAgaWYgKGRhdHVtICE9PSBudWxsKSB7XG4gICAgICAgIHBydW5lID0gZmFsc2U7XG4gICAgICAgIGN1cnJlbnREYXR1bSA9IGRhdHVtO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3VycmVudERhdHVtID0gdGhpcy5fY29uZmlnLndyYXAuc2luZ2xlKHRoaXMuX25vZGVOYW1lKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2NoaWxkcmVuLmZvckVhY2goKG5vZGUsIG5hbWUpID0+IHtcbiAgICAgICAgaWYgKG5vZGUuX2lzQ29sbGVjdGlvbikge1xuICAgICAgICAgIC8vIHRoZSBjYWNoZWQgZGF0dW0gaXMgbnVsbCBzbyBjcmVhdGUgYSBuZXcgY29sbGVjdGlvblxuICAgICAgICAgIGlmIChkYXR1bSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgY3VycmVudERhdHVtW25hbWVdID0gdGhpcy5fY29uZmlnLndyYXAuY29sbGVjdGlvbih0aGlzLl9ub2RlTmFtZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG5vZGUuYWRkKHJvdywgY3VycmVudERhdHVtKTtcbiAgICAgICAgICBpZiAoY3VycmVudERhdHVtW25hbWVdLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHBydW5lID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChkYXR1bSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgY3VycmVudERhdHVtW25hbWVdID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGV0IG1lbU9iamVjdCA9IGN1cnJlbnREYXR1bVtuYW1lXTtcbiAgICAgICAgICAvLyAgbWVtT2JqZWN0IGNhbiBiZSB1bmRlZmluZWQgYmVjYXVzZSBvZiBwcnVuZVxuICAgICAgICAgIGlmIChtZW1PYmplY3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbWVtT2JqZWN0ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgbm9kZS5hZGQocm93LCBjdXJyZW50RGF0dW0pO1xuICAgICAgICAgIC8vIGlmIG92ZXJ3cml0ZSBpcyBub3QgYWxsb3dlZCwgdXNlIHRoZSBtZW1PYmplY3RcbiAgICAgICAgICAvLyBub3RlIDogbWVtT2JqZWN0IG1heSBoYXZlIGNoYW5nZWQgYmVjYXVzZSBvZiBhZGRpdGlvbmFsIHJvd3MgaW4gc3ViLWNvbGxlY3Rpb25zXG4gICAgICAgICAgaWYgKCF0aGlzLl9jb25maWcub3ZlcndyaXRlT2JqZWN0KSB7XG4gICAgICAgICAgICBjdXJyZW50RGF0dW1bbmFtZV0gPSBtZW1PYmplY3Q7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjdXJyZW50RGF0dW1bbmFtZV0gIT09IG51bGwpIHtcbiAgICAgICAgICAgIHBydW5lID0gZmFsc2U7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlbGV0ZSBjdXJyZW50RGF0dW1bbmFtZV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGZpbmFsRGF0dW0gPSBwcnVuZSA/IG51bGwgOiBjdXJyZW50RGF0dW07XG4gICAgICBjb25zdCBwYXJlbnREYXRhID0gdGhpcy5fcGFyZW50RGF0YS5nZXQoZmluYWxEYXR1bSk7XG4gICAgICBpZiAoIXBhcmVudERhdGEuaGFzKHBhcmVudERhdHVtKSkge1xuICAgICAgICB0aGlzLl9hZGRUb1BhcmVudChwYXJlbnREYXR1bSwgZmluYWxEYXR1bSk7XG4gICAgICAgIHBhcmVudERhdGEuYWRkKHBhcmVudERhdHVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfYWRkVG9QYXJlbnQocGFyZW50RGF0dW0sIGRhdHVtKXtcbiAgICBpZiAoZGF0dW0gPT09IG51bGwpIHJldHVybjtcbiAgICBpZiAodGhpcy5faXNDb2xsZWN0aW9uKSB7XG4gICAgICBwYXJlbnREYXR1bVt0aGlzLl9uYW1lXS5wdXNoKGRhdHVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyZW50RGF0dW1bdGhpcy5fbmFtZV0gPSBkYXR1bTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==

@@ -38,3 +38,2 @@ 'use strict';

this._firstFeed = true;
var symbols = {

@@ -127,10 +126,23 @@ key: DEFAULT_KEY_SYMBOL,

}
if (this._config.root === 'collection') {
this._data = this._config.wrap.collection('');
} else {
this._data = this._config.wrap.single('');
}
this.reset();
}
(0, _createClass3.default)(Treem, [{
key: 'reset',
value: function reset() {
this._firstFeed = true;
if (this._config.root === 'collection') {
this._data = this._config.wrap.collection('');
} else {
this._data = this._config.wrap.single('');
}
this._root = undefined;
}
}, {
key: 'fill',
value: function fill(rows) {
this.reset();
this.feed(rows);
}
}, {
key: 'feed',

@@ -193,2 +205,2 @@ value: function feed(rows) {

exports.default = Treem;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmVlbS5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX0tFWV9TWU1CT0wiLCJERUZBVUxUX0NPTExFQ1RJT05fU1lNQk9MIiwiREVGQVVMVF9TRVBBUkFUT1JfU1lNQk9MIiwiVHJlZW0iLCJvcHRpb25zIiwiX2ZpcnN0RmVlZCIsInN5bWJvbHMiLCJrZXkiLCJjb2xsZWN0aW9uIiwic2VwYXJhdG9yIiwidW5kZWZpbmVkIiwiX3NlcGFyYXRvciIsIl9jb25maWciLCJoZWFkZXJzIiwicmV1c2VPYmplY3QiLCJvdmVyd3JpdGVPYmplY3QiLCJyb290Iiwid3JhcCIsInNpbmdsZSIsImRldGVjdCIsImNoZWNrIiwibm9kZSIsInN0YXJ0c1dpdGgiLCJuYW1lIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwicHJ1bmUiLCJ4IiwiZXF1YWxBcnJheSIsIl9kYXRhIiwicm93cyIsIl9yb290IiwicHJvcGVydHkiLCJfbWFrZVJvb3QiLCJmb3JFYWNoIiwiYWRkIiwicm93Iiwic3RhcnQiLCJtZW1EYXRhIiwiaSIsImNvbHVtbnMiLCJoZWFkZXIiLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUEsSUFBTUEscUJBQXFCLEdBQTNCO0FBQ0EsSUFBTUMsNEJBQTRCLEdBQWxDO0FBQ0EsSUFBTUMsMkJBQTJCLEdBQWpDOztJQUVxQkMsSztBQUVuQixtQkFBMEI7QUFBQSxRQUFkQyxPQUFjLHVFQUFKLEVBQUk7QUFBQTs7QUFDeEIsU0FBS0MsVUFBTCxHQUFrQixJQUFsQjtBQUNBLFFBQU1DLFVBQVU7QUFDZEMsV0FBS1Asa0JBRFM7QUFFZFEsa0JBQVlQLHlCQUZFO0FBR2RRLGlCQUFXUDtBQUhHLEtBQWhCO0FBS0EsUUFBSUUsUUFBUUUsT0FBUixLQUFvQkksU0FBeEIsRUFBbUM7QUFDakMsVUFBSU4sUUFBUUUsT0FBUixDQUFnQkMsR0FBaEIsS0FBd0JHLFNBQTVCLEVBQXVDO0FBQ3JDSixnQkFB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aWxlIjoidHJlZW0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRXF1YWxBcnJheSBmcm9tICdlcXVhbC1hcnJheSc7XG5pbXBvcnQgSGVhZGVyIGZyb20gJy4vaGVhZGVyJztcbmltcG9ydCBOb2RlIGZyb20gJy4vbm9kZSc7XG5cbmNvbnN0IERFRkFVTFRfS0VZX1NZTUJPTCA9ICcjJztcbmNvbnN0IERFRkFVTFRfQ09MTEVDVElPTl9TWU1CT0wgPSAnKyc7XG5jb25zdCBERUZBVUxUX1NFUEFSQVRPUl9TWU1CT0wgPSAnLic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRyZWVtIHtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICB0aGlzLl9maXJzdEZlZWQgPSB0cnVlO1xuICAgIGNvbnN0IHN5bWJvbHMgPSB7XG4gICAgICBrZXk6IERFRkFVTFRfS0VZX1NZTUJPTCxcbiAgICAgIGNvbGxlY3Rpb246IERFRkFVTFRfQ09MTEVDVElPTl9TWU1CT0wsXG4gICAgICBzZXBhcmF0b3I6IERFRkFVTFRfU0VQQVJBVE9SX1NZTUJPTFxuICAgIH1cbiAgICBpZiAob3B0aW9ucy5zeW1ib2xzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChvcHRpb25zLnN5bWJvbHMua2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc3ltYm9scy5rZXkgPSBvcHRpb25zLnN5bWJvbHMua2V5O1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMuc3ltYm9scy5jb2xsZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc3ltYm9scy5jb2xsZWN0aW9uID0gb3B0aW9ucy5zeW1ib2xzLmNvbGxlY3Rpb247XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucy5zeW1ib2xzLnNlcGFyYXRvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHN5bWJvbHMuc2VwYXJhdG9yID0gb3B0aW9ucy5zeW1ib2xzLnNlcGFyYXRvcjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fc2VwYXJhdG9yID0gc3ltYm9scy5zZXBhcmF0b3I7XG4gICAgLy8gZGVmYXVsdCBvcHRpb25zXG4gICAgdGhpcy5fY29uZmlnID0ge1xuICAgICAgaGVhZGVyczogdW5kZWZpbmVkLFxuICAgICAgcmV1c2VPYmplY3Q6ICdrZXknLFxuICAgICAgb3ZlcndyaXRlT2JqZWN0OiBmYWxzZSxcbiAgICAgIHJvb3Q6ICdjb2xsZWN0aW9uJyxcbiAgICAgIHdyYXA6IHtcbiAgICAgICAgc2luZ2xlOiAoKSA9PiB7cmV0dXJuIHt9fSxcbiAgICAgICAgY29sbGVjdGlvbjogKCkgPT4gW11cbiAgICAgIH0sXG4gICAgICBkZXRlY3Q6IHtcbiAgICAgICAga2V5OiBub2RlID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2hlY2s6IG5vZGUuc3RhcnRzV2l0aChzeW1ib2xzLmtleSksXG4gICAgICAgICAgICBuYW1lOiBub2RlLnN1YnN0cmluZyhzeW1ib2xzLmtleS5sZW5ndGgpXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjb2xsZWN0aW9uOiBub2RlID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2hlY2s6IG5vZGUuc3RhcnRzV2l0aChzeW1ib2xzLmNvbGxlY3Rpb24pLFxuICAgICAgICAgICAgbmFtZTogbm9kZS5zdWJzdHJpbmcoc3ltYm9scy5jb2xsZWN0aW9uLmxlbmd0aClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBwcnVuZTogeCA9PiB4ID09PSB1bmRlZmluZWQgfHwgeCA9PT0gbnVsbCxcbiAgICAgIGVxdWFsQXJyYXk6IG5ldyBFcXVhbEFycmF5KClcbiAgICB9XG4gICAgdGhpcy5fY29uZmlnLmhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnM7XG4gICAgaWYgKG9wdGlvbnMucmV1c2VPYmplY3QgIT09IHVuZGVmaW5lZCkgIHtcbiAgICAgIHRoaXMuX2NvbmZpZy5yZXVzZU9iamVjdCA9IG9wdGlvbnMucmV1c2VPYmplY3Q7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLm92ZXJ3cml0ZU9iamVjdCAhPT0gdW5kZWZpbmVkKSAge1xuICAgICAgdGhpcy5fY29uZmlnLm92ZXJ3cml0ZU9iamVjdCA9IG9wdGlvbnMub3ZlcndyaXRlT2JqZWN0O1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5yb290ICE9PSB1bmRlZmluZWQpICB7XG4gICAgICB0aGlzLl9jb25maWcucm9vdCA9IG9wdGlvbnMucm9vdDtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMud3JhcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAob3B0aW9ucy53cmFwLnNpbmdsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX2NvbmZpZy53cmFwLnNpbmdsZSA9IG9wdGlvbnMud3JhcC5zaW5nbGU7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucy53cmFwLmNvbGxlY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9jb25maWcud3JhcC5jb2xsZWN0aW9uID0gb3B0aW9ucy53cmFwLmNvbGxlY3Rpb247XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmRldGVjdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAob3B0aW9ucy5kZXRlY3Qua2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fY29uZmlnLmRldGVjdC5rZXkgPSBvcHRpb25zLmRldGVjdC5rZXk7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucy5kZXRlY3QuY29sbGVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX2NvbmZpZy5kZXRlY3QuY29sbGVjdGlvbiA9IG9wdGlvbnMuZGV0ZWN0LmNvbGxlY3Rpb247XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnBydW5lICE9PSB1bmRlZmluZWQpICB7XG4gICAgICBpZiAob3B0aW9ucy5wcnVuZSAhPT0gdHJ1ZSkge1xuICAgICAgICBpZiAob3B0aW9ucy5wcnVuZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICB0aGlzLl9jb25maWcucHJ1bmUgPSAoKSA9PiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLl9jb25maWcucHJ1bmUgPSBvcHRpb25zLnBydW5lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLl9jb25maWcucm9vdCA9PT0gJ2NvbGxlY3Rpb24nKSB7XG4gICAgICB0aGlzLl9kYXRhID0gdGhpcy5fY29uZmlnLndyYXAuY29sbGVjdGlvbignJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RhdGEgPSB0aGlzLl9jb25maWcud3JhcC5zaW5nbGUoJycpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICB9XG5cbiAgZmVlZChyb3dzKSB7XG4gICAgaWYgKHJvd3MubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICBpZiAodGhpcy5fcm9vdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgaGVhZGVycyA9IHRoaXMuX2NvbmZpZy5oZWFkZXJzO1xuICAgICAgaWYgKGhlYWRlcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBoZWFkZXJzID0ge307XG4gICAgICAgIGZvciAobGV0IHByb3BlcnR5IGluIHJvd3NbMF0pIHtcbiAgICAgICAgICBoZWFkZXJzW3Byb3BlcnR5XSA9IHByb3BlcnR5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLl9yb290ID0gdGhpcy5fbWFrZVJvb3QoaGVhZGVycyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5yb290ID09PSAnY29sbGVjdGlvbicpIHtcbiAgICAgIHJvd3MuZm9yRWFjaChyb3cgPT4gdGhpcy5fcm9vdC5hZGQocm93LCB0aGlzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBzdGFydCA9IDA7XG4gICAgICBpZiAodGhpcy5fZmlyc3RGZWVkKSB7XG4gICAgICAgIHRoaXMuX3Jvb3QuYWRkKHJvd3NbMF0sIHRoaXMpO1xuICAgICAgICBzdGFydCA9IDE7XG4gICAgICB9XG4gICAgICBjb25zdCBtZW1EYXRhID0gdGhpcy5fZGF0YTtcbiAgICAgIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5fcm9vdC5hZGQocm93c1tpXSwgdGhpcyk7XG4gICAgICAgIGlmICghdGhpcy5fY29uZmlnLm92ZXJ3cml0ZU9iamVjdCkge1xuICAgICAgICAgIHRoaXMuX2RhdGEgPSBtZW1EYXRhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fZmlyc3RGZWVkID0gZmFsc2U7XG4gIH1cblxuICBfbWFrZVJvb3QoaGVhZGVycykge1xuICAgIGNvbnN0IGNvbHVtbnMgPSBbXTtcbiAgICBmb3IgKGxldCBoZWFkZXIgaW4gaGVhZGVycykge1xuICAgICAgY29sdW1ucy5wdXNoKG5ldyBIZWFkZXIoaGVhZGVyLCBoZWFkZXJzW2hlYWRlcl0sIHRoaXMuX3NlcGFyYXRvciwgdGhpcy5fY29uZmlnLmRldGVjdCkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IE5vZGUoJ19kYXRhJywgY29sdW1ucywgdGhpcy5fY29uZmlnLCB0aGlzLl9jb25maWcucm9vdCA9PT0gJ2NvbGxlY3Rpb24nKTtcbiAgfVxuXG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmVlbS5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX0tFWV9TWU1CT0wiLCJERUZBVUxUX0NPTExFQ1RJT05fU1lNQk9MIiwiREVGQVVMVF9TRVBBUkFUT1JfU1lNQk9MIiwiVHJlZW0iLCJvcHRpb25zIiwic3ltYm9scyIsImtleSIsImNvbGxlY3Rpb24iLCJzZXBhcmF0b3IiLCJ1bmRlZmluZWQiLCJfc2VwYXJhdG9yIiwiX2NvbmZpZyIsImhlYWRlcnMiLCJyZXVzZU9iamVjdCIsIm92ZXJ3cml0ZU9iamVjdCIsInJvb3QiLCJ3cmFwIiwic2luZ2xlIiwiZGV0ZWN0IiwiY2hlY2siLCJub2RlIiwic3RhcnRzV2l0aCIsIm5hbWUiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJwcnVuZSIsIngiLCJlcXVhbEFycmF5IiwicmVzZXQiLCJfZmlyc3RGZWVkIiwiX2RhdGEiLCJfcm9vdCIsInJvd3MiLCJmZWVkIiwicHJvcGVydHkiLCJfbWFrZVJvb3QiLCJmb3JFYWNoIiwiYWRkIiwicm93Iiwic3RhcnQiLCJtZW1EYXRhIiwiaSIsImNvbHVtbnMiLCJoZWFkZXIiLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUEsSUFBTUEscUJBQXFCLEdBQTNCO0FBQ0EsSUFBTUMsNEJBQTRCLEdBQWxDO0FBQ0EsSUFBTUMsMkJBQTJCLEdBQWpDOztJQUVxQkMsSztBQUVuQixtQkFBMEI7QUFBQSxRQUFkQyxPQUFjLHVFQUFKLEVBQUk7QUFBQTs7QUFDeEIsUUFBTUMsVUFBVTtBQUNkQyxXQUFLTixrQkFEUztBQUVkTyxrQkFBWU4seUJBRkU7QUFHZE8saUJBQVdOO0FBSEcsS0FBaEI7QUFLQSxRQUFJRSxRQUFRQyxPQUFSLEtBQW9CSSxTQUF4QixFQUFtQztBQUNqQyxVQUFJTCxRQUFRQyxPQUFSLENBQWdCQyxHQUFoQixLQUF3QkcsU0FBNUIsRUFBdUM7QUFDckNKLGdCQUFRQyxHQUFSLEdBQWNG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VCxFQUFrQndCLE9BQWxCLEVBQTJCLEtBQUsvQixPQUFoQyxFQUF5QyxLQUFLQSxPQUFMLENBQWFJLElBQWIsS0FBc0IsWUFBL0QsQ0FBUDtBQUNEOzs7d0JBM0RVO0FBQ1QsYUFBTyxLQUFLZSxLQUFaO0FBQ0Q7Ozs7O2tCQXZGa0IzQixLIiwiZmlsZSI6InRyZWVtLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEVxdWFsQXJyYXkgZnJvbSAnZXF1YWwtYXJyYXknO1xuaW1wb3J0IEhlYWRlciBmcm9tICcuL2hlYWRlcic7XG5pbXBvcnQgTm9kZSBmcm9tICcuL25vZGUnO1xuXG5jb25zdCBERUZBVUxUX0tFWV9TWU1CT0wgPSAnIyc7XG5jb25zdCBERUZBVUxUX0NPTExFQ1RJT05fU1lNQk9MID0gJysnO1xuY29uc3QgREVGQVVMVF9TRVBBUkFUT1JfU1lNQk9MID0gJy4nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUcmVlbSB7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3Qgc3ltYm9scyA9IHtcbiAgICAgIGtleTogREVGQVVMVF9LRVlfU1lNQk9MLFxuICAgICAgY29sbGVjdGlvbjogREVGQVVMVF9DT0xMRUNUSU9OX1NZTUJPTCxcbiAgICAgIHNlcGFyYXRvcjogREVGQVVMVF9TRVBBUkFUT1JfU1lNQk9MXG4gICAgfVxuICAgIGlmIChvcHRpb25zLnN5bWJvbHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKG9wdGlvbnMuc3ltYm9scy5rZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBzeW1ib2xzLmtleSA9IG9wdGlvbnMuc3ltYm9scy5rZXk7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucy5zeW1ib2xzLmNvbGxlY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBzeW1ib2xzLmNvbGxlY3Rpb24gPSBvcHRpb25zLnN5bWJvbHMuY29sbGVjdGlvbjtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLnN5bWJvbHMuc2VwYXJhdG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc3ltYm9scy5zZXBhcmF0b3IgPSBvcHRpb25zLnN5bWJvbHMuc2VwYXJhdG9yO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9zZXBhcmF0b3IgPSBzeW1ib2xzLnNlcGFyYXRvcjtcbiAgICAvLyBkZWZhdWx0IG9wdGlvbnNcbiAgICB0aGlzLl9jb25maWcgPSB7XG4gICAgICBoZWFkZXJzOiB1bmRlZmluZWQsXG4gICAgICByZXVzZU9iamVjdDogJ2tleScsXG4gICAgICBvdmVyd3JpdGVPYmplY3Q6IGZhbHNlLFxuICAgICAgcm9vdDogJ2NvbGxlY3Rpb24nLFxuICAgICAgd3JhcDoge1xuICAgICAgICBzaW5nbGU6ICgpID0+IHtyZXR1cm4ge319LFxuICAgICAgICBjb2xsZWN0aW9uOiAoKSA9PiBbXVxuICAgICAgfSxcbiAgICAgIGRldGVjdDoge1xuICAgICAgICBrZXk6IG5vZGUgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjaGVjazogbm9kZS5zdGFydHNXaXRoKHN5bWJvbHMua2V5KSxcbiAgICAgICAgICAgIG5hbWU6IG5vZGUuc3Vic3RyaW5nKHN5bWJvbHMua2V5Lmxlbmd0aClcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbGxlY3Rpb246IG5vZGUgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjaGVjazogbm9kZS5zdGFydHNXaXRoKHN5bWJvbHMuY29sbGVjdGlvbiksXG4gICAgICAgICAgICBuYW1lOiBub2RlLnN1YnN0cmluZyhzeW1ib2xzLmNvbGxlY3Rpb24ubGVuZ3RoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHBydW5lOiB4ID0+IHggPT09IHVuZGVmaW5lZCB8fCB4ID09PSBudWxsLFxuICAgICAgZXF1YWxBcnJheTogbmV3IEVxdWFsQXJyYXkoKVxuICAgIH1cbiAgICB0aGlzLl9jb25maWcuaGVhZGVycyA9IG9wdGlvbnMuaGVhZGVycztcbiAgICBpZiAob3B0aW9ucy5yZXVzZU9iamVjdCAhPT0gdW5kZWZpbmVkKSAge1xuICAgICAgdGhpcy5fY29uZmlnLnJldXNlT2JqZWN0ID0gb3B0aW9ucy5yZXVzZU9iamVjdDtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMub3ZlcndyaXRlT2JqZWN0ICE9PSB1bmRlZmluZWQpICB7XG4gICAgICB0aGlzLl9jb25maWcub3ZlcndyaXRlT2JqZWN0ID0gb3B0aW9ucy5vdmVyd3JpdGVPYmplY3Q7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnJvb3QgIT09IHVuZGVmaW5lZCkgIHtcbiAgICAgIHRoaXMuX2NvbmZpZy5yb290ID0gb3B0aW9ucy5yb290O1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy53cmFwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChvcHRpb25zLndyYXAuc2luZ2xlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fY29uZmlnLndyYXAuc2luZ2xlID0gb3B0aW9ucy53cmFwLnNpbmdsZTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLndyYXAuY29sbGVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX2NvbmZpZy53cmFwLmNvbGxlY3Rpb24gPSBvcHRpb25zLndyYXAuY29sbGVjdGlvbjtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuZGV0ZWN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChvcHRpb25zLmRldGVjdC5rZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9jb25maWcuZGV0ZWN0LmtleSA9IG9wdGlvbnMuZGV0ZWN0LmtleTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLmRldGVjdC5jb2xsZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fY29uZmlnLmRldGVjdC5jb2xsZWN0aW9uID0gb3B0aW9ucy5kZXRlY3QuY29sbGVjdGlvbjtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG9wdGlvbnMucHJ1bmUgIT09IHVuZGVmaW5lZCkgIHtcbiAgICAgIGlmIChvcHRpb25zLnBydW5lICE9PSB0cnVlKSB7XG4gICAgICAgIGlmIChvcHRpb25zLnBydW5lID09PSBmYWxzZSkge1xuICAgICAgICAgIHRoaXMuX2NvbmZpZy5wcnVuZSA9ICgpID0+IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX2NvbmZpZy5wcnVuZSA9IG9wdGlvbnMucHJ1bmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5yZXNldCgpO1xuICB9XG5cbiAgZ2V0IGRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLl9maXJzdEZlZWQgPSB0cnVlO1xuICAgIGlmICh0aGlzLl9jb25maWcucm9vdCA9PT0gJ2NvbGxlY3Rpb24nKSB7XG4gICAgICB0aGlzLl9kYXRhID0gdGhpcy5fY29uZmlnLndyYXAuY29sbGVjdGlvbignJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RhdGEgPSB0aGlzLl9jb25maWcud3JhcC5zaW5nbGUoJycpO1xuICAgIH1cbiAgICB0aGlzLl9yb290ID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZmlsbChyb3dzKSB7XG4gICAgdGhpcy5yZXNldCgpO1xuICAgIHRoaXMuZmVlZChyb3dzKTtcbiAgfVxuXG4gIGZlZWQocm93cykge1xuICAgIGlmIChyb3dzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMuX3Jvb3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLl9jb25maWcuaGVhZGVycztcbiAgICAgIGlmIChoZWFkZXJzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaGVhZGVycyA9IHt9O1xuICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eSBpbiByb3dzWzBdKSB7XG4gICAgICAgICAgaGVhZGVyc1twcm9wZXJ0eV0gPSBwcm9wZXJ0eTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5fcm9vdCA9IHRoaXMuX21ha2VSb290KGhlYWRlcnMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb25maWcucm9vdCA9PT0gJ2NvbGxlY3Rpb24nKSB7XG4gICAgICByb3dzLmZvckVhY2gocm93ID0+IHRoaXMuX3Jvb3QuYWRkKHJvdywgdGhpcykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgc3RhcnQgPSAwO1xuICAgICAgaWYgKHRoaXMuX2ZpcnN0RmVlZCkge1xuICAgICAgICB0aGlzLl9yb290LmFkZChyb3dzWzBdLCB0aGlzKTtcbiAgICAgICAgc3RhcnQgPSAxO1xuICAgICAgfVxuICAgICAgY29uc3QgbWVtRGF0YSA9IHRoaXMuX2RhdGE7XG4gICAgICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMuX3Jvb3QuYWRkKHJvd3NbaV0sIHRoaXMpO1xuICAgICAgICBpZiAoIXRoaXMuX2NvbmZpZy5vdmVyd3JpdGVPYmplY3QpIHtcbiAgICAgICAgICB0aGlzLl9kYXRhID0gbWVtRGF0YTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX2ZpcnN0RmVlZCA9IGZhbHNlO1xuICB9XG5cbiAgX21ha2VSb290KGhlYWRlcnMpIHtcbiAgICBjb25zdCBjb2x1bW5zID0gW107XG4gICAgZm9yIChsZXQgaGVhZGVyIGluIGhlYWRlcnMpIHtcbiAgICAgIGNvbHVtbnMucHVzaChuZXcgSGVhZGVyKGhlYWRlciwgaGVhZGVyc1toZWFkZXJdLCB0aGlzLl9zZXBhcmF0b3IsIHRoaXMuX2NvbmZpZy5kZXRlY3QpKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBOb2RlKCdfZGF0YScsIGNvbHVtbnMsIHRoaXMuX2NvbmZpZywgdGhpcy5fY29uZmlnLnJvb3QgPT09ICdjb2xsZWN0aW9uJyk7XG4gIH1cblxufVxuIl19
{
"name": "treem",
"version": "1.1.0",
"version": "1.1.1",
"description": "High performance conversion of flat data (like SQL result rows) into nested objects.",

@@ -5,0 +5,0 @@ "main": "./lib/treem.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc