Socket
Socket
Sign inDemoInstall

@ditojs/router

Package Overview
Dependencies
Maintainers
4
Versions
316
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ditojs/router - npm Package Compare versions

Comparing version 0.79.0 to 0.80.0

25

lib/Node.js

@@ -7,2 +7,5 @@ "use strict";

exports.default = void 0;
var _utils = require("@ditojs/utils");
const TYPE_STATIC = 0;

@@ -93,3 +96,3 @@ const TYPE_PARAM = 1;

while (true) {
const pos = current.matchPrefix(path);
const pos = (0, _utils.getCommonOffset)(current.prefix, path);
const {

@@ -163,3 +166,3 @@ prefix

const pos = this.matchPrefix(path);
const pos = (0, _utils.getCommonOffset)(this.prefix, path);
const prefixLength = prefix.length;

@@ -218,18 +221,2 @@ const fullMatch = pos === prefixLength;

matchPrefix(path) {
const {
prefix
} = this;
const prefixLength = prefix.length;
const pathLength = path.length;
const max = pathLength < prefixLength ? pathLength : prefixLength;
let pos = 0;
while (pos < max && path.charCodeAt(pos) === prefix.charCodeAt(pos)) {
pos++;
}
return pos;
}
toString(prefix = '', tail = true, root = true) {

@@ -256,2 +243,2 @@ const handler = this.handler && `${this.handler.name || 'ƒ'}()`;

exports.default = Node;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Ob2RlLmpzIl0sIm5hbWVzIjpbIlRZUEVfU1RBVElDIiwiVFlQRV9QQVJBTSIsIlRZUEVfTUFUQ0hfQU5ZIiwiQ0hBUl9QQVJBTSIsImNoYXJDb2RlQXQiLCJDSEFSX01BVENIX0FOWSIsIkNIQVJfU0xBU0giLCJOb2RlIiwiY29uc3RydWN0b3IiLCJhcmdzIiwiaW5pdGlhbGl6ZSIsInByZWZpeCIsInR5cGUiLCJjaGlsZHJlbiIsImhhbmRsZXIiLCJwYXJhbU5hbWVzIiwibGFiZWwiLCJwYXJhbU5hbWUiLCJhZGRDaGlsZCIsImNoaWxkIiwicHVzaCIsImZpbmRDaGlsZCIsImZpbmRDaGlsZFdpdGhMYWJlbCIsImZpbmRDaGlsZFdpdGhUeXBlIiwiYWRkIiwicGF0aCIsInBvcyIsImxlbmd0aCIsImNoIiwiaW5zZXJ0Iiwic3Vic3RyaW5nIiwic3RhcnQiLCJtYXRjaCIsImN1cnJlbnQiLCJtYXRjaFByZWZpeCIsIm5vZGUiLCJ1bmRlZmluZWQiLCJmaW5kIiwicGFyYW1WYWx1ZXMiLCJwYXJhbXMiLCJpIiwibmFtZSIsInByZWZpeExlbmd0aCIsImZ1bGxNYXRjaCIsInN0YXRpY0NoaWxkIiwicmVzdWx0IiwicGFyYW1DaGlsZCIsIm1heCIsInBvcCIsIm1hdGNoQW55Q2hpbGQiLCJwYXRoTGVuZ3RoIiwidG9TdHJpbmciLCJ0YWlsIiwicm9vdCIsImZvcm1hdCIsIm9uIiwib2ZmIiwibGluZXMiLCJzdHIiLCJsIiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsTUFBTUEsV0FBVyxHQUFHLENBQXBCO0FBQ0EsTUFBTUMsVUFBVSxHQUFHLENBQW5CO0FBQ0EsTUFBTUMsY0FBYyxHQUFHLENBQXZCO0FBR0EsTUFBTUMsVUFBVSxHQUFHLElBQUlDLFVBQUosQ0FBZSxDQUFmLENBQW5CO0FBQ0EsTUFBTUMsY0FBYyxHQUFHLElBQUlELFVBQUosQ0FBZSxDQUFmLENBQXZCO0FBQ0EsTUFBTUUsVUFBVSxHQUFHLElBQUlGLFVBQUosQ0FB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QyxNQUFBQTtBQUFGLFFBQWUsSUFBckI7QUFDQSxVQUFNNEMsS0FBSyxHQUFHLENBQ1gsR0FBRUgsTUFBTSxDQUFDM0MsTUFBRCxFQUFTeUMsSUFBVCxFQUFlLE1BQWYsRUFBdUIsTUFBdkIsQ0FBK0IsR0FDdEMsS0FBS3hDLElBQUwsS0FBY1gsVUFBZCxHQUNLLEdBQUUsS0FBS1UsTUFBTyxHQUFFLEtBQUtNLFNBQVUsRUFEcEMsR0FFSSxLQUFLTixNQUNWLEdBQ0NHLE9BQU8sR0FBSSxJQUFHQSxPQUFRLEVBQWYsR0FBbUIsRUFDM0IsYUFDQ0QsUUFBUSxDQUFDYyxNQUNWLEVBVFcsQ0FBZDtBQVlBLFVBQU0rQixHQUFHLEdBQUdKLE1BQU0sQ0FBQzNDLE1BQUQsRUFBU3lDLElBQVQsRUFBZSxNQUFmLEVBQXVCLE1BQXZCLENBQWxCOztBQUNBLFNBQUssSUFBSVosQ0FBQyxHQUFHLENBQVIsRUFBV21CLENBQUMsR0FBRzlDLFFBQVEsQ0FBQ2MsTUFBVCxHQUFrQixDQUF0QyxFQUF5Q2EsQ0FBQyxJQUFJbUIsQ0FBOUMsRUFBaURuQixDQUFDLEVBQWxELEVBQXNEO0FBQ3BEaUIsTUFBQUEsS0FBSyxDQUFDckMsSUFBTixDQUFXUCxRQUFRLENBQUMyQixDQUFELENBQVIsQ0FBWVcsUUFBWixDQUFxQk8sR0FBckIsRUFBMEJsQixDQUFDLEtBQUttQixDQUFoQyxFQUFtQyxLQUFuQyxDQUFYO0FBQ0Q7O0FBQ0QsV0FBT0YsS0FBSyxDQUFDRyxJQUFOLENBQVcsSUFBWCxDQUFQO0FBQ0Q7O0FBMU91QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5vZGUgVHlwZXM6XG5jb25zdCBUWVBFX1NUQVRJQyA9IDBcbmNvbnN0IFRZUEVfUEFSQU0gPSAxXG5jb25zdCBUWVBFX01BVENIX0FOWSA9IDJcblxuLy8gQ2hhciBDb2Rlc1xuY29uc3QgQ0hBUl9QQVJBTSA9ICc6Jy5jaGFyQ29kZUF0KDApXG5jb25zdCBDSEFSX01BVENIX0FOWSA9ICcqJy5jaGFyQ29kZUF0KDApXG5jb25zdCBDSEFSX1NMQVNIID0gJy8nLmNoYXJDb2RlQXQoMClcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTm9kZSB7XG4gIGNvbnN0cnVjdG9yKC4uLmFyZ3MpIHtcbiAgICB0aGlzLmluaXRpYWxpemUoLi4uYXJncylcbiAgfVxuXG4gIGluaXRpYWxpemUoXG4gICAgcHJlZml4ID0gJy8nLFxuICAgIHR5cGUgPSBUWVBFX1NUQVRJQyxcbiAgICBjaGlsZHJlbiA9IFtdLFxuICAgIGhhbmRsZXIgPSBudWxsLFxuICAgIHBhcmFtTmFtZXMgPSBudWxsXG4gICkge1xuICAgIHRoaXMubGFiZWwgPSBwcmVmaXguY2hhckNvZGVBdCgwKVxuICAgIHRoaXMucHJlZml4ID0gcHJlZml4XG4gICAgdGhpcy50eXBlID0gdHlwZVxuICAgIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlblxuICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXJcbiAgICB0aGlzLnBhcmFtTmFtZXMgPSBwYXJhbU5hbWVzXG4gICAgdGhpcy5wYXJhbU5hbWUgPSBudWxsXG4gIH1cblxuICBhZGRDaGlsZChjaGlsZCkge1xuICAgIHRoaXMuY2hpbGRyZW4ucHVzaChjaGlsZClcbiAgfVxuXG4gIGZpbmRDaGlsZChsYWJlbCwgdHlwZSkge1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgaWYgKGNoaWxkLmxhYmVsID09PSBsYWJlbCAmJiBjaGlsZC50eXBlID09PSB0eXBlKSB7XG4gICAgICAgIHJldHVybiBjaGlsZFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZpbmRDaGlsZFdpdGhMYWJlbChsYWJlbCkge1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgaWYgKGNoaWxkLmxhYmVsID09PSBsYWJlbCkge1xuICAgICAgICByZXR1cm4gY2hpbGRcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmaW5kQ2hpbGRXaXRoVHlwZSh0eXBlKSB7XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICBpZiAoY2hpbGQudHlwZSA9PT0gdHlwZSkge1xuICAgICAgICByZXR1cm4gY2hpbGRcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhZGQocGF0aCwgaGFuZGxlcikge1xuICAgIGNvbnN0IHBhcmFtTmFtZXMgPSBbXVxuICAgIGZvciAobGV0IHBvcyA9IDAsIGxlbmd0aCA9IHBhdGgubGVuZ3RoOyBwb3MgPCBsZW5ndGg7IHBvcysrKSB7XG4gICAgICBjb25zdCBjaCA9IHBhdGguY2hhckNvZGVBdChwb3MpXG4gICAgICBpZiAoY2ggPT09IENIQVJfUEFSQU0pIHtcbiAgICAgICAgdGhpcy5pbnNlcnQocGF0aC5zdWJzdHJpbmcoMCwgcG9zKSwgVFlQRV9TVEFUSUMpXG4gICAgICAgIHBvcysrIC8vIFNraXAgY29sb24uXG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gcG9zXG4gICAgICAgIC8vIE1vdmUgcG9zIHRvIHRoZSBuZXh0IG9jY3VycmVuY2Ugb2YgdGhlIHNsYXNoIG9yIHRoZSBlbmQ6XG4gICAgICAgIHBvcyArPSBwYXRoLnN1YnN0cmluZyhwb3MpLm1hdGNoKC9eKFteL10qKS8pWzFdLmxlbmd0aFxuXG4gICAgICAgIHBhcmFtTmFtZXMucHVzaChwYXRoLnN1YnN0cmluZyhzdGFydCwgcG9zKSlcbiAgICAgICAgLy8gQ2hvcCBvdXQgcGFyYW0gbmFtZSBmcm9tIHBhdGgsIGJ1dCBrZWVwIGNvbG9uLlxuICAgICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcoMCwgc3RhcnQpICsgcGF0aC5zdWJzdHJpbmcocG9zKVxuICAgICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aCAvLyBVcGRhdGUgbGVuZ3RoIGFmdGVyIGNoYW5naW5nIHBhdGguXG5cbiAgICAgICAgaWYgKHN0YXJ0ID09PSBsZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnNlcnQocGF0aCwgVFlQRV9QQVJBTSwgcGFyYW1OYW1lcywgaGFuZGxlcilcbiAgICAgICAgfVxuICAgICAgICBwb3MgPSBzdGFydFxuICAgICAgICB0aGlzLmluc2VydChwYXRoLnN1YnN0cmluZygwLCBwb3MpLCBUWVBFX1BBUkFNLCBwYXJhbU5hbWVzKVxuICAgICAgfSBlbHNlIGlmIChjaCA9PT0gQ0hBUl9NQVRDSF9BTlkpIHtcbiAgICAgICAgdGhpcy5pbnNlcnQocGF0aC5zdWJzdHJpbmcoMCwgcG9zKSwgVFlQRV9TVEFUSUMpXG4gICAgICAgIHBhcmFtTmFtZXMucHVzaCgnKicpXG4gICAgICAgIHJldHVybiB0aGlzLmluc2VydChwYXRoLCBUWVBFX01BVENIX0FOWSwgcGFyYW1OYW1lcywgaGFuZGxlcilcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5pbnNlcnQocGF0aCwgVFlQRV9TVEFUSUMsIHBhcmFtTmFtZXMsIGhhbmRsZXIpXG4gIH1cblxuICBpbnNlcnQocGF0aCwgdHlwZSwgcGFyYW1OYW1lcywgaGFuZGxlcikge1xuICAgIGxldCBjdXJyZW50ID0gdGhpc1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAvLyBGaW5kIHRoZSBwb3NpdGlvbiB3aGVyZSB0aGUgcGF0aCBhbmQgdGhlIG5vZGUncyBwcmVmaXggc3RhcnQgZGl2ZXJnaW5nLlxuICAgICAgY29uc3QgcG9zID0gY3VycmVudC5tYXRjaFByZWZpeChwYXRoKVxuICAgICAgY29uc3QgeyBwcmVmaXggfSA9IGN1cnJlbnRcbiAgICAgIGlmIChwb3MgPCBwcmVmaXgubGVuZ3RoKSB7XG4gICAgICAgIC8vIFNwbGl0IG5vZGVcbiAgICAgICAgY29uc3Qgbm9kZSA9IG5ldyBOb2RlKFxuICAgICAgICAgIHByZWZpeC5zdWJzdHJpbmcocG9zKSxcbiAgICAgICAgICBjdXJyZW50LnR5cGUsXG4gICAgICAgICAgY3VycmVudC5jaGlsZHJlbixcbiAgICAgICAgICBjdXJyZW50LmhhbmRsZXIsXG4gICAgICAgICAgY3VycmVudC5wYXJhbU5hbWVzXG4gICAgICAgIClcbiAgICAgICAgLy8gUmVzZXQgcGFyZW50IG5vZGUgYW5kIGFkZCBuZXcgbm9kZSBhcyBjaGlsZCB0byBpdDpcbiAgICAgICAgY3VycmVudC5pbml0aWFsaXplKHByZWZpeC5zdWJzdHJpbmcoMCwgcG9zKSlcbiAgICAgICAgY3VycmVudC5hZGRDaGlsZChub2RlKVxuICAgICAgICBpZiAocG9zIDwgcGF0aC5sZW5ndGgpIHtcbiAgICAgICAgICAvLyBDcmVhdGUgY2hpbGQgbm9kZVxuICAgICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgTm9kZShwYXRoLnN1YnN0cmluZyhwb3MpLCB0eXBlKVxuICAgICAgICAgIGN1cnJlbnQuYWRkQ2hpbGQobm9kZSlcbiAgICAgICAgICBjdXJyZW50ID0gbm9kZSAvLyBTd2l0Y2ggdG8gY2hpbGQgdG8gc2V0IGhhbmRsZXIgYW5kIHBhcmFtTmFtZXNcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChwb3MgPCBwYXRoLmxlbmd0aCkge1xuICAgICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcocG9zKVxuICAgICAgICBjb25zdCBjaGlsZCA9IGN1cnJlbnQuZmluZENoaWxkV2l0aExhYmVsKHBhdGguY2hhckNvZGVBdCgwKSlcbiAgICAgICAgaWYgKGNoaWxkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAvLyBHbyBkZWVwZXJcbiAgICAgICAgICBjdXJyZW50ID0gY2hpbGRcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIC8vIENyZWF0ZSBjaGlsZCBub2RlXG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgTm9kZShwYXRoLCB0eXBlKVxuICAgICAgICBjdXJyZW50LmFkZENoaWxkKG5vZGUpXG4gICAgICAgIGN1cnJlbnQgPSBub2RlIC8vIFN3aXRjaCB0byBjaGlsZCB0byBzZXQgaGFuZGxlciBhbmQgcGFyYW1OYW1lc1xuICAgICAgfVxuICAgICAgaWYgKGhhbmRsZXIpIHtcbiAgICAgICAgY3VycmVudC5oYW5kbGVyID0gaGFuZGxlclxuICAgICAgICBjdXJyZW50LnBhcmFtTmFtZXMgPSBwYXJhbU5hbWVzXG4gICAgICB9XG4gICAgICBpZiAocGFyYW1OYW1lcykge1xuICAgICAgICAvLyBSZW1lbWJlciB0aGUgbGFzdCBlbnRyeSBmcm9tIHRoZSBsaXN0IG9mIHBhcmFtIG5hbWVzIHRoYXQga2VlcHNcbiAgICAgICAgLy8gZ3Jvd2luZyBkdXJpbmcgcGFyc2luZyBhcyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBub2RlLlxuICAgICAgICBjdXJyZW50LnBhcmFtTmFtZSA9IHBhcmFtTmFtZXNbcGFyYW1OYW1lcy5sZW5ndGggLSAxXVxuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICBmaW5kKHBhdGgsIHBhcmFtVmFsdWVzID0gW10pIHtcbiAgICBjb25zdCB7IHByZWZpeCB9ID0gdGhpc1xuICAgIGlmICghcGF0aCB8fCBwYXRoID09PSBwcmVmaXgpIHtcbiAgICAgIC8vIEl0J3MgYSBtYXRjaCFcbiAgICAgIGNvbnN0IHsgaGFuZGxlciB9ID0gdGhpc1xuICAgICAgaWYgKGhhbmRsZXIpIHtcbiAgICAgICAgLy8gQ29udmVydCBwYXJhbU5hbWVzIGFuZCB2YWx1ZXMgdG8gcGFyYW1zXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHt9XG4gICAgICAgIGxldCBpID0gMFxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgdGhpcy5wYXJhbU5hbWVzKSB7XG4gICAgICAgICAgcGFyYW1zW25hbWVdID0gcGFyYW1WYWx1ZXNbaSsrXVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGhhbmRsZXIsIHBhcmFtcyB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGNvbnN0IHBvcyA9IHRoaXMubWF0Y2hQcmVmaXgocGF0aClcbiAgICBjb25zdCBwcmVmaXhMZW5ndGggPSBwcmVmaXgubGVuZ3RoXG4gICAgY29uc3QgZnVsbE1hdGNoID0gcG9zID09PSBwcmVmaXhMZW5ndGhcbiAgICBpZiAoZnVsbE1hdGNoKSB7XG4gICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcocHJlZml4TGVuZ3RoKVxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlICE9PSBUWVBFX1BBUkFNKSB7XG4gICAgICAvLyBJZiB0aGUgcGF0aCBkb2Vzbid0IGZ1bGx5IG1hdGNoIHRoZSBwcmVmaXgsIHdlIG9ubHkgbmVlZCB0byBsb29rXG4gICAgICAvLyBmdXJ0aGVyIG9uIHBhcmFtIG5vZGVzLCB3aGljaCBjYW4gaGF2ZSBvdmVybGFwcGluZyBzdGF0aWMgY2hpbGRyZW4uXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIC8vIFNlYXJjaCBvcmRlcjogU3RhdGljID4gUGFyYW0gPiBNYXRjaC1hbnlcblxuICAgIC8vIFN0YXRpYyBub2RlXG4gICAgY29uc3Qgc3RhdGljQ2hpbGQgPSB0aGlzLmZpbmRDaGlsZChwYXRoLmNoYXJDb2RlQXQoMCksIFRZUEVfU1RBVElDKVxuICAgIGlmIChzdGF0aWNDaGlsZCkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gc3RhdGljQ2hpbGQuZmluZChwYXRoLCBwYXJhbVZhbHVlcylcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5vZGUgbm90IGZvdW5kXG4gICAgaWYgKCFmdWxsTWF0Y2gpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgLy8gUGFyYW0gbm9kZVxuICAgIGNvbnN0IHBhcmFtQ2hpbGQgPSB0aGlzLmZpbmRDaGlsZFdpdGhUeXBlKFRZUEVfUEFSQU0pXG4gICAgaWYgKHBhcmFtQ2hpbGQpIHtcbiAgICAgIC8vIEZpbmQgdGhlIHBvc2l0aW9uIG9mIHRoZSBuZXh0IHNsYXNoOlxuICAgICAgbGV0IHBvcyA9IDBcbiAgICAgIGNvbnN0IG1heCA9IHBhdGgubGVuZ3RoXG4gICAgICB3aGlsZSAocG9zIDwgbWF4ICYmIHBhdGguY2hhckNvZGVBdChwb3MpICE9PSBDSEFSX1NMQVNIKSB7XG4gICAgICAgIHBvcysrXG4gICAgICB9XG4gICAgICBwYXJhbVZhbHVlcy5wdXNoKHBhdGguc3Vic3RyaW5nKDAsIHBvcykpXG4gICAgICBjb25zdCByZXN1bHQgPSBwYXJhbUNoaWxkLmZpbmQocGF0aC5zdWJzdHJpbmcocG9zKSwgcGFyYW1WYWx1ZXMpXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH1cbiAgICAgIHBhcmFtVmFsdWVzLnBvcCgpXG4gICAgfVxuXG4gICAgLy8gTWF0Y2gtYW55IG5vZGVcbiAgICBjb25zdCBtYXRjaEFueUNoaWxkID0gdGhpcy5maW5kQ2hpbGRXaXRoVHlwZShUWVBFX01BVENIX0FOWSlcbiAgICBpZiAobWF0Y2hBbnlDaGlsZCkge1xuICAgICAgcGFyYW1WYWx1ZXMucHVzaChwYXRoKVxuICAgICAgcmV0dXJuIG1hdGNoQW55Q2hpbGQuZmluZCgnJywgcGFyYW1WYWx1ZXMpIC8vICcnID09IEVuZFxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBtYXRjaFByZWZpeChwYXRoKSB7XG4gICAgY29uc3QgeyBwcmVmaXggfSA9IHRoaXNcbiAgICBjb25zdCBwcmVmaXhMZW5ndGggPSBwcmVmaXgubGVuZ3RoXG4gICAgY29uc3QgcGF0aExlbmd0aCA9IHBhdGgubGVuZ3RoXG4gICAgY29uc3QgbWF4ID0gcGF0aExlbmd0aCA8IHByZWZpeExlbmd0aCA/IHBhdGhMZW5ndGggOiBwcmVmaXhMZW5ndGhcbiAgICBsZXQgcG9zID0gMFxuICAgIHdoaWxlIChwb3MgPCBtYXggJiYgcGF0aC5jaGFyQ29kZUF0KHBvcykgPT09IHByZWZpeC5jaGFyQ29kZUF0KHBvcykpIHtcbiAgICAgIHBvcysrXG4gICAgfVxuICAgIHJldHVybiBwb3NcbiAgfVxuXG4gIHRvU3RyaW5nKHByZWZpeCA9ICcnLCB0YWlsID0gdHJ1ZSwgcm9vdCA9IHRydWUpIHtcbiAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5oYW5kbGVyICYmIGAke3RoaXMuaGFuZGxlci5uYW1lIHx8ICfGkid9KClgXG4gICAgY29uc3QgZm9ybWF0ID0gKHByZWZpeCwgdGFpbCwgb24sIG9mZikgPT5cbiAgICAgIHJvb3QgPyAnJyA6IGAke3ByZWZpeH0ke3RhaWwgPyBvbiA6IG9mZn1gXG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gdGhpc1xuICAgIGNvbnN0IGxpbmVzID0gW1xuICAgICAgYCR7Zm9ybWF0KHByZWZpeCwgdGFpbCwgJ+KUlOKUgOKUgCAnLCAn4pSc4pSA4pSAICcpfSR7XG4gICAgICAgIHRoaXMudHlwZSA9PT0gVFlQRV9QQVJBTVxuICAgICAgICAgID8gYCR7dGhpcy5wcmVmaXh9JHt0aGlzLnBhcmFtTmFtZX1gXG4gICAgICAgICAgOiB0aGlzLnByZWZpeFxuICAgICAgfSR7XG4gICAgICAgIGhhbmRsZXIgPyBgICR7aGFuZGxlcn1gIDogJydcbiAgICAgIH0gY2hpbGRyZW49JHtcbiAgICAgICAgY2hpbGRyZW4ubGVuZ3RoXG4gICAgICB9YFxuICAgIF1cblxuICAgIGNvbnN0IHN0ciA9IGZvcm1hdChwcmVmaXgsIHRhaWwsICcgICAgJywgJ+KUgiAgICcpXG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBjaGlsZHJlbi5sZW5ndGggLSAxOyBpIDw9IGw7IGkrKykge1xuICAgICAgbGluZXMucHVzaChjaGlsZHJlbltpXS50b1N0cmluZyhzdHIsIGkgPT09IGwsIGZhbHNlKSlcbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpXG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Ob2RlLmpzIl0sIm5hbWVzIjpbIlRZUEVfU1RBVElDIiwiVFlQRV9QQVJBTSIsIlRZUEVfTUFUQ0hfQU5ZIiwiQ0hBUl9QQVJBTSIsImNoYXJDb2RlQXQiLCJDSEFSX01BVENIX0FOWSIsIkNIQVJfU0xBU0giLCJOb2RlIiwiY29uc3RydWN0b3IiLCJhcmdzIiwiaW5pdGlhbGl6ZSIsInByZWZpeCIsInR5cGUiLCJjaGlsZHJlbiIsImhhbmRsZXIiLCJwYXJhbU5hbWVzIiwibGFiZWwiLCJwYXJhbU5hbWUiLCJhZGRDaGlsZCIsImNoaWxkIiwicHVzaCIsImZpbmRDaGlsZCIsImZpbmRDaGlsZFdpdGhMYWJlbCIsImZpbmRDaGlsZFdpdGhUeXBlIiwiYWRkIiwicGF0aCIsInBvcyIsImxlbmd0aCIsImNoIiwiaW5zZXJ0Iiwic3Vic3RyaW5nIiwic3RhcnQiLCJtYXRjaCIsImN1cnJlbnQiLCJub2RlIiwidW5kZWZpbmVkIiwiZmluZCIsInBhcmFtVmFsdWVzIiwicGFyYW1zIiwiaSIsIm5hbWUiLCJwcmVmaXhMZW5ndGgiLCJmdWxsTWF0Y2giLCJzdGF0aWNDaGlsZCIsInJlc3VsdCIsInBhcmFtQ2hpbGQiLCJtYXgiLCJwb3AiLCJtYXRjaEFueUNoaWxkIiwidG9TdHJpbmciLCJ0YWlsIiwicm9vdCIsImZvcm1hdCIsIm9uIiwib2ZmIiwibGluZXMiLCJzdHIiLCJsIiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUdBLE1BQU1BLFdBQVcsR0FBRyxDQUFwQjtBQUNBLE1BQU1DLFVBQVUsR0FBRyxDQUFuQjtBQUNBLE1BQU1DLGNBQWMsR0FBRyxDQUF2QjtBQUdBLE1BQU1DLFVBQVUsR0FBRyxJQUFJQyxVQUFKLENBQWUsQ0FBZixDQUFuQjtBQUNBLE1BQU1DLGNBQWMsR0FBRyxJQUFJRCxVQUFKLENBQWUsQ0FBZixDQUF2QjtBQUNBLE1BQU1FLFVBQVUsR0FBRyxJQUFJRixVQUFKLENBQWUsQ0FBZixDQUFuQjs7QUFFZSxN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QUNjLE1BQVQsR0FBa0IsQ0FBdEMsRUFBeUNZLENBQUMsSUFBSWtCLENBQTlDLEVBQWlEbEIsQ0FBQyxFQUFsRCxFQUFzRDtBQUNwRGdCLE1BQUFBLEtBQUssQ0FBQ25DLElBQU4sQ0FBV1AsUUFBUSxDQUFDMEIsQ0FBRCxDQUFSLENBQVlVLFFBQVosQ0FBcUJPLEdBQXJCLEVBQTBCakIsQ0FBQyxLQUFLa0IsQ0FBaEMsRUFBbUMsS0FBbkMsQ0FBWDtBQUNEOztBQUNELFdBQU9GLEtBQUssQ0FBQ0csSUFBTixDQUFXLElBQVgsQ0FBUDtBQUNEOztBQTlOdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRDb21tb25PZmZzZXQgfSBmcm9tICdAZGl0b2pzL3V0aWxzJ1xuXG4vLyBOb2RlIFR5cGVzOlxuY29uc3QgVFlQRV9TVEFUSUMgPSAwXG5jb25zdCBUWVBFX1BBUkFNID0gMVxuY29uc3QgVFlQRV9NQVRDSF9BTlkgPSAyXG5cbi8vIENoYXIgQ29kZXNcbmNvbnN0IENIQVJfUEFSQU0gPSAnOicuY2hhckNvZGVBdCgwKVxuY29uc3QgQ0hBUl9NQVRDSF9BTlkgPSAnKicuY2hhckNvZGVBdCgwKVxuY29uc3QgQ0hBUl9TTEFTSCA9ICcvJy5jaGFyQ29kZUF0KDApXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vZGUge1xuICBjb25zdHJ1Y3RvciguLi5hcmdzKSB7XG4gICAgdGhpcy5pbml0aWFsaXplKC4uLmFyZ3MpXG4gIH1cblxuICBpbml0aWFsaXplKFxuICAgIHByZWZpeCA9ICcvJyxcbiAgICB0eXBlID0gVFlQRV9TVEFUSUMsXG4gICAgY2hpbGRyZW4gPSBbXSxcbiAgICBoYW5kbGVyID0gbnVsbCxcbiAgICBwYXJhbU5hbWVzID0gbnVsbFxuICApIHtcbiAgICB0aGlzLmxhYmVsID0gcHJlZml4LmNoYXJDb2RlQXQoMClcbiAgICB0aGlzLnByZWZpeCA9IHByZWZpeFxuICAgIHRoaXMudHlwZSA9IHR5cGVcbiAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW5cbiAgICB0aGlzLmhhbmRsZXIgPSBoYW5kbGVyXG4gICAgdGhpcy5wYXJhbU5hbWVzID0gcGFyYW1OYW1lc1xuICAgIHRoaXMucGFyYW1OYW1lID0gbnVsbFxuICB9XG5cbiAgYWRkQ2hpbGQoY2hpbGQpIHtcbiAgICB0aGlzLmNoaWxkcmVuLnB1c2goY2hpbGQpXG4gIH1cblxuICBmaW5kQ2hpbGQobGFiZWwsIHR5cGUpIHtcbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgIGlmIChjaGlsZC5sYWJlbCA9PT0gbGFiZWwgJiYgY2hpbGQudHlwZSA9PT0gdHlwZSkge1xuICAgICAgICByZXR1cm4gY2hpbGRcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmaW5kQ2hpbGRXaXRoTGFiZWwobGFiZWwpIHtcbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgIGlmIChjaGlsZC5sYWJlbCA9PT0gbGFiZWwpIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZmluZENoaWxkV2l0aFR5cGUodHlwZSkge1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgaWYgKGNoaWxkLnR5cGUgPT09IHR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYWRkKHBhdGgsIGhhbmRsZXIpIHtcbiAgICBjb25zdCBwYXJhbU5hbWVzID0gW11cbiAgICBmb3IgKGxldCBwb3MgPSAwLCBsZW5ndGggPSBwYXRoLmxlbmd0aDsgcG9zIDwgbGVuZ3RoOyBwb3MrKykge1xuICAgICAgY29uc3QgY2ggPSBwYXRoLmNoYXJDb2RlQXQocG9zKVxuICAgICAgaWYgKGNoID09PSBDSEFSX1BBUkFNKSB7XG4gICAgICAgIHRoaXMuaW5zZXJ0KHBhdGguc3Vic3RyaW5nKDAsIHBvcyksIFRZUEVfU1RBVElDKVxuICAgICAgICBwb3MrKyAvLyBTa2lwIGNvbG9uLlxuICAgICAgICBjb25zdCBzdGFydCA9IHBvc1xuICAgICAgICAvLyBNb3ZlIHBvcyB0byB0aGUgbmV4dCBvY2N1cnJlbmNlIG9mIHRoZSBzbGFzaCBvciB0aGUgZW5kOlxuICAgICAgICBwb3MgKz0gcGF0aC5zdWJzdHJpbmcocG9zKS5tYXRjaCgvXihbXi9dKikvKVsxXS5sZW5ndGhcblxuICAgICAgICBwYXJhbU5hbWVzLnB1c2gocGF0aC5zdWJzdHJpbmcoc3RhcnQsIHBvcykpXG4gICAgICAgIC8vIENob3Agb3V0IHBhcmFtIG5hbWUgZnJvbSBwYXRoLCBidXQga2VlcCBjb2xvbi5cbiAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDAsIHN0YXJ0KSArIHBhdGguc3Vic3RyaW5nKHBvcylcbiAgICAgICAgbGVuZ3RoID0gcGF0aC5sZW5ndGggLy8gVXBkYXRlIGxlbmd0aCBhZnRlciBjaGFuZ2luZyBwYXRoLlxuXG4gICAgICAgIGlmIChzdGFydCA9PT0gbGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5zZXJ0KHBhdGgsIFRZUEVfUEFSQU0sIHBhcmFtTmFtZXMsIGhhbmRsZXIpXG4gICAgICAgIH1cbiAgICAgICAgcG9zID0gc3RhcnRcbiAgICAgICAgdGhpcy5pbnNlcnQocGF0aC5zdWJzdHJpbmcoMCwgcG9zKSwgVFlQRV9QQVJBTSwgcGFyYW1OYW1lcylcbiAgICAgIH0gZWxzZSBpZiAoY2ggPT09IENIQVJfTUFUQ0hfQU5ZKSB7XG4gICAgICAgIHRoaXMuaW5zZXJ0KHBhdGguc3Vic3RyaW5nKDAsIHBvcyksIFRZUEVfU1RBVElDKVxuICAgICAgICBwYXJhbU5hbWVzLnB1c2goJyonKVxuICAgICAgICByZXR1cm4gdGhpcy5pbnNlcnQocGF0aCwgVFlQRV9NQVRDSF9BTlksIHBhcmFtTmFtZXMsIGhhbmRsZXIpXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuaW5zZXJ0KHBhdGgsIFRZUEVfU1RBVElDLCBwYXJhbU5hbWVzLCBoYW5kbGVyKVxuICB9XG5cbiAgaW5zZXJ0KHBhdGgsIHR5cGUsIHBhcmFtTmFtZXMsIGhhbmRsZXIpIHtcbiAgICBsZXQgY3VycmVudCA9IHRoaXNcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgLy8gRmluZCB0aGUgcG9zaXRpb24gd2hlcmUgdGhlIHBhdGggYW5kIHRoZSBub2RlJ3MgcHJlZml4IHN0YXJ0IGRpdmVyZ2luZy5cbiAgICAgIGNvbnN0IHBvcyA9IGdldENvbW1vbk9mZnNldChjdXJyZW50LnByZWZpeCwgcGF0aClcbiAgICAgIGNvbnN0IHsgcHJlZml4IH0gPSBjdXJyZW50XG4gICAgICBpZiAocG9zIDwgcHJlZml4Lmxlbmd0aCkge1xuICAgICAgICAvLyBTcGxpdCBub2RlXG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgTm9kZShcbiAgICAgICAgICBwcmVmaXguc3Vic3RyaW5nKHBvcyksXG4gICAgICAgICAgY3VycmVudC50eXBlLFxuICAgICAgICAgIGN1cnJlbnQuY2hpbGRyZW4sXG4gICAgICAgICAgY3VycmVudC5oYW5kbGVyLFxuICAgICAgICAgIGN1cnJlbnQucGFyYW1OYW1lc1xuICAgICAgICApXG4gICAgICAgIC8vIFJlc2V0IHBhcmVudCBub2RlIGFuZCBhZGQgbmV3IG5vZGUgYXMgY2hpbGQgdG8gaXQ6XG4gICAgICAgIGN1cnJlbnQuaW5pdGlhbGl6ZShwcmVmaXguc3Vic3RyaW5nKDAsIHBvcykpXG4gICAgICAgIGN1cnJlbnQuYWRkQ2hpbGQobm9kZSlcbiAgICAgICAgaWYgKHBvcyA8IHBhdGgubGVuZ3RoKSB7XG4gICAgICAgICAgLy8gQ3JlYXRlIGNoaWxkIG5vZGVcbiAgICAgICAgICBjb25zdCBub2RlID0gbmV3IE5vZGUocGF0aC5zdWJzdHJpbmcocG9zKSwgdHlwZSlcbiAgICAgICAgICBjdXJyZW50LmFkZENoaWxkKG5vZGUpXG4gICAgICAgICAgY3VycmVudCA9IG5vZGUgLy8gU3dpdGNoIHRvIGNoaWxkIHRvIHNldCBoYW5kbGVyIGFuZCBwYXJhbU5hbWVzXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocG9zIDwgcGF0aC5sZW5ndGgpIHtcbiAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKHBvcylcbiAgICAgICAgY29uc3QgY2hpbGQgPSBjdXJyZW50LmZpbmRDaGlsZFdpdGhMYWJlbChwYXRoLmNoYXJDb2RlQXQoMCkpXG4gICAgICAgIGlmIChjaGlsZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gR28gZGVlcGVyXG4gICAgICAgICAgY3VycmVudCA9IGNoaWxkXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICAvLyBDcmVhdGUgY2hpbGQgbm9kZVxuICAgICAgICBjb25zdCBub2RlID0gbmV3IE5vZGUocGF0aCwgdHlwZSlcbiAgICAgICAgY3VycmVudC5hZGRDaGlsZChub2RlKVxuICAgICAgICBjdXJyZW50ID0gbm9kZSAvLyBTd2l0Y2ggdG8gY2hpbGQgdG8gc2V0IGhhbmRsZXIgYW5kIHBhcmFtTmFtZXNcbiAgICAgIH1cbiAgICAgIGlmIChoYW5kbGVyKSB7XG4gICAgICAgIGN1cnJlbnQuaGFuZGxlciA9IGhhbmRsZXJcbiAgICAgICAgY3VycmVudC5wYXJhbU5hbWVzID0gcGFyYW1OYW1lc1xuICAgICAgfVxuICAgICAgaWYgKHBhcmFtTmFtZXMpIHtcbiAgICAgICAgLy8gUmVtZW1iZXIgdGhlIGxhc3QgZW50cnkgZnJvbSB0aGUgbGlzdCBvZiBwYXJhbSBuYW1lcyB0aGF0IGtlZXBzXG4gICAgICAgIC8vIGdyb3dpbmcgZHVyaW5nIHBhcnNpbmcgYXMgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgbm9kZS5cbiAgICAgICAgY3VycmVudC5wYXJhbU5hbWUgPSBwYXJhbU5hbWVzW3BhcmFtTmFtZXMubGVuZ3RoIC0gMV1cbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgZmluZChwYXRoLCBwYXJhbVZhbHVlcyA9IFtdKSB7XG4gICAgY29uc3QgeyBwcmVmaXggfSA9IHRoaXNcbiAgICBpZiAoIXBhdGggfHwgcGF0aCA9PT0gcHJlZml4KSB7XG4gICAgICAvLyBJdCdzIGEgbWF0Y2ghXG4gICAgICBjb25zdCB7IGhhbmRsZXIgfSA9IHRoaXNcbiAgICAgIGlmIChoYW5kbGVyKSB7XG4gICAgICAgIC8vIENvbnZlcnQgcGFyYW1OYW1lcyBhbmQgdmFsdWVzIHRvIHBhcmFtc1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7fVxuICAgICAgICBsZXQgaSA9IDBcbiAgICAgICAgZm9yIChjb25zdCBuYW1lIG9mIHRoaXMucGFyYW1OYW1lcykge1xuICAgICAgICAgIHBhcmFtc1tuYW1lXSA9IHBhcmFtVmFsdWVzW2krK11cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBoYW5kbGVyLCBwYXJhbXMgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCBwb3MgPSBnZXRDb21tb25PZmZzZXQodGhpcy5wcmVmaXgsIHBhdGgpXG4gICAgY29uc3QgcHJlZml4TGVuZ3RoID0gcHJlZml4Lmxlbmd0aFxuICAgIGNvbnN0IGZ1bGxNYXRjaCA9IHBvcyA9PT0gcHJlZml4TGVuZ3RoXG4gICAgaWYgKGZ1bGxNYXRjaCkge1xuICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKHByZWZpeExlbmd0aClcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSAhPT0gVFlQRV9QQVJBTSkge1xuICAgICAgLy8gSWYgdGhlIHBhdGggZG9lc24ndCBmdWxseSBtYXRjaCB0aGUgcHJlZml4LCB3ZSBvbmx5IG5lZWQgdG8gbG9va1xuICAgICAgLy8gZnVydGhlciBvbiBwYXJhbSBub2Rlcywgd2hpY2ggY2FuIGhhdmUgb3ZlcmxhcHBpbmcgc3RhdGljIGNoaWxkcmVuLlxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICAvLyBTZWFyY2ggb3JkZXI6IFN0YXRpYyA+IFBhcmFtID4gTWF0Y2gtYW55XG5cbiAgICAvLyBTdGF0aWMgbm9kZVxuICAgIGNvbnN0IHN0YXRpY0NoaWxkID0gdGhpcy5maW5kQ2hpbGQocGF0aC5jaGFyQ29kZUF0KDApLCBUWVBFX1NUQVRJQylcbiAgICBpZiAoc3RhdGljQ2hpbGQpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHN0YXRpY0NoaWxkLmZpbmQocGF0aCwgcGFyYW1WYWx1ZXMpXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOb2RlIG5vdCBmb3VuZFxuICAgIGlmICghZnVsbE1hdGNoKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIC8vIFBhcmFtIG5vZGVcbiAgICBjb25zdCBwYXJhbUNoaWxkID0gdGhpcy5maW5kQ2hpbGRXaXRoVHlwZShUWVBFX1BBUkFNKVxuICAgIGlmIChwYXJhbUNoaWxkKSB7XG4gICAgICAvLyBGaW5kIHRoZSBwb3NpdGlvbiBvZiB0aGUgbmV4dCBzbGFzaDpcbiAgICAgIGxldCBwb3MgPSAwXG4gICAgICBjb25zdCBtYXggPSBwYXRoLmxlbmd0aFxuICAgICAgd2hpbGUgKHBvcyA8IG1heCAmJiBwYXRoLmNoYXJDb2RlQXQocG9zKSAhPT0gQ0hBUl9TTEFTSCkge1xuICAgICAgICBwb3MrK1xuICAgICAgfVxuICAgICAgcGFyYW1WYWx1ZXMucHVzaChwYXRoLnN1YnN0cmluZygwLCBwb3MpKVxuICAgICAgY29uc3QgcmVzdWx0ID0gcGFyYW1DaGlsZC5maW5kKHBhdGguc3Vic3RyaW5nKHBvcyksIHBhcmFtVmFsdWVzKVxuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICB9XG4gICAgICBwYXJhbVZhbHVlcy5wb3AoKVxuICAgIH1cblxuICAgIC8vIE1hdGNoLWFueSBub2RlXG4gICAgY29uc3QgbWF0Y2hBbnlDaGlsZCA9IHRoaXMuZmluZENoaWxkV2l0aFR5cGUoVFlQRV9NQVRDSF9BTlkpXG4gICAgaWYgKG1hdGNoQW55Q2hpbGQpIHtcbiAgICAgIHBhcmFtVmFsdWVzLnB1c2gocGF0aClcbiAgICAgIHJldHVybiBtYXRjaEFueUNoaWxkLmZpbmQoJycsIHBhcmFtVmFsdWVzKSAvLyAnJyA9PSBFbmRcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgdG9TdHJpbmcocHJlZml4ID0gJycsIHRhaWwgPSB0cnVlLCByb290ID0gdHJ1ZSkge1xuICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmhhbmRsZXIgJiYgYCR7dGhpcy5oYW5kbGVyLm5hbWUgfHwgJ8aSJ30oKWBcbiAgICBjb25zdCBmb3JtYXQgPSAocHJlZml4LCB0YWlsLCBvbiwgb2ZmKSA9PlxuICAgICAgcm9vdCA/ICcnIDogYCR7cHJlZml4fSR7dGFpbCA/IG9uIDogb2ZmfWBcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSB0aGlzXG4gICAgY29uc3QgbGluZXMgPSBbXG4gICAgICBgJHtmb3JtYXQocHJlZml4LCB0YWlsLCAn4pSU4pSA4pSAICcsICfilJzilIDilIAgJyl9JHtcbiAgICAgICAgdGhpcy50eXBlID09PSBUWVBFX1BBUkFNXG4gICAgICAgICAgPyBgJHt0aGlzLnByZWZpeH0ke3RoaXMucGFyYW1OYW1lfWBcbiAgICAgICAgICA6IHRoaXMucHJlZml4XG4gICAgICB9JHtcbiAgICAgICAgaGFuZGxlciA/IGAgJHtoYW5kbGVyfWAgOiAnJ1xuICAgICAgfSBjaGlsZHJlbj0ke1xuICAgICAgICBjaGlsZHJlbi5sZW5ndGhcbiAgICAgIH1gXG4gICAgXVxuXG4gICAgY29uc3Qgc3RyID0gZm9ybWF0KHByZWZpeCwgdGFpbCwgJyAgICAnLCAn4pSCICAgJylcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IGNoaWxkcmVuLmxlbmd0aCAtIDE7IGkgPD0gbDsgaSsrKSB7XG4gICAgICBsaW5lcy5wdXNoKGNoaWxkcmVuW2ldLnRvU3RyaW5nKHN0ciwgaSA9PT0gbCwgZmFsc2UpKVxuICAgIH1cbiAgICByZXR1cm4gbGluZXMuam9pbignXFxuJylcbiAgfVxufVxuIl19
{
"name": "@ditojs/router",
"version": "0.79.0",
"version": "0.80.0",
"description": "Dito.js Router – Dito.js is a declarative and modern web framework, based on Objection.js, Koa.js and Vue.js",

@@ -29,3 +29,3 @@ "main": "lib/index.js",

"devDependencies": {
"@ditojs/utils": "^0.79.0"
"@ditojs/utils": "^0.80.0"
},

@@ -39,3 +39,3 @@ "keywords": [

],
"gitHead": "3f28caaa0aa6244f1eb3f7961c903023082c77d2"
"gitHead": "6f224c13d4ec72a7ffac453bcbe76ff6cd7cb0f5"
}

@@ -0,1 +1,3 @@

import { getCommonOffset } from '@ditojs/utils'
// Node Types:

@@ -94,3 +96,3 @@ const TYPE_STATIC = 0

// Find the position where the path and the node's prefix start diverging.
const pos = current.matchPrefix(path)
const pos = getCommonOffset(current.prefix, path)
const { prefix } = current

@@ -158,3 +160,3 @@ if (pos < prefix.length) {

const pos = this.matchPrefix(path)
const pos = getCommonOffset(this.prefix, path)
const prefixLength = prefix.length

@@ -213,14 +215,2 @@ const fullMatch = pos === prefixLength

matchPrefix(path) {
const { prefix } = this
const prefixLength = prefix.length
const pathLength = path.length
const max = pathLength < prefixLength ? pathLength : prefixLength
let pos = 0
while (pos < max && path.charCodeAt(pos) === prefix.charCodeAt(pos)) {
pos++
}
return pos
}
toString(prefix = '', tail = true, root = true) {

@@ -227,0 +217,0 @@ const handler = this.handler && `${this.handler.name || 'ƒ'}()`

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