Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

d3-state-visualizer

Package Overview
Dependencies
Maintainers
5
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

d3-state-visualizer - npm Package Compare versions

Comparing version 1.3.4 to 1.4.0

lib/charts/index.d.ts

13

CHANGELOG.md

@@ -6,12 +6,21 @@ # Change Log

## [1.3.4](https://github.com/reduxjs/redux-devtools/compare/d3-state-visualizer@1.3.3...d3-state-visualizer@1.3.4) (2020-09-07)
# [1.4.0](https://github.com/reduxjs/redux-devtools/compare/d3-state-visualizer@1.3.4...d3-state-visualizer@1.4.0) (2021-03-06)
**Note:** Version bump only for package d3-state-visualizer
### Features
* **d3-state-visualizer:** convert example to TypeScript ([#641](https://github.com/reduxjs/redux-devtools/issues/641)) ([300b60a](https://github.com/reduxjs/redux-devtools/commit/300b60a8b1f92a6d7c78510a1bea304490aa23be))
* **d3-state-visualizer:** convert to TypeScript ([#640](https://github.com/reduxjs/redux-devtools/issues/640)) ([0c78a5a](https://github.com/reduxjs/redux-devtools/commit/0c78a5a9a76ee7eff37dcd8e39272d98c03e0869))
* **redux-devtools-chart-monitor:** convert to TypeScript ([#642](https://github.com/reduxjs/redux-devtools/issues/642)) ([761baba](https://github.com/reduxjs/redux-devtools/commit/761baba0aa0f4dc672f8771f4b12bed3863557f7))
## [1.3.4](https://github.com/reduxjs/redux-devtools/compare/d3-state-visualizer@1.3.3...d3-state-visualizer@1.3.4) (2020-09-07)
**Note:** Version bump only for package d3-state-visualizer
## 1.3.3 (2020-08-14)
**Note:** Version bump only for package d3-state-visualizer

7

lib/charts/index.js

@@ -9,8 +9,9 @@ "use strict";

get: function get() {
return _tree2["default"];
return _tree["default"];
}
});
var _tree2 = _interopRequireDefault(require("./tree/tree"));
var _tree = _interopRequireDefault(require("./tree/tree"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaGFydHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIHRyZWUgfSBmcm9tICcuL3RyZWUvdHJlZSc7XG5leHBvcnQgdHlwZSB7IElucHV0T3B0aW9ucywgTm9kZVdpdGhJZCB9IGZyb20gJy4vdHJlZS90cmVlJztcbiJdfQ==

@@ -36,2 +36,3 @@ "use strict";

return JSON.stringify(sortObject(obj, true), undefined, 2);
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jaGFydHMvdHJlZS9zb3J0QW5kU2VyaWFsaXplLnRzIl0sIm5hbWVzIjpbInNvcnRPYmplY3QiLCJvYmoiLCJzdHJpY3QiLCJBcnJheSIsImFyeSIsInNvcnQiLCJ0T2JqIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJzb3J0QW5kU2VyaWFsaXplIiwiSlNPTiIsInN0cmluZ2lmeSIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsU0FBU0EsVUFBVCxDQUFvQkMsR0FBcEIsRUFBa0NDLE1BQWxDLEVBQW9EO0FBQ2xELE1BQUlELEdBQUcsWUFBWUUsS0FBbkIsRUFBMEI7QUFDeEIsUUFBSUMsR0FBSjs7QUFDQSxRQUFJRixNQUFKLEVBQVk7QUFDVkUsTUFBQUEsR0FBRyxHQUFHSCxHQUFHLENBQUNJLElBQUosRUFBTjtBQUNELEtBRkQsTUFFTztBQUNMRCxNQUFBQSxHQUFHLEdBQUdILEdBQU47QUFDRDs7QUFDRCxXQUFPRyxHQUFQO0FBQ0Q7O0FBRUQsTUFBSUgsR0FBRyxJQUFJLFFBQU9BLEdBQVAsTUFBZSxRQUExQixFQUFvQztBQUNsQyxRQUFNSyxJQUFnQyxHQUFHLEVBQXpDO0FBQ0FDLElBQUFBLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZUCxHQUFaLEVBQ0dJLElBREgsR0FFR0ksT0FGSCxDQUVXLFVBQUNDLEdBQUQ7QUFBQSxhQUFVSixJQUFJLENBQUNJLEdBQUQsQ0FBSixHQUFZVixVQUFVLENBQUNDLEdBQUcsQ0FBQ1MsR0FBRCxDQUFKLENBQWhDO0FBQUEsS0FGWDtBQUdBLFdBQU9KLElBQVA7QUFDRDs7QUFFRCxTQUFPTCxHQUFQO0FBQ0Q7O0FBRWMsU0FBU1UsZ0JBQVQsQ0FBMEJWLEdBQTFCLEVBQXdDO0FBQ3JELFNBQU9XLElBQUksQ0FBQ0MsU0FBTCxDQUFlYixVQUFVLENBQUNDLEdBQUQsRUFBTSxJQUFOLENBQXpCLEVBQXNDYSxTQUF0QyxFQUFpRCxDQUFqRCxDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBzb3J0T2JqZWN0KG9iajogdW5rbm93biwgc3RyaWN0PzogYm9vbGVhbikge1xuICBpZiAob2JqIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICBsZXQgYXJ5O1xuICAgIGlmIChzdHJpY3QpIHtcbiAgICAgIGFyeSA9IG9iai5zb3J0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFyeSA9IG9iajtcbiAgICB9XG4gICAgcmV0dXJuIGFyeTtcbiAgfVxuXG4gIGlmIChvYmogJiYgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCB0T2JqOiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSA9IHt9O1xuICAgIE9iamVjdC5rZXlzKG9iailcbiAgICAgIC5zb3J0KClcbiAgICAgIC5mb3JFYWNoKChrZXkpID0+ICh0T2JqW2tleV0gPSBzb3J0T2JqZWN0KG9ialtrZXkgYXMga2V5b2YgdHlwZW9mIG9ial0pKSk7XG4gICAgcmV0dXJuIHRPYmo7XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzb3J0QW5kU2VyaWFsaXplKG9iajogdW5rbm93bikge1xuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoc29ydE9iamVjdChvYmosIHRydWUpLCB1bmRlZmluZWQsIDIpO1xufVxuIl19

@@ -14,3 +14,3 @@ "use strict";

var _deepmerge2 = _interopRequireDefault(require("deepmerge"));
var _deepmerge = _interopRequireDefault(require("deepmerge"));

@@ -81,7 +81,8 @@ var _utils = require("./utils");

blinkDuration: 100,
onClickText: function onClickText() {},
onClickText: function onClickText() {// noop
},
tooltipOptions: {
disabled: false,
left: undefined,
right: undefined,
top: undefined,
offset: {

@@ -98,20 +99,20 @@ left: 0,

var _deepmerge = (0, _deepmerge2["default"])(defaultOptions, options),
id = _deepmerge.id,
style = _deepmerge.style,
size = _deepmerge.size,
aspectRatio = _deepmerge.aspectRatio,
initialZoom = _deepmerge.initialZoom,
margin = _deepmerge.margin,
isSorted = _deepmerge.isSorted,
widthBetweenNodesCoeff = _deepmerge.widthBetweenNodesCoeff,
heightBetweenNodesCoeff = _deepmerge.heightBetweenNodesCoeff,
transitionDuration = _deepmerge.transitionDuration,
blinkDuration = _deepmerge.blinkDuration,
state = _deepmerge.state,
rootKeyName = _deepmerge.rootKeyName,
pushMethod = _deepmerge.pushMethod,
tree = _deepmerge.tree,
tooltipOptions = _deepmerge.tooltipOptions,
onClickText = _deepmerge.onClickText;
var _ref = (0, _deepmerge["default"])(defaultOptions, options),
id = _ref.id,
style = _ref.style,
size = _ref.size,
aspectRatio = _ref.aspectRatio,
initialZoom = _ref.initialZoom,
margin = _ref.margin,
isSorted = _ref.isSorted,
widthBetweenNodesCoeff = _ref.widthBetweenNodesCoeff,
heightBetweenNodesCoeff = _ref.heightBetweenNodesCoeff,
transitionDuration = _ref.transitionDuration,
blinkDuration = _ref.blinkDuration,
state = _ref.state,
rootKeyName = _ref.rootKeyName,
pushMethod = _ref.pushMethod,
tree = _ref.tree,
tooltipOptions = _ref.tooltipOptions,
onClickText = _ref.onClickText;

@@ -142,6 +143,6 @@ var width = size - margin.left - margin.right;

}, style)).call(zoom.on('zoom', function () {
var _d3$event = _d3["default"].event,
translate = _d3$event.translate,
scale = _d3$event.scale;
vis.attr('transform', "translate(".concat(translate, ")scale(").concat(scale, ")"));
var _ref2 = _d3["default"].event,
translate = _ref2.translate,
scale = _ref2.scale;
vis.attr('transform', "translate(".concat(translate.toString(), ")scale(").concat(scale, ")"));
})).append('g').attr({

@@ -193,3 +194,4 @@ transform: "translate(".concat(margin.left + style.node.radius, ", ").concat(margin.top, ") scale(").concat(initialZoom, ")")

var nextState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : tree || state;
data = !tree ? (0, _map2tree["default"])(nextState, {
data = !tree ? // eslint-disable-next-line @typescript-eslint/ban-types
(0, _map2tree["default"])(nextState, {
key: rootKeyName,

@@ -220,6 +222,3 @@ pushMethod: pushMethod

});
/*eslint-disable*/
update();
/*eslint-enable*/

@@ -262,3 +261,3 @@ function update() {

var position = findParentNodePosition(nodePositionsById, d.id, function (n) {
return previousNodePositionsById[n.id];
return !!previousNodePositionsById[n.id];
});

@@ -271,13 +270,10 @@ var previousPosition = position && previousNodePositionsById[position.id] || previousNodePositionsById.root;

cursor: 'pointer'
}).on({
mouseover: function mouseover() {
_d3["default"].select(this).style({
fill: style.text.colors.hover
});
},
mouseout: function mouseout() {
_d3["default"].select(this).style({
fill: style.text.colors["default"]
});
}
}).on('mouseover', function mouseover() {
_d3["default"].select(this).style({
fill: style.text.colors.hover
});
}).on('mouseout', function mouseout() {
_d3["default"].select(this).style({
fill: style.text.colors["default"]
});
});

@@ -299,8 +295,6 @@

r: 0
}).on({
click: function click(clickedNode) {
if (_d3["default"].event.defaultPrevented) return;
(0, _utils.toggleChildren)(clickedNode);
update();
}
}).on('click', function (clickedNode) {
if (_d3["default"].event.defaultPrevented) return;
(0, _utils.toggleChildren)(clickedNode);
update();
});

@@ -316,5 +310,3 @@ nodeEnterInnerGroup.append('text').attr({

return d.name;
}).on({
click: onClickText
}); // update the text to reflect whether node has children or not
}).on('click', onClickText); // update the text to reflect whether node has children or not

@@ -359,3 +351,3 @@ node.select('text').text(function (d) {

var position = findParentNodePosition(previousNodePositionsById, d.id, function (n) {
return nodePositionsById[n.id];
return !!nodePositionsById[n.id];
});

@@ -377,3 +369,3 @@ var futurePosition = position && nodePositionsById[position.id] || nodePositionsById.root;

var position = findParentNodePosition(nodePositionsById, _d.target.id, function (n) {
return previousNodePositionsById[n.id];
return !!previousNodePositionsById[n.id];
});

@@ -395,3 +387,3 @@ var previousPosition = position && previousNodePositionsById[position.id] || previousNodePositionsById.root;

var position = findParentNodePosition(previousNodePositionsById, _d2.target.id, function (n) {
return nodePositionsById[n.id];
return !!nodePositionsById[n.id];
});

@@ -411,2 +403,3 @@ var futurePosition = position && nodePositionsById[position.id] || nodePositionsById.root;

};
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jaGFydHMvdHJlZS90cmVlLnRzIl0sIm5hbWVzIjpbImRlZmF1bHRPcHRpb25zIiwic3RhdGUiLCJ1bmRlZmluZWQiLCJyb290S2V5TmFtZSIsInB1c2hNZXRob2QiLCJ0cmVlIiwiaWQiLCJzdHlsZSIsIm5vZGUiLCJjb2xvcnMiLCJjb2xsYXBzZWQiLCJwYXJlbnQiLCJyYWRpdXMiLCJ0ZXh0IiwiaG92ZXIiLCJsaW5rIiwic3Ryb2tlIiwiZmlsbCIsInNpemUiLCJhc3BlY3RSYXRpbyIsImluaXRpYWxab29tIiwibWFyZ2luIiwidG9wIiwicmlnaHQiLCJib3R0b20iLCJsZWZ0IiwiaXNTb3J0ZWQiLCJoZWlnaHRCZXR3ZWVuTm9kZXNDb2VmZiIsIndpZHRoQmV0d2Vlbk5vZGVzQ29lZmYiLCJ0cmFuc2l0aW9uRHVyYXRpb24iLCJibGlua0R1cmF0aW9uIiwib25DbGlja1RleHQiLCJ0b29sdGlwT3B0aW9ucyIsImRpc2FibGVkIiwib2Zmc2V0IiwiRE9NTm9kZSIsIm9wdGlvbnMiLCJ3aWR0aCIsImhlaWdodCIsImZ1bGxXaWR0aCIsImZ1bGxIZWlnaHQiLCJhdHRyIiwicHJlc2VydmVBc3BlY3RSYXRpbyIsInZpZXdCb3giLCJyb290IiwiZDMiLCJzZWxlY3QiLCJ6b29tIiwiYmVoYXZpb3IiLCJzY2FsZUV4dGVudCIsInNjYWxlIiwidmlzIiwiYXBwZW5kIiwiY3Vyc29yIiwiY2FsbCIsIm9uIiwiZXZlbnQiLCJ0cmFuc2xhdGUiLCJ0b1N0cmluZyIsInRyYW5zZm9ybSIsImxheW91dCIsImRhdGEiLCJzb3J0IiwiYSIsImIiLCJuYW1lIiwidG9Mb3dlckNhc2UiLCJwcmV2aW91c05vZGVQb3NpdGlvbnNCeUlkIiwicGFyZW50SWQiLCJ4IiwieSIsImZpbmRQYXJlbnROb2RlUG9zaXRpb24iLCJub2RlUG9zaXRpb25zQnlJZCIsIm5vZGVJZCIsImZpbHRlciIsImN1cnJlbnRQb3NpdGlvbiIsInJlbmRlckNoYXJ0IiwibmV4dFN0YXRlIiwia2V5IiwibWVzc2FnZSIsIm5vZGVJbmRleCIsIm1heExhYmVsTGVuZ3RoIiwiTWF0aCIsIm1heCIsImxlbmd0aCIsImNoaWxkcmVuIiwibWFwIiwiYyIsInVwZGF0ZSIsImRpYWdvbmFsIiwic3ZnIiwicHJvamVjdGlvbiIsImQiLCJtYXhOb2RlQ291bnRCeUxldmVsIiwibm9kZXMiLCJsaW5rcyIsImZvckVhY2giLCJkZXB0aCIsIm5vZGVQb3NpdGlvbnMiLCJuIiwic2VsZWN0QWxsIiwicHJvcGVydHkiLCJub2RlRW50ZXIiLCJlbnRlciIsInBvc2l0aW9uIiwicHJldmlvdXNQb3NpdGlvbiIsIm1vdXNlb3ZlciIsIm1vdXNlb3V0IiwiaSIsIm5vZGVFbnRlcklubmVyR3JvdXAiLCJyIiwiY2xpY2tlZE5vZGUiLCJkZWZhdWx0UHJldmVudGVkIiwiZHkiLCJfY2hpbGRyZW4iLCJub2RlVXBkYXRlIiwidHJhbnNpdGlvbiIsImR1cmF0aW9uIiwiZ2V0QkJveCIsImZsaWNrIiwiX19vbGREYXRhX18iLCJ2YWx1ZSIsIm5vZGVFeGl0IiwiZXhpdCIsImZ1dHVyZVBvc2l0aW9uIiwicmVtb3ZlIiwidGFyZ2V0IiwiaW5zZXJ0Iiwic291cmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBTUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpR0EsSUFBTUEsY0FBdUIsR0FBRztBQUM5QkMsRUFBQUEsS0FBSyxFQUFFQyxTQUR1QjtBQUU5QkMsRUFBQUEsV0FBVyxFQUFFLE9BRmlCO0FBRzlCQyxFQUFBQSxVQUFVLEVBQUUsTUFIa0I7QUFJOUJDLEVBQUFBLElBQUksRUFBRUgsU0FKd0I7QUFLOUJJLEVBQUFBLEVBQUUsRUFBRSxPQUwwQjtBQU05QkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0xDLElBQUFBLElBQUksRUFBRTtBQUNKQyxNQUFBQSxNQUFNLEVBQUU7QUFDTixtQkFBUyxNQURIO0FBRU5DLFFBQUFBLFNBQVMsRUFBRSxnQkFGTDtBQUdO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QUFBQSxDQUFDLEVBQUdIO0FBREEsT0FIUixFQXROZ0IsQ0E2TmhCOztBQUNBMUUsTUFBQUEsSUFBSSxDQUNENEcsSUFESCxHQUVHUCxVQUZILEdBR0dDLFFBSEgsQ0FHWXhGLGtCQUhaLEVBSUdZLElBSkgsQ0FJUTtBQUNKbUQsUUFBQUEsQ0FBQyxFQUFFLFdBQUNBLEdBQUQsRUFBTztBQUNSLGNBQU1ZLFFBQVEsR0FBR2pDLHNCQUFzQixDQUNyQ0oseUJBRHFDLEVBRXBDeUIsR0FBQyxDQUFDa0MsTUFBSCxDQUF5QnhILEVBRlksRUFHckMsVUFBQzZGLENBQUQ7QUFBQSxtQkFBTyxDQUFDLENBQUMzQixpQkFBaUIsQ0FBQzJCLENBQUMsQ0FBQzdGLEVBQUgsQ0FBMUI7QUFBQSxXQUhxQyxDQUF2QztBQUtBLGNBQU1zSCxjQUFjLEdBQ2pCcEIsUUFBUSxJQUFJaEMsaUJBQWlCLENBQUNnQyxRQUFRLENBQUNsRyxFQUFWLENBQTlCLElBQ0FrRSxpQkFBaUIsQ0FBQzVCLElBRnBCO0FBR0EsaUJBQU82QyxRQUFRLENBQUM7QUFDZHVDLFlBQUFBLE1BQU0sRUFBRUosY0FETTtBQUVkRSxZQUFBQSxNQUFNLEVBQUVGO0FBRk0sV0FBRCxDQUFmO0FBSUQ7QUFkRyxPQUpSLEVBb0JHQyxNQXBCSCxHQTlOZ0IsQ0FvUGhCOztBQUNBckgsTUFBQUEsSUFBSSxDQUFDNkYsUUFBTCxDQUFjLGFBQWQsRUFBNkIsSUFBN0IsRUFyUGdCLENBdVBoQjs7QUFDQWxDLE1BQUFBLHlCQUF5QixHQUFHSyxpQkFBNUI7QUFDRDtBQUNGLEdBalNEO0FBa1NEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGQzLCB7IFpvb21FdmVudCwgUHJpbWl0aXZlIH0gZnJvbSAnZDMnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ3JhbWRhJztcbmltcG9ydCBtYXAydHJlZSBmcm9tICdtYXAydHJlZSc7XG5pbXBvcnQgZGVlcG1lcmdlIGZyb20gJ2RlZXBtZXJnZSc7XG5pbXBvcnQge1xuICBnZXRUb29sdGlwU3RyaW5nLFxuICB0b2dnbGVDaGlsZHJlbixcbiAgdmlzaXQsXG4gIGdldE5vZGVHcm91cEJ5RGVwdGhDb3VudCxcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgZDN0b29sdGlwIGZyb20gJ2QzdG9vbHRpcCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRPcHRpb25zIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgc3RhdGU/OiB7fSB8IG51bGw7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gIHRyZWU/OiBOb2RlV2l0aElkIHwge307XG5cbiAgcm9vdEtleU5hbWU6IHN0cmluZztcbiAgcHVzaE1ldGhvZDogJ3B1c2gnIHwgJ3Vuc2hpZnQnO1xuICBpZDogc3RyaW5nO1xuICBzdHlsZTogeyBba2V5OiBzdHJpbmddOiBQcmltaXRpdmUgfTtcbiAgc2l6ZTogbnVtYmVyO1xuICBhc3BlY3RSYXRpbzogbnVtYmVyO1xuICBpbml0aWFsWm9vbTogbnVtYmVyO1xuICBtYXJnaW46IHtcbiAgICB0b3A6IG51bWJlcjtcbiAgICByaWdodDogbnVtYmVyO1xuICAgIGJvdHRvbTogbnVtYmVyO1xuICAgIGxlZnQ6IG51bWJlcjtcbiAgfTtcbiAgaXNTb3J0ZWQ6IGJvb2xlYW47XG4gIGhlaWdodEJldHdlZW5Ob2Rlc0NvZWZmOiBudW1iZXI7XG4gIHdpZHRoQmV0d2Vlbk5vZGVzQ29lZmY6IG51bWJlcjtcbiAgdHJhbnNpdGlvbkR1cmF0aW9uOiBudW1iZXI7XG4gIGJsaW5rRHVyYXRpb246IG51bWJlcjtcbiAgb25DbGlja1RleHQ6IChkYXR1bTogTm9kZVdpdGhJZCkgPT4gdm9pZDtcbiAgdG9vbHRpcE9wdGlvbnM6IHtcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgbGVmdD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICB0b3A/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgb2Zmc2V0Pzoge1xuICAgICAgbGVmdDogbnVtYmVyO1xuICAgICAgdG9wOiBudW1iZXI7XG4gICAgfTtcbiAgICBzdHlsZT86IHsgW2tleTogc3RyaW5nXTogUHJpbWl0aXZlIH0gfCB1bmRlZmluZWQ7XG4gICAgaW5kZW50YXRpb25TaXplPzogbnVtYmVyO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgT3B0aW9ucyB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gIHN0YXRlPzoge30gfCBudWxsO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICB0cmVlPzogTm9kZVdpdGhJZCB8IHt9O1xuXG4gIHJvb3RLZXlOYW1lOiBzdHJpbmc7XG4gIHB1c2hNZXRob2Q6ICdwdXNoJyB8ICd1bnNoaWZ0JztcbiAgaWQ6IHN0cmluZztcbiAgc3R5bGU6IHtcbiAgICBub2RlOiB7XG4gICAgICBjb2xvcnM6IHtcbiAgICAgICAgZGVmYXVsdDogc3RyaW5nO1xuICAgICAgICBjb2xsYXBzZWQ6IHN0cmluZztcbiAgICAgICAgcGFyZW50OiBzdHJpbmc7XG4gICAgICB9O1xuICAgICAgcmFkaXVzOiBudW1iZXI7XG4gICAgfTtcbiAgICB0ZXh0OiB7XG4gICAgICBjb2xvcnM6IHtcbiAgICAgICAgZGVmYXVsdDogc3RyaW5nO1xuICAgICAgICBob3Zlcjogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIGxpbms6IHtcbiAgICAgIHN0cm9rZTogc3RyaW5nO1xuICAgICAgZmlsbDogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIHNpemU6IG51bWJlcjtcbiAgYXNwZWN0UmF0aW86IG51bWJlcjtcbiAgaW5pdGlhbFpvb206IG51bWJlcjtcbiAgbWFyZ2luOiB7XG4gICAgdG9wOiBudW1iZXI7XG4gICAgcmlnaHQ6IG51bWJlcjtcbiAgICBib3R0b206IG51bWJlcjtcbiAgICBsZWZ0OiBudW1iZXI7XG4gIH07XG4gIGlzU29ydGVkOiBib29sZWFuO1xuICBoZWlnaHRCZXR3ZWVuTm9kZXNDb2VmZjogbnVtYmVyO1xuICB3aWR0aEJldHdlZW5Ob2Rlc0NvZWZmOiBudW1iZXI7XG4gIHRyYW5zaXRpb25EdXJhdGlvbjogbnVtYmVyO1xuICBibGlua0R1cmF0aW9uOiBudW1iZXI7XG4gIG9uQ2xpY2tUZXh0OiAoKSA9PiB2b2lkO1xuICB0b29sdGlwT3B0aW9uczoge1xuICAgIGRpc2FibGVkOiBib29sZWFuO1xuICAgIGxlZnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICB0b3A6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBvZmZzZXQ6IHtcbiAgICAgIGxlZnQ6IG51bWJlcjtcbiAgICAgIHRvcDogbnVtYmVyO1xuICAgIH07XG4gICAgc3R5bGU6IHsgW2tleTogc3RyaW5nXTogUHJpbWl0aXZlIH0gfCB1bmRlZmluZWQ7XG4gICAgaW5kZW50YXRpb25TaXplPzogbnVtYmVyO1xuICB9O1xufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogT3B0aW9ucyA9IHtcbiAgc3RhdGU6IHVuZGVmaW5lZCxcbiAgcm9vdEtleU5hbWU6ICdzdGF0ZScsXG4gIHB1c2hNZXRob2Q6ICdwdXNoJyxcbiAgdHJlZTogdW5kZWZpbmVkLFxuICBpZDogJ2Qzc3ZnJyxcbiAgc3R5bGU6IHtcbiAgICBub2RlOiB7XG4gICAgICBjb2xvcnM6IHtcbiAgICAgICAgZGVmYXVsdDogJyNjY2MnLFxuICAgICAgICBjb2xsYXBzZWQ6ICdsaWdodHN0ZWVsYmx1ZScsXG4gICAgICAgIHBhcmVudDogJ3doaXRlJyxcbiAgICAgIH0sXG4gICAgICByYWRpdXM6IDcsXG4gICAgfSxcbiAgICB0ZXh0OiB7XG4gICAgICBjb2xvcnM6IHtcbiAgICAgICAgZGVmYXVsdDogJ2JsYWNrJyxcbiAgICAgICAgaG92ZXI6ICdza3libHVlJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBsaW5rOiB7XG4gICAgICBzdHJva2U6ICcjMDAwJyxcbiAgICAgIGZpbGw6ICdub25lJyxcbiAgICB9LFxuICB9LFxuICBzaXplOiA1MDAsXG4gIGFzcGVjdFJhdGlvOiAxLjAsXG4gIGluaXRpYWxab29tOiAxLFxuICBtYXJnaW46IHtcbiAgICB0b3A6IDEwLFxuICAgIHJpZ2h0OiAxMCxcbiAgICBib3R0b206IDEwLFxuICAgIGxlZnQ6IDUwLFxuICB9LFxuICBpc1NvcnRlZDogZmFsc2UsXG4gIGhlaWdodEJldHdlZW5Ob2Rlc0NvZWZmOiAyLFxuICB3aWR0aEJldHdlZW5Ob2Rlc0NvZWZmOiAxLFxuICB0cmFuc2l0aW9uRHVyYXRpb246IDc1MCxcbiAgYmxpbmtEdXJhdGlvbjogMTAwLFxuICBvbkNsaWNrVGV4dDogKCkgPT4ge1xuICAgIC8vIG5vb3BcbiAgfSxcbiAgdG9vbHRpcE9wdGlvbnM6IHtcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgbGVmdDogdW5kZWZpbmVkLFxuICAgIHRvcDogdW5kZWZpbmVkLFxuICAgIG9mZnNldDoge1xuICAgICAgbGVmdDogMCxcbiAgICAgIHRvcDogMCxcbiAgICB9LFxuICAgIHN0eWxlOiB1bmRlZmluZWQsXG4gIH0sXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVXaXRoSWQge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogTm9kZVdpdGhJZFtdIHwgbnVsbDtcbiAgX2NoaWxkcmVuPzogTm9kZVdpdGhJZFtdIHwgbnVsbDtcbiAgdmFsdWU/OiB1bmtub3duO1xuICBpZDogc3RyaW5nO1xuXG4gIHBhcmVudD86IE5vZGVXaXRoSWQ7XG4gIGRlcHRoPzogbnVtYmVyO1xuICB4PzogbnVtYmVyO1xuICB5PzogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgTm9kZVBvc2l0aW9uIHtcbiAgcGFyZW50SWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGlkOiBzdHJpbmc7XG4gIHg6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgeTogbnVtYmVyIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoXG4gIERPTU5vZGU6IEhUTUxFbGVtZW50LFxuICBvcHRpb25zOiBQYXJ0aWFsPElucHV0T3B0aW9ucz4gPSB7fVxuKSB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICBzdHlsZSxcbiAgICBzaXplLFxuICAgIGFzcGVjdFJhdGlvLFxuICAgIGluaXRpYWxab29tLFxuICAgIG1hcmdpbixcbiAgICBpc1NvcnRlZCxcbiAgICB3aWR0aEJldHdlZW5Ob2Rlc0NvZWZmLFxuICAgIGhlaWdodEJldHdlZW5Ob2Rlc0NvZWZmLFxuICAgIHRyYW5zaXRpb25EdXJhdGlvbixcbiAgICBibGlua0R1cmF0aW9uLFxuICAgIHN0YXRlLFxuICAgIHJvb3RLZXlOYW1lLFxuICAgIHB1c2hNZXRob2QsXG4gICAgdHJlZSxcbiAgICB0b29sdGlwT3B0aW9ucyxcbiAgICBvbkNsaWNrVGV4dCxcbiAgfSA9IGRlZXBtZXJnZShkZWZhdWx0T3B0aW9ucywgb3B0aW9ucykgYXMgT3B0aW9ucztcblxuICBjb25zdCB3aWR0aCA9IHNpemUgLSBtYXJnaW4ubGVmdCAtIG1hcmdpbi5yaWdodDtcbiAgY29uc3QgaGVpZ2h0ID0gc2l6ZSAqIGFzcGVjdFJhdGlvIC0gbWFyZ2luLnRvcCAtIG1hcmdpbi5ib3R0b207XG4gIGNvbnN0IGZ1bGxXaWR0aCA9IHNpemU7XG4gIGNvbnN0IGZ1bGxIZWlnaHQgPSBzaXplICogYXNwZWN0UmF0aW87XG5cbiAgY29uc3QgYXR0cjogeyBba2V5OiBzdHJpbmddOiBQcmltaXRpdmUgfSA9IHtcbiAgICBpZCxcbiAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiAneE1pbllNaW4gc2xpY2UnLFxuICB9O1xuXG4gIGlmICghKChzdHlsZSBhcyB1bmtub3duKSBhcyB7IFtrZXk6IHN0cmluZ106IFByaW1pdGl2ZSB9KS53aWR0aCkge1xuICAgIGF0dHIud2lkdGggPSBmdWxsV2lkdGg7XG4gIH1cblxuICBpZiAoXG4gICAgISgoc3R5bGUgYXMgdW5rbm93bikgYXMgeyBba2V5OiBzdHJpbmddOiBQcmltaXRpdmUgfSkud2lkdGggfHxcbiAgICAhKChzdHlsZSBhcyB1bmtub3duKSBhcyB7IFtrZXk6IHN0cmluZ106IFByaW1pdGl2ZSB9KS5oZWlnaHRcbiAgKSB7XG4gICAgYXR0ci52aWV3Qm94ID0gYDAgMCAke2Z1bGxXaWR0aH0gJHtmdWxsSGVpZ2h0fWA7XG4gIH1cblxuICBjb25zdCByb290ID0gZDMuc2VsZWN0KERPTU5vZGUpO1xuICBjb25zdCB6b29tID0gZDMuYmVoYXZpb3Iuem9vbSgpLnNjYWxlRXh0ZW50KFswLjEsIDNdKS5zY2FsZShpbml0aWFsWm9vbSk7XG4gIGNvbnN0IHZpcyA9IHJvb3RcbiAgICAuYXBwZW5kKCdzdmcnKVxuICAgIC5hdHRyKGF0dHIpXG4gICAgLnN0eWxlKCh7IGN1cnNvcjogJy13ZWJraXQtZ3JhYicsIC4uLnN0eWxlIH0gYXMgdW5rbm93bikgYXMge1xuICAgICAgW2tleTogc3RyaW5nXTogUHJpbWl0aXZlO1xuICAgIH0pXG4gICAgLmNhbGwoXG4gICAgICB6b29tLm9uKCd6b29tJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHRyYW5zbGF0ZSwgc2NhbGUgfSA9IGQzLmV2ZW50IGFzIFpvb21FdmVudDtcbiAgICAgICAgdmlzLmF0dHIoXG4gICAgICAgICAgJ3RyYW5zZm9ybScsXG4gICAgICAgICAgYHRyYW5zbGF0ZSgke3RyYW5zbGF0ZS50b1N0cmluZygpfSlzY2FsZSgke3NjYWxlfSlgXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgIClcbiAgICAuYXBwZW5kKCdnJylcbiAgICAuYXR0cih7XG4gICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGUoJHttYXJnaW4ubGVmdCArIHN0eWxlLm5vZGUucmFkaXVzfSwgJHtcbiAgICAgICAgbWFyZ2luLnRvcFxuICAgICAgfSkgc2NhbGUoJHtpbml0aWFsWm9vbX0pYCxcbiAgICB9KTtcblxuICBsZXQgbGF5b3V0ID0gZDMubGF5b3V0LnRyZWUoKS5zaXplKFt3aWR0aCwgaGVpZ2h0XSk7XG4gIGxldCBkYXRhOiBOb2RlV2l0aElkO1xuXG4gIGlmIChpc1NvcnRlZCkge1xuICAgIGxheW91dC5zb3J0KChhLCBiKSA9PlxuICAgICAgKGIgYXMgTm9kZVdpdGhJZCkubmFtZS50b0xvd2VyQ2FzZSgpIDxcbiAgICAgIChhIGFzIE5vZGVXaXRoSWQpLm5hbWUudG9Mb3dlckNhc2UoKVxuICAgICAgICA/IDFcbiAgICAgICAgOiAtMVxuICAgICk7XG4gIH1cblxuICAvLyBwcmV2aW91c05vZGVQb3NpdGlvbnNCeUlkIHN0b3JlcyBub2RlIHggYW5kIHlcbiAgLy8gYXMgd2VsbCBhcyBoaWVyYXJjaHkgKGlkIC8gcGFyZW50SWQpO1xuICAvLyBoZWxwcyBhbmltYXRpbmcgdHJhbnNpdGlvbnNcbiAgbGV0IHByZXZpb3VzTm9kZVBvc2l0aW9uc0J5SWQ6IHsgW25vZGVJZDogc3RyaW5nXTogTm9kZVBvc2l0aW9uIH0gPSB7XG4gICAgcm9vdDoge1xuICAgICAgaWQ6ICdyb290JyxcbiAgICAgIHBhcmVudElkOiBudWxsLFxuICAgICAgeDogaGVpZ2h0IC8gMixcbiAgICAgIHk6IDAsXG4gICAgfSxcbiAgfTtcblxuICAvLyB0cmF2ZXJzZXMgYSBtYXAgd2l0aCBub2RlIHBvc2l0aW9ucyBieSBnb2luZyB0aHJvdWdoIHRoZSBjaGFpblxuICAvLyBvZiBwYXJlbnQgaWRzOyBvbmNlIGEgcGFyZW50IHRoYXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gZmlsdGVyIGlzIGZvdW5kLFxuICAvLyB0aGUgcGFyZW50IHBvc2l0aW9uIGdldHMgcmV0dXJuZWRcbiAgZnVuY3Rpb24gZmluZFBhcmVudE5vZGVQb3NpdGlvbihcbiAgICBub2RlUG9zaXRpb25zQnlJZDogeyBbbm9kZUlkOiBzdHJpbmddOiBOb2RlUG9zaXRpb24gfSxcbiAgICBub2RlSWQ6IHN0cmluZyxcbiAgICBmaWx0ZXI6IChub2RlUG9zaXRpb246IE5vZGVQb3NpdGlvbikgPT4gYm9vbGVhblxuICApIHtcbiAgICBsZXQgY3VycmVudFBvc2l0aW9uID0gbm9kZVBvc2l0aW9uc0J5SWRbbm9kZUlkXTtcbiAgICB3aGlsZSAoY3VycmVudFBvc2l0aW9uKSB7XG4gICAgICBjdXJyZW50UG9zaXRpb24gPSBub2RlUG9zaXRpb25zQnlJZFtjdXJyZW50UG9zaXRpb24ucGFyZW50SWQhXTtcbiAgICAgIGlmICghY3VycmVudFBvc2l0aW9uKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKCFmaWx0ZXIgfHwgZmlsdGVyKGN1cnJlbnRQb3NpdGlvbikpIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRQb3NpdGlvbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gcmVuZGVyQ2hhcnQobmV4dFN0YXRlID0gdHJlZSB8fCBzdGF0ZSkge1xuICAgIGRhdGEgPSAhdHJlZVxuICAgICAgPyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICAgICAgICAobWFwMnRyZWUobmV4dFN0YXRlIGFzIHt9LCB7XG4gICAgICAgICAga2V5OiByb290S2V5TmFtZSxcbiAgICAgICAgICBwdXNoTWV0aG9kLFxuICAgICAgICB9KSBhcyBOb2RlV2l0aElkKVxuICAgICAgOiAobmV4dFN0YXRlIGFzIE5vZGVXaXRoSWQpO1xuXG4gICAgaWYgKGlzRW1wdHkoZGF0YSkgfHwgIWRhdGEubmFtZSkge1xuICAgICAgZGF0YSA9ICh7XG4gICAgICAgIG5hbWU6ICdlcnJvcicsXG4gICAgICAgIG1lc3NhZ2U6ICdQbGVhc2UgcHJvdmlkZSBhIHN0YXRlIG1hcCBvciBhIHRyZWUgc3RydWN0dXJlJyxcbiAgICAgIH0gYXMgdW5rbm93bikgYXMgTm9kZVdpdGhJZDtcbiAgICB9XG5cbiAgICBsZXQgbm9kZUluZGV4ID0gMDtcbiAgICBsZXQgbWF4TGFiZWxMZW5ndGggPSAwO1xuXG4gICAgLy8gbm9kZXMgYXJlIGFzc2lnbmVkIHdpdGggc3RyaW5nIGlkcywgd2hpY2ggcmVmbGVjdCB0aGVpciBsb2NhdGlvblxuICAgIC8vIHdpdGhpbiB0aGUgaGllcmFyY3k7IGUuZy4gXCJyb290fGJyYW5jaHxzdWJCcmFuY2h8c3ViQnJhbmNoWzBdfHByb3BlcnR5XCJcbiAgICAvLyB0b3AtbGV2ZWwgZWxlbW50IGFsd2F5cyBoYXMgaWQgXCJyb290XCJcbiAgICB2aXNpdChcbiAgICAgIGRhdGEsXG4gICAgICAobm9kZSkgPT4ge1xuICAgICAgICBtYXhMYWJlbExlbmd0aCA9IE1hdGgubWF4KG5vZGUubmFtZS5sZW5ndGgsIG1heExhYmVsTGVuZ3RoKTtcbiAgICAgICAgbm9kZS5pZCA9IG5vZGUuaWQgfHwgJ3Jvb3QnO1xuICAgICAgfSxcbiAgICAgIChub2RlKSA9PlxuICAgICAgICBub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMFxuICAgICAgICAgID8gbm9kZS5jaGlsZHJlbi5tYXAoKGMpID0+IHtcbiAgICAgICAgICAgICAgYy5pZCA9IGAke25vZGUuaWQgfHwgJyd9fCR7Yy5uYW1lfWA7XG4gICAgICAgICAgICAgIHJldHVybiBjO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IG51bGxcbiAgICApO1xuXG4gICAgdXBkYXRlKCk7XG5cbiAgICBmdW5jdGlvbiB1cGRhdGUoKSB7XG4gICAgICAvLyBwYXRoIGdlbmVyYXRvciBmb3IgbGlua3NcbiAgICAgIGNvbnN0IGRpYWdvbmFsID0gZDMuc3ZnXG4gICAgICAgIC5kaWFnb25hbDxOb2RlUG9zaXRpb24+KClcbiAgICAgICAgLnByb2plY3Rpb24oKGQpID0+IFtkLnkhLCBkLnghXSk7XG4gICAgICAvLyBzZXQgdHJlZSBkaW1lbnNpb25zIGFuZCBzcGFjaW5nIGJldHdlZW4gYnJhbmNoZXMgYW5kIG5vZGVzXG4gICAgICBjb25zdCBtYXhOb2RlQ291bnRCeUxldmVsID0gTWF0aC5tYXgoLi4uZ2V0Tm9kZUdyb3VwQnlEZXB0aENvdW50KGRhdGEpKTtcblxuICAgICAgbGF5b3V0ID0gbGF5b3V0LnNpemUoW1xuICAgICAgICBtYXhOb2RlQ291bnRCeUxldmVsICogMjUgKiBoZWlnaHRCZXR3ZWVuTm9kZXNDb2VmZixcbiAgICAgICAgd2lkdGgsXG4gICAgICBdKTtcblxuICAgICAgY29uc3Qgbm9kZXMgPSBsYXlvdXQubm9kZXMoZGF0YSBhcyBkMy5sYXlvdXQudHJlZS5Ob2RlKSBhcyBOb2RlV2l0aElkW107XG4gICAgICBjb25zdCBsaW5rcyA9IGxheW91dC5saW5rcyhub2RlcyBhcyBkMy5sYXlvdXQudHJlZS5Ob2RlW10pO1xuXG4gICAgICBub2Rlcy5mb3JFYWNoKFxuICAgICAgICAobm9kZSkgPT5cbiAgICAgICAgICAobm9kZS55ID0gbm9kZS5kZXB0aCEgKiAobWF4TGFiZWxMZW5ndGggKiA3ICogd2lkdGhCZXR3ZWVuTm9kZXNDb2VmZikpXG4gICAgICApO1xuXG4gICAgICBjb25zdCBub2RlUG9zaXRpb25zID0gbm9kZXMubWFwKChuKSA9PiAoe1xuICAgICAgICBwYXJlbnRJZDogbi5wYXJlbnQgJiYgbi5wYXJlbnQuaWQsXG4gICAgICAgIGlkOiBuLmlkLFxuICAgICAgICB4OiBuLngsXG4gICAgICAgIHk6IG4ueSxcbiAgICAgIH0pKTtcbiAgICAgIGNvbnN0IG5vZGVQb3NpdGlvbnNCeUlkOiB7IFtub2RlSWQ6IHN0cmluZ106IE5vZGVQb3NpdGlvbiB9ID0ge307XG4gICAgICBub2RlUG9zaXRpb25zLmZvckVhY2goKG5vZGUpID0+IChub2RlUG9zaXRpb25zQnlJZFtub2RlLmlkXSA9IG5vZGUpKTtcblxuICAgICAgLy8gcHJvY2VzcyB0aGUgbm9kZSBzZWxlY3Rpb25cbiAgICAgIGNvbnN0IG5vZGUgPSB2aXNcbiAgICAgICAgLnNlbGVjdEFsbCgnZy5ub2RlJylcbiAgICAgICAgLnByb3BlcnR5KCdfX29sZERhdGFfXycsIChkOiBOb2RlV2l0aElkKSA9PiBkKVxuICAgICAgICAuZGF0YShcbiAgICAgICAgICBub2RlcyxcbiAgICAgICAgICAoZCkgPT4gZC5pZCB8fCAoZC5pZCA9ICgrK25vZGVJbmRleCBhcyB1bmtub3duKSBhcyBzdHJpbmcpXG4gICAgICAgICk7XG4gICAgICBjb25zdCBub2RlRW50ZXIgPSBub2RlXG4gICAgICAgIC5lbnRlcigpXG4gICAgICAgIC5hcHBlbmQoJ2cnKVxuICAgICAgICAuYXR0cih7XG4gICAgICAgICAgY2xhc3M6ICdub2RlJyxcbiAgICAgICAgICB0cmFuc2Zvcm06IChkKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IGZpbmRQYXJlbnROb2RlUG9zaXRpb24oXG4gICAgICAgICAgICAgIG5vZGVQb3NpdGlvbnNCeUlkLFxuICAgICAgICAgICAgICBkLmlkLFxuICAgICAgICAgICAgICAobikgPT4gISFwcmV2aW91c05vZGVQb3NpdGlvbnNCeUlkW24uaWRdXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNQb3NpdGlvbiA9XG4gICAgICAgICAgICAgIChwb3NpdGlvbiAmJiBwcmV2aW91c05vZGVQb3NpdGlvbnNCeUlkW3Bvc2l0aW9uLmlkXSkgfHxcbiAgICAgICAgICAgICAgcHJldmlvdXNOb2RlUG9zaXRpb25zQnlJZC5yb290O1xuICAgICAgICAgICAgcmV0dXJuIGB0cmFuc2xhdGUoJHtwcmV2aW91c1Bvc2l0aW9uLnkhfSwke3ByZXZpb3VzUG9zaXRpb24ueCF9KWA7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgLnN0eWxlKHtcbiAgICAgICAgICBmaWxsOiBzdHlsZS50ZXh0LmNvbG9ycy5kZWZhdWx0LFxuICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICB9KVxuICAgICAgICAub24oJ21vdXNlb3ZlcicsIGZ1bmN0aW9uIG1vdXNlb3Zlcih0aGlzOiBhbnkpIHtcbiAgICAgICAgICBkMy5zZWxlY3QodGhpcykuc3R5bGUoe1xuICAgICAgICAgICAgZmlsbDogc3R5bGUudGV4dC5jb2xvcnMuaG92ZXIsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignbW91c2VvdXQnLCBmdW5jdGlvbiBtb3VzZW91dCh0aGlzOiBhbnkpIHtcbiAgICAgICAgICBkMy5zZWxlY3QodGhpcykuc3R5bGUoe1xuICAgICAgICAgICAgZmlsbDogc3R5bGUudGV4dC5jb2xvcnMuZGVmYXVsdCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGlmICghdG9vbHRpcE9wdGlvbnMuZGlzYWJsZWQpIHtcbiAgICAgICAgbm9kZUVudGVyLmNhbGwoXG4gICAgICAgICAgZDN0b29sdGlwKGQzLCAndG9vbHRpcCcsIHsgLi4udG9vbHRpcE9wdGlvbnMsIHJvb3QgfSlcbiAgICAgICAgICAgIC50ZXh0KChkLCBpKSA9PiBnZXRUb29sdGlwU3RyaW5nKGQsIGksIHRvb2x0aXBPcHRpb25zKSlcbiAgICAgICAgICAgIC5zdHlsZSh0b29sdGlwT3B0aW9ucy5zdHlsZSlcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gZyBpbnNpZGUgbm9kZSBjb250YWlucyBjaXJjbGUgYW5kIHRleHRcbiAgICAgIC8vIHRoaXMgZXh0cmEgd3JhcHBlciBoZWxwcyBydW4gZDMgdHJhbnNpdGlvbnMgaW4gcGFyYWxsZWxcbiAgICAgIGNvbnN0IG5vZGVFbnRlcklubmVyR3JvdXAgPSBub2RlRW50ZXIuYXBwZW5kKCdnJyk7XG4gICAgICBub2RlRW50ZXJJbm5lckdyb3VwXG4gICAgICAgIC5hcHBlbmQoJ2NpcmNsZScpXG4gICAgICAgIC5hdHRyKHtcbiAgICAgICAgICBjbGFzczogJ25vZGVDaXJjbGUnLFxuICAgICAgICAgIHI6IDAsXG4gICAgICAgIH0pXG4gICAgICAgIC5vbignY2xpY2snLCAoY2xpY2tlZE5vZGUpID0+IHtcbiAgICAgICAgICBpZiAoKGQzLmV2ZW50IGFzIEV2ZW50KS5kZWZhdWx0UHJldmVudGVkKSByZXR1cm47XG4gICAgICAgICAgdG9nZ2xlQ2hpbGRyZW4oY2xpY2tlZE5vZGUpO1xuICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgbm9kZUVudGVySW5uZXJHcm91cFxuICAgICAgICAuYXBwZW5kKCd0ZXh0JylcbiAgICAgICAgLmF0dHIoe1xuICAgICAgICAgIGNsYXNzOiAnbm9kZVRleHQnLFxuICAgICAgICAgICd0ZXh0LWFuY2hvcic6ICdtaWRkbGUnLFxuICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgwLDApJyxcbiAgICAgICAgICBkeTogJy4zNWVtJyxcbiAgICAgICAgfSlcbiAgICAgICAgLnN0eWxlKHtcbiAgICAgICAgICAnZmlsbC1vcGFjaXR5JzogMCxcbiAgICAgICAgfSlcbiAgICAgICAgLnRleHQoKGQpID0+IGQubmFtZSlcbiAgICAgICAgLm9uKCdjbGljaycsIG9uQ2xpY2tUZXh0KTtcblxuICAgICAgLy8gdXBkYXRlIHRoZSB0ZXh0IHRvIHJlZmxlY3Qgd2hldGhlciBub2RlIGhhcyBjaGlsZHJlbiBvciBub3RcbiAgICAgIG5vZGUuc2VsZWN0KCd0ZXh0JykudGV4dCgoZCkgPT4gZC5uYW1lKTtcblxuICAgICAgLy8gY2hhbmdlIHRoZSBjaXJjbGUgZmlsbCBkZXBlbmRpbmcgb24gd2hldGhlciBpdCBoYXMgY2hpbGRyZW4gYW5kIGlzIGNvbGxhcHNlZFxuICAgICAgbm9kZS5zZWxlY3QoJ2NpcmNsZScpLnN0eWxlKHtcbiAgICAgICAgc3Ryb2tlOiAnYmxhY2snLFxuICAgICAgICAnc3Ryb2tlLXdpZHRoJzogJzEuNXB4JyxcbiAgICAgICAgZmlsbDogKGQpID0+XG4gICAgICAgICAgZC5fY2hpbGRyZW5cbiAgICAgICAgICAgID8gc3R5bGUubm9kZS5jb2xvcnMuY29sbGFwc2VkXG4gICAgICAgICAgICA6IGQuY2hpbGRyZW5cbiAgICAgICAgICAgID8gc3R5bGUubm9kZS5jb2xvcnMucGFyZW50XG4gICAgICAgICAgICA6IHN0eWxlLm5vZGUuY29sb3JzLmRlZmF1bHQsXG4gICAgICB9KTtcblxuICAgICAgLy8gdHJhbnNpdGlvbiBub2RlcyB0byB0aGVpciBuZXcgcG9zaXRpb25cbiAgICAgIGNvbnN0IG5vZGVVcGRhdGUgPSBub2RlXG4gICAgICAgIC50cmFuc2l0aW9uKClcbiAgICAgICAgLmR1cmF0aW9uKHRyYW5zaXRpb25EdXJhdGlvbilcbiAgICAgICAgLmF0dHIoe1xuICAgICAgICAgIHRyYW5zZm9ybTogKGQpID0+IGB0cmFuc2xhdGUoJHtkLnkhfSwke2QueCF9KWAsXG4gICAgICAgIH0pO1xuXG4gICAgICAvLyBlbnN1cmUgY2lyY2xlIHJhZGl1cyBpcyBjb3JyZWN0XG4gICAgICBub2RlVXBkYXRlLnNlbGVjdCgnY2lyY2xlJykuYXR0cigncicsIHN0eWxlLm5vZGUucmFkaXVzKTtcblxuICAgICAgLy8gZmFkZSB0aGUgdGV4dCBpbiBhbmQgYWxpZ24gaXRcbiAgICAgIG5vZGVVcGRhdGVcbiAgICAgICAgLnNlbGVjdCgndGV4dCcpXG4gICAgICAgIC5zdHlsZSgnZmlsbC1vcGFjaXR5JywgMSlcbiAgICAgICAgLmF0dHIoe1xuICAgICAgICAgIHRyYW5zZm9ybTogZnVuY3Rpb24gdHJhbnNmb3JtKHRoaXM6IFNWR0dyYXBoaWNzRWxlbWVudCwgZCkge1xuICAgICAgICAgICAgY29uc3QgeCA9XG4gICAgICAgICAgICAgIChkLmNoaWxkcmVuIHx8IGQuX2NoaWxkcmVuID8gLTEgOiAxKSAqXG4gICAgICAgICAgICAgICh0aGlzLmdldEJCb3goKS53aWR0aCAvIDIgKyBzdHlsZS5ub2RlLnJhZGl1cyArIDUpO1xuICAgICAgICAgICAgcmV0dXJuIGB0cmFuc2xhdGUoJHt4fSwwKWA7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgIC8vIGJsaW5rIHVwZGF0ZWQgbm9kZXNcbiAgICAgIG5vZGVcbiAgICAgICAgLmZpbHRlcihmdW5jdGlvbiBmbGljayh0aGlzOiBhbnksIGQpIHtcbiAgICAgICAgICAvLyB0ZXN0IHdoZXRoZXIgdGhlIHJlbGV2YW50IHByb3BlcnRpZXMgb2YgZCBtYXRjaFxuICAgICAgICAgIC8vIHRoZSBlcXVpdmFsZW50IHByb3BlcnR5IG9mIHRoZSBvbGREYXRhXG4gICAgICAgICAgLy8gYWxzbyB0ZXN0IHdoZXRoZXIgdGhlIG9sZCBkYXRhIGV4aXN0cyxcbiAgICAgICAgICAvLyB0byBjYXRjaCB0aGUgZW50ZXJpbmcgZWxlbWVudHMhXG4gICAgICAgICAgcmV0dXJuIHRoaXMuX19vbGREYXRhX18gJiYgZC52YWx1ZSAhPT0gdGhpcy5fX29sZERhdGFfXy52YWx1ZTtcbiAgICAgICAgfSlcbiAgICAgICAgLnNlbGVjdCgnZycpXG4gICAgICAgIC5zdHlsZSgnb3BhY2l0eScsICcwLjMnKVxuICAgICAgICAudHJhbnNpdGlvbigpXG4gICAgICAgIC5kdXJhdGlvbihibGlua0R1cmF0aW9uKVxuICAgICAgICAuc3R5bGUoJ29wYWNpdHknLCAnMScpO1xuXG4gICAgICAvLyB0cmFuc2l0aW9uIGV4aXRpbmcgbm9kZXMgdG8gdGhlIHBhcmVudCdzIG5ldyBwb3NpdGlvblxuICAgICAgY29uc3Qgbm9kZUV4aXQgPSBub2RlXG4gICAgICAgIC5leGl0KClcbiAgICAgICAgLnRyYW5zaXRpb24oKVxuICAgICAgICAuZHVyYXRpb24odHJhbnNpdGlvbkR1cmF0aW9uKVxuICAgICAgICAuYXR0cih7XG4gICAgICAgICAgdHJhbnNmb3JtOiAoZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSBmaW5kUGFyZW50Tm9kZVBvc2l0aW9uKFxuICAgICAgICAgICAgICBwcmV2aW91c05vZGVQb3NpdGlvbnNCeUlkLFxuICAgICAgICAgICAgICBkLmlkLFxuICAgICAgICAgICAgICAobikgPT4gISFub2RlUG9zaXRpb25zQnlJZFtuLmlkXVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGZ1dHVyZVBvc2l0aW9uID1cbiAgICAgICAgICAgICAgKHBvc2l0aW9uICYmIG5vZGVQb3NpdGlvbnNCeUlkW3Bvc2l0aW9uLmlkXSkgfHxcbiAgICAgICAgICAgICAgbm9kZVBvc2l0aW9uc0J5SWQucm9vdDtcbiAgICAgICAgICAgIHJldHVybiBgdHJhbnNsYXRlKCR7ZnV0dXJlUG9zaXRpb24ueSF9LCR7ZnV0dXJlUG9zaXRpb24ueCF9KWA7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgLnJlbW92ZSgpO1xuXG4gICAgICBub2RlRXhpdC5zZWxlY3QoJ2NpcmNsZScpLmF0dHIoJ3InLCAwKTtcblxuICAgICAgbm9kZUV4aXQuc2VsZWN0KCd0ZXh0Jykuc3R5bGUoJ2ZpbGwtb3BhY2l0eScsIDApO1xuXG4gICAgICAvLyB1cGRhdGUgdGhlIGxpbmtzXG4gICAgICBjb25zdCBsaW5rID0gdmlzXG4gICAgICAgIC5zZWxlY3RBbGwoJ3BhdGgubGluaycpXG4gICAgICAgIC5kYXRhKGxpbmtzLCAoZCkgPT4gKGQudGFyZ2V0IGFzIE5vZGVXaXRoSWQpLmlkKTtcblxuICAgICAgLy8gZW50ZXIgYW55IG5ldyBsaW5rcyBhdCB0aGUgcGFyZW50J3MgcHJldmlvdXMgcG9zaXRpb25cbiAgICAgIGxpbmtcbiAgICAgICAgLmVudGVyKClcbiAgICAgICAgLmluc2VydCgncGF0aCcsICdnJylcbiAgICAgICAgLmF0dHIoe1xuICAgICAgICAgIGNsYXNzOiAnbGluaycsXG4gICAgICAgICAgZDogKGQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gZmluZFBhcmVudE5vZGVQb3NpdGlvbihcbiAgICAgICAgICAgICAgbm9kZVBvc2l0aW9uc0J5SWQsXG4gICAgICAgICAgICAgIChkLnRhcmdldCBhcyBOb2RlV2l0aElkKS5pZCxcbiAgICAgICAgICAgICAgKG4pID0+ICEhcHJldmlvdXNOb2RlUG9zaXRpb25zQnlJZFtuLmlkXVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzUG9zaXRpb24gPVxuICAgICAgICAgICAgICAocG9zaXRpb24gJiYgcHJldmlvdXNOb2RlUG9zaXRpb25zQnlJZFtwb3NpdGlvbi5pZF0pIHx8XG4gICAgICAgICAgICAgIHByZXZpb3VzTm9kZVBvc2l0aW9uc0J5SWQucm9vdDtcbiAgICAgICAgICAgIHJldHVybiBkaWFnb25hbCh7XG4gICAgICAgICAgICAgIHNvdXJjZTogcHJldmlvdXNQb3NpdGlvbixcbiAgICAgICAgICAgICAgdGFyZ2V0OiBwcmV2aW91c1Bvc2l0aW9uLFxuICAgICAgICAgICAgfSBhcyBkMy5zdmcuZGlhZ29uYWwuTGluazxOb2RlUG9zaXRpb24+KTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICAuc3R5bGUoc3R5bGUubGluayk7XG5cbiAgICAgIC8vIHRyYW5zaXRpb24gbGlua3MgdG8gdGhlaXIgbmV3IHBvc2l0aW9uXG4gICAgICBsaW5rXG4gICAgICAgIC50cmFuc2l0aW9uKClcbiAgICAgICAgLmR1cmF0aW9uKHRyYW5zaXRpb25EdXJhdGlvbilcbiAgICAgICAgLmF0dHIoe1xuICAgICAgICAgIGQ6IChkaWFnb25hbCBhcyB1bmtub3duKSBhcyBQcmltaXRpdmUsXG4gICAgICAgIH0pO1xuXG4gICAgICAvLyB0cmFuc2l0aW9uIGV4aXRpbmcgbm9kZXMgdG8gdGhlIHBhcmVudCdzIG5ldyBwb3NpdGlvblxuICAgICAgbGlua1xuICAgICAgICAuZXhpdCgpXG4gICAgICAgIC50cmFuc2l0aW9uKClcbiAgICAgICAgLmR1cmF0aW9uKHRyYW5zaXRpb25EdXJhdGlvbilcbiAgICAgICAgLmF0dHIoe1xuICAgICAgICAgIGQ6IChkKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IGZpbmRQYXJlbnROb2RlUG9zaXRpb24oXG4gICAgICAgICAgICAgIHByZXZpb3VzTm9kZVBvc2l0aW9uc0J5SWQsXG4gICAgICAgICAgICAgIChkLnRhcmdldCBhcyBOb2RlV2l0aElkKS5pZCxcbiAgICAgICAgICAgICAgKG4pID0+ICEhbm9kZVBvc2l0aW9uc0J5SWRbbi5pZF1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBmdXR1cmVQb3NpdGlvbiA9XG4gICAgICAgICAgICAgIChwb3NpdGlvbiAmJiBub2RlUG9zaXRpb25zQnlJZFtwb3NpdGlvbi5pZF0pIHx8XG4gICAgICAgICAgICAgIG5vZGVQb3NpdGlvbnNCeUlkLnJvb3Q7XG4gICAgICAgICAgICByZXR1cm4gZGlhZ29uYWwoe1xuICAgICAgICAgICAgICBzb3VyY2U6IGZ1dHVyZVBvc2l0aW9uLFxuICAgICAgICAgICAgICB0YXJnZXQ6IGZ1dHVyZVBvc2l0aW9uLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgLnJlbW92ZSgpO1xuXG4gICAgICAvLyBkZWxldGUgdGhlIG9sZCBkYXRhIG9uY2UgaXQncyBubyBsb25nZXIgbmVlZGVkXG4gICAgICBub2RlLnByb3BlcnR5KCdfX29sZERhdGFfXycsIG51bGwpO1xuXG4gICAgICAvLyBzdGFzaCB0aGUgb2xkIHBvc2l0aW9ucyBmb3IgdHJhbnNpdGlvblxuICAgICAgcHJldmlvdXNOb2RlUG9zaXRpb25zQnlJZCA9IG5vZGVQb3NpdGlvbnNCeUlkO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==

@@ -101,4 +101,5 @@ "use strict";

if (typeof node.object !== 'undefined') return json2html(node.object);
if (children && children.length) return 'childrenCount: ' + children.length;
if (children && children.length) return "childrenCount: ".concat(children.length);
return 'empty';
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jaGFydHMvdHJlZS91dGlscy50cyJdLCJuYW1lcyI6WyJjb2xsYXBzZUNoaWxkcmVuIiwibm9kZSIsImNoaWxkcmVuIiwiX2NoaWxkcmVuIiwiZm9yRWFjaCIsImV4cGFuZENoaWxkcmVuIiwidG9nZ2xlQ2hpbGRyZW4iLCJ2aXNpdCIsInBhcmVudCIsInZpc2l0Rm4iLCJjaGlsZHJlbkZuIiwiY291bnQiLCJsZW5ndGgiLCJpIiwiZ2V0Tm9kZUdyb3VwQnlEZXB0aENvdW50Iiwicm9vdE5vZGUiLCJub2RlR3JvdXBCeURlcHRoQ291bnQiLCJ0cmF2ZXJzZUZyb20iLCJkZXB0aCIsInB1c2giLCJjaGlsZE5vZGUiLCJnZXRUb29sdGlwU3RyaW5nIiwiaW5kZW50YXRpb25TaXplIiwiT2JqZWN0Iiwic3BhY2VyIiwiY3IyYnIiLCJzcGFjZXMybmJzcCIsIkFycmF5IiwianNvbjJodG1sIiwic29ydEFuZFNlcmlhbGl6ZSIsInZhbHVlIiwib2JqZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7OztBQUdPLFNBQVNBLGdCQUFULENBQTBCQyxJQUExQixFQUE0QztBQUNqRCxNQUFJQSxJQUFJLENBQUNDLFFBQVQsRUFBbUI7QUFDakJELElBQUFBLElBQUksQ0FBQ0UsU0FBTCxHQUFpQkYsSUFBSSxDQUFDQyxRQUF0Qjs7QUFDQUQsSUFBQUEsSUFBSSxDQUFDRSxTQUFMLENBQWVDLE9BQWYsQ0FBdUJKLGdCQUF2Qjs7QUFDQUMsSUFBQUEsSUFBSSxDQUFDQyxRQUFMLEdBQWdCLElBQWhCO0FBQ0Q7QUFDRjs7QUFFTSxTQUFTRyxjQUFULENBQXdCSixJQUF4QixFQUEwQztBQUMvQyxNQUFJQSxJQUFJLENBQUNFLFNBQVQsRUFBb0I7QUFDbEJGLElBQUFBLElBQUksQ0FBQ0MsUUFBTCxHQUFnQkQsSUFBSSxDQUFDRSxTQUFyQjtBQUNBRixJQUFBQSxJQUFJLENBQUNDLFFBQUwsQ0FBY0UsT0FBZCxDQUFzQkMsY0FB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dkIsRUFBOEJDLFdBQTlCLENBQWxCO0FBRUEsTUFBTXhCLFFBQVEsR0FBSUQsSUFBRCxDQUFjQyxRQUFkLElBQTJCRCxJQUFELENBQWNFLFNBQXpEO0FBRUEsTUFBSSxPQUFRRixJQUFELENBQWM2QixLQUFyQixLQUErQixXQUFuQyxFQUNFLE9BQU9GLFNBQVMsQ0FBRTNCLElBQUQsQ0FBYzZCLEtBQWYsQ0FBaEI7QUFDRixNQUFJLE9BQVE3QixJQUFELENBQWM4QixNQUFyQixLQUFnQyxXQUFwQyxFQUNFLE9BQU9ILFNBQVMsQ0FBRTNCLElBQUQsQ0FBYzhCLE1BQWYsQ0FBaEI7QUFDRixNQUFJN0IsUUFBUSxJQUFJQSxRQUFRLENBQUNVLE1BQXpCLEVBQ0UsZ0NBQTBCVixRQUFELENBQXdCVSxNQUFqRDtBQUNGLFNBQU8sT0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXMsIGpvaW4sIHBpcGUsIHJlcGxhY2UgfSBmcm9tICdyYW1kYSc7XG5pbXBvcnQgc29ydEFuZFNlcmlhbGl6ZSBmcm9tICcuL3NvcnRBbmRTZXJpYWxpemUnO1xuaW1wb3J0IHsgTm9kZVdpdGhJZCB9IGZyb20gJy4vdHJlZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb2xsYXBzZUNoaWxkcmVuKG5vZGU6IE5vZGVXaXRoSWQpIHtcbiAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICBub2RlLl9jaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW47XG4gICAgbm9kZS5fY2hpbGRyZW4uZm9yRWFjaChjb2xsYXBzZUNoaWxkcmVuKTtcbiAgICBub2RlLmNoaWxkcmVuID0gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwYW5kQ2hpbGRyZW4obm9kZTogTm9kZVdpdGhJZCkge1xuICBpZiAobm9kZS5fY2hpbGRyZW4pIHtcbiAgICBub2RlLmNoaWxkcmVuID0gbm9kZS5fY2hpbGRyZW47XG4gICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKGV4cGFuZENoaWxkcmVuKTtcbiAgICBub2RlLl9jaGlsZHJlbiA9IG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvZ2dsZUNoaWxkcmVuKG5vZGU6IE5vZGVXaXRoSWQpIHtcbiAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICBub2RlLl9jaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW47XG4gICAgbm9kZS5jaGlsZHJlbiA9IG51bGw7XG4gIH0gZWxzZSBpZiAobm9kZS5fY2hpbGRyZW4pIHtcbiAgICBub2RlLmNoaWxkcmVuID0gbm9kZS5fY2hpbGRyZW47XG4gICAgbm9kZS5fY2hpbGRyZW4gPSBudWxsO1xuICB9XG4gIHJldHVybiBub2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmlzaXQoXG4gIHBhcmVudDogTm9kZVdpdGhJZCxcbiAgdmlzaXRGbjogKHBhcmVudDogTm9kZVdpdGhJZCkgPT4gdm9pZCxcbiAgY2hpbGRyZW5GbjogKHBhcmVudDogTm9kZVdpdGhJZCkgPT4gTm9kZVdpdGhJZFtdIHwgbnVsbCB8IHVuZGVmaW5lZFxuKSB7XG4gIGlmICghcGFyZW50KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmlzaXRGbihwYXJlbnQpO1xuXG4gIGNvbnN0IGNoaWxkcmVuID0gY2hpbGRyZW5GbihwYXJlbnQpO1xuICBpZiAoY2hpbGRyZW4pIHtcbiAgICBjb25zdCBjb3VudCA9IGNoaWxkcmVuLmxlbmd0aDtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgdmlzaXQoY2hpbGRyZW5baV0sIHZpc2l0Rm4sIGNoaWxkcmVuRm4pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Tm9kZUdyb3VwQnlEZXB0aENvdW50KHJvb3ROb2RlOiBOb2RlV2l0aElkKSB7XG4gIGNvbnN0IG5vZGVHcm91cEJ5RGVwdGhDb3VudCA9IFsxXTtcblxuICBjb25zdCB0cmF2ZXJzZUZyb20gPSBmdW5jdGlvbiB0cmF2ZXJzZUZyb20obm9kZTogTm9kZVdpdGhJZCwgZGVwdGggPSAwKSB7XG4gICAgaWYgKCFub2RlLmNoaWxkcmVuIHx8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBpZiAobm9kZUdyb3VwQnlEZXB0aENvdW50Lmxlbmd0aCA8PSBkZXB0aCArIDEpIHtcbiAgICAgIG5vZGVHcm91cEJ5RGVwdGhDb3VudC5wdXNoKDApO1xuICAgIH1cblxuICAgIG5vZGVHcm91cEJ5RGVwdGhDb3VudFtkZXB0aCArIDFdICs9IG5vZGUuY2hpbGRyZW4ubGVuZ3RoO1xuXG4gICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZE5vZGUpID0+IHtcbiAgICAgIHRyYXZlcnNlRnJvbShjaGlsZE5vZGUsIGRlcHRoICsgMSk7XG4gICAgfSk7XG4gIH07XG5cbiAgdHJhdmVyc2VGcm9tKHJvb3ROb2RlKTtcbiAgcmV0dXJuIG5vZGVHcm91cEJ5RGVwdGhDb3VudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBTdHJpbmcoXG4gIG5vZGU6IHVua25vd24sXG4gIGk6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgeyBpbmRlbnRhdGlvblNpemUgPSA0IH1cbikge1xuICBpZiAoIWlzKE9iamVjdCwgbm9kZSkpIHJldHVybiAnJztcblxuICBjb25zdCBzcGFjZXIgPSBqb2luKCcmbmJzcDsmbmJzcDsnKTtcbiAgY29uc3QgY3IyYnIgPSByZXBsYWNlKC9cXG4vZywgJzxici8+Jyk7XG4gIGNvbnN0IHNwYWNlczJuYnNwID0gcmVwbGFjZSgvXFxzezJ9L2csIHNwYWNlcihuZXcgQXJyYXkoaW5kZW50YXRpb25TaXplKSkpO1xuICBjb25zdCBqc29uMmh0bWwgPSBwaXBlKHNvcnRBbmRTZXJpYWxpemUsIGNyMmJyLCBzcGFjZXMybmJzcCk7XG5cbiAgY29uc3QgY2hpbGRyZW4gPSAobm9kZSBhcyBhbnkpLmNoaWxkcmVuIHx8IChub2RlIGFzIGFueSkuX2NoaWxkcmVuO1xuXG4gIGlmICh0eXBlb2YgKG5vZGUgYXMgYW55KS52YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpXG4gICAgcmV0dXJuIGpzb24yaHRtbCgobm9kZSBhcyBhbnkpLnZhbHVlKTtcbiAgaWYgKHR5cGVvZiAobm9kZSBhcyBhbnkpLm9iamVjdCAhPT0gJ3VuZGVmaW5lZCcpXG4gICAgcmV0dXJuIGpzb24yaHRtbCgobm9kZSBhcyBhbnkpLm9iamVjdCk7XG4gIGlmIChjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGgpXG4gICAgcmV0dXJuIGBjaGlsZHJlbkNvdW50OiAkeyhjaGlsZHJlbiBhcyB1bmtub3duW10pLmxlbmd0aH1gO1xuICByZXR1cm4gJ2VtcHR5Jztcbn1cbiJdfQ==

@@ -23,2 +23,3 @@ "use strict";

var _default = charts;
exports["default"] = _default;
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJjaGFydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7ZUFLZUEsTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoYXJ0cyBmcm9tICcuL2NoYXJ0cyc7XG5cbmV4cG9ydCB7IHRyZWUgfSBmcm9tICcuL2NoYXJ0cyc7XG5leHBvcnQgdHlwZSB7IElucHV0T3B0aW9ucywgTm9kZVdpdGhJZCB9IGZyb20gJy4vY2hhcnRzJztcblxuZXhwb3J0IGRlZmF1bHQgY2hhcnRzO1xuIl19
{
"name": "d3-state-visualizer",
"version": "1.3.4",
"version": "1.4.0",
"description": "Visualize your app state with a range of reusable charts",
"main": "lib/index.js",
"files": [
"dist",
"lib",
"src"
],
"scripts": {
"clean": "rimraf lib dist",
"build": "babel src --out-dir lib",
"build:umd": "webpack src/index.js -o dist/d3-state-visualizer.js --config webpack.config.development.js",
"build:umd:min": "webpack src/index.js -o dist/d3-state-visualizer.min.js --config webpack.config.production.js",
"prepare": "npm run build",
"prepublishOnly": "npm run clean && npm run build && npm run build:umd && npm run build:umd:min"
},
"repository": {
"type": "git",
"url": "https://github.com/reduxjs/redux-devtools.git"
},
"keywords": [

@@ -30,26 +12,45 @@ "d3",

],
"author": "romseguy",
"license": "MIT",
"homepage": "https://github.com/reduxjs/redux-devtools/tree/master/packages/d3-state-visualizer",
"bugs": {
"url": "https://github.com/reduxjs/redux-devtools/issues"
},
"homepage": "https://github.com/reduxjs/redux-devtools",
"devDependencies": {
"@babel/cli": "^7.10.5",
"@babel/core": "^7.11.1",
"@babel/plugin-proposal-class-properties": "^7.10.4",
"@babel/plugin-proposal-export-default-from": "^7.10.4",
"@babel/preset-env": "^7.11.0",
"babel-loader": "^8.1.0",
"rimraf": "^3.0.2",
"webpack": "^4.44.1"
"license": "MIT",
"author": "romseguy",
"files": [
"dist",
"lib",
"src"
],
"main": "lib/index.js",
"types": "lib/index.d.ts",
"repository": {
"type": "git",
"url": "https://github.com/reduxjs/redux-devtools.git"
},
"scripts": {
"build": "npm run build:types && npm run build:js && npm run build:umd && npm run build:umd:min",
"build:types": "tsc --emitDeclarationOnly",
"build:js": "babel src --out-dir lib --extensions \".ts\" --source-maps inline",
"build:umd": "webpack --env.production --progress --config webpack.config.umd.ts",
"build:umd:min": "webpack --env.production --progress --config webpack.config.umd.ts",
"clean": "rimraf lib dist",
"lint": "eslint . --ext .ts",
"lint:fix": "eslint . --ext .ts --fix",
"type-check": "tsc --noEmit",
"type-check:watch": "npm run type-check -- --watch",
"preversion": "npm run type-check && npm run lint",
"prepublishOnly": "npm run clean && npm run build"
},
"dependencies": {
"@types/d3": "^3.5.43",
"d3": "^3.5.17",
"d3tooltip": "^1.2.3",
"d3tooltip": "^1.3.0",
"deepmerge": "^4.2.2",
"map2tree": "^1.4.2",
"map2tree": "^1.5.0",
"ramda": "^0.27.1"
},
"gitHead": "f4405ac0f016b7997e1a6d31796aa99ad632889e"
"devDependencies": {
"@types/ramda": "^0.27.17"
},
"gitHead": "5ef9b00cd4717ac878068ce8003e1999e680c72e"
}

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc