partial.lenses
Advanced tools
Comparing version 3.8.2 to 3.9.0
@@ -6,3 +6,3 @@ "use strict"; | ||
}); | ||
exports.toRamda = exports.fromRamda = exports.optional = exports.sequence = exports.log = exports.props = exports.identity = exports.pick = exports.augment = exports.filter = exports.append = exports.index = exports.findWith = exports.find = exports.prop = exports.normalize = exports.valueOr = exports.define = exports.required = exports.defaults = exports.replace = exports.choice = exports.orElse = exports.nothing = exports.choose = exports.just = exports.chain = exports.collect = exports.get = exports.set = exports.modify = exports.lens = exports.removeAll = exports.remove = exports.compose = undefined; | ||
exports.fromArrayBy = exports.toRamda = exports.fromRamda = exports.optional = exports.sequence = exports.log = exports.props = exports.identity = exports.pick = exports.augment = exports.filter = exports.append = exports.index = exports.findWith = exports.find = exports.prop = exports.normalize = exports.valueOr = exports.define = exports.required = exports.defaults = exports.replace = exports.choice = exports.orElse = exports.nothing = exports.choose = exports.just = exports.chain = exports.collect = exports.get = exports.set = exports.modify = exports.lens = exports.removeAll = exports.remove = exports.compose = undefined; | ||
@@ -234,2 +234,5 @@ var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); | ||
}; | ||
var isoI = function isoI(to, from) { | ||
return lensI(to, toConserve(from)); | ||
}; | ||
var collectI = function collectI(l, s) { | ||
@@ -300,7 +303,7 @@ return l(Const)(Single)(s).value; | ||
var normalizer = function normalizer(fn) { | ||
return lensI(fn, toConserve(fn)); | ||
return isoI(fn, fn); | ||
}; | ||
var replace = exports.replace = R.curry(function (inn, out) { | ||
return lensI(replacer(inn, out), toConserve(replacer(out, inn))); | ||
return isoI(replacer(inn, out), replacer(out, inn)); | ||
}); | ||
@@ -509,3 +512,18 @@ | ||
var fromArrayBy = exports.fromArrayBy = function fromArrayBy(id) { | ||
return warn("`fromArrayBy` is experimental and might be removed, renamed or changed semantically before next major release") || isoI(function (xs) { | ||
if (isArray(xs)) { | ||
var o = {}; | ||
for (var i = 0, n = xs.length; i < n; ++i) { | ||
var x = xs[i]; | ||
o[x[id]] = x; | ||
} | ||
return o; | ||
} | ||
}, function (o) { | ||
return unObject(o) && R.values(o); | ||
}); | ||
}; | ||
exports.default = compose; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJ0aWFsLmxlbnNlcy5qcyJdLCJuYW1lcyI6WyJSIiwiSWRlbnRpdHkiLCJ2YWx1ZSIsIklkZW50IiwieCIsInByb3RvdHlwZSIsIm1hcCIsIngyeSIsIm9mIiwiYXAiLCJDb25zdGFudCIsIkNvbnN0IiwiU2luZ2xlIiwiY29uY2F0Iiwid2FybiIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIndhcm5lZCIsIm1lc3NhZ2UiLCJjb25zb2xlIiwiaXNBcnJheSIsImNvbnN0cnVjdG9yIiwiQXJyYXkiLCJpc09iamVjdCIsIk9iamVjdCIsInVuQXJyYXkiLCJ1bmRlZmluZWQiLCJ1bk9iamVjdCIsIm1rQXJyYXkiLCJpZCIsInNuZCIsIl8iLCJjIiwiY2hlY2siLCJleHBlY3RlZCIsInByZWRpY2F0ZSIsIkVycm9yIiwiYXNzZXJ0IiwiZW1wdHkiLCJkZWxldGVLZXkiLCJrIiwibyIsInIiLCJwIiwic2V0S2V5IiwidiIsImVxdWFscyIsImRyb3BwZWQiLCJrZXlzIiwieHMiLCJsZW5ndGgiLCJ0b1BhcnRpYWwiLCJ0cmFuc2Zvcm0iLCJmaWx0ZXJlZCIsInBpcGUiLCJmaWx0ZXIiLCJjb25zZXJ2ZSIsImMxIiwiYzAiLCJ0b0NvbnNlcnZlIiwieSIsImYiLCJzZWVtc0xlbnMiLCJsaWZ0ZWQiLCJsaWZ0IiwiaXNQcm9wIiwibCIsImxpZnRQcm9wIiwiaXNJbmRleCIsImxpZnRJbmRleCIsImNvbXBvc2UiLCJscyIsImlkZW50aXR5IiwidG9DYXQiLCJyZW1vdmUiLCJjdXJyeSIsInMiLCJzZXRJIiwicmVtb3ZlQWxsIiwibGVucyIsImRhdGEiLCJnZXQiLCJnZXRJIiwibW9kaWZ5SSIsIngyeCIsImxlbnNJIiwiZ2V0dGVyIiwic2V0dGVyIiwiaW5uZXIiLCJ0YXJnZXQiLCJmb2N1cyIsImNvbGxlY3RJIiwibW9kaWZ5Iiwic2V0IiwiY29sbGVjdCIsImNoYWluIiwieDJ5TCIsInhMIiwiY2hvb3NlIiwieE8iLCJub3RoaW5nIiwianVzdCIsImFsd2F5cyIsIm9yRWxzZSIsImQiLCJjaG9pY2UiLCJpIiwiZmluZEluZGV4IiwicmVwbGFjZXIiLCJpbm4iLCJvdXQiLCJub3JtYWxpemVyIiwiZm4iLCJyZXBsYWNlIiwiZGVmYXVsdHMiLCJyZXF1aXJlZCIsImRlZmluZSIsInZhbHVlT3IiLCJub3JtYWxpemUiLCJwcm9wIiwib0luIiwiZmluZCIsImFwcGVuZCIsImZpbmRXaXRoIiwibGxzIiwiTnVtYmVyIiwiaXNJbnRlZ2VyIiwiaW5kZXgiLCJzbGljZSIsInlzIiwiY29tcGxlbWVudCIsImF1Z21lbnQiLCJ6IiwidGVtcGxhdGUiLCJjSW4iLCJwaWNrIiwicHJvcHMiLCJrcyIsInppcE9iaiIsInNob3ciLCJsYWJlbHMiLCJsb2ciLCJzZXF1ZW5jZSIsInRyYXZlcnNlIiwib3B0aW9uYWwiLCJmcm9tUmFtZGEiLCJmYW50YXN5IiwidG9SYW1kYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztJQUFZQSxDOzs7Ozs7OztBQUVaOztBQUVBLFNBQVNDLFFBQVQsQ0FBa0JDLEtBQWxCLEVBQXlCO0FBQUMsT0FBS0EsS0FBTCxHQUFhQSxLQUFiO0FBQW1CO0FBQzdDLElBQU1DLFFBQVEsU0FBUkEsS0FBUTtBQUFBLFNBQUssSUFBSUYsUUFBSixDQUFhRyxDQUFiLENBQUw7QUFBQSxDQUFkO0FBQ0FILFNBQVNJLFNBQVQsQ0FBbUJDLEdBQW5CLEdBQXlCLFVBQVVDLEdBQVYsRUFBZTtBQUFDLFNBQU8sSUFBSU4sUUFBSixDQUFhTSxJQUFJLEtBQUtMLEtBQVQsQ0FBYixDQUFQO0FBQXFDLENBQTlFO0FBQ0FELFNBQVNJLFNBQVQsQ0FBbUJHLEVBQW5CLEdBQXdCTCxLQUF4QjtBQUNBRixTQUFTSSxTQUFULENBQW1CSSxFQUFuQixHQUF3QixVQUFVTCxDQUFWLEVBQWE7QUFBQyxTQUFPLElBQUlILFFBQUosQ0FBYSxLQUFLQyxLQUFMLENBQVdFLEVBQUVGLEtBQWIsQ0FBYixDQUFQO0FBQXlDLENBQS9FOztBQUVBOztBQUVBLFNB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QUssNEdBQUwsS0FDQWQsRUFBRWdKLFFBQUYsQ0FBVzFILFdBQVgsRUFBd0JtRSxLQUF4QixFQUErQjVELFFBQVE2RCxNQUFSLENBQS9CLEVBQ0NwRixHQURELENBQ0tnRCxRQURMLENBRjhDO0FBQUEsS0FBVDtBQUFBLEdBQWY7QUFBQSxDQUFqQjs7QUFLQSxJQUFNMkYsOEJBQ1gxRSxRQUFRZSxNQUFNbEMsVUFBVTtBQUFBLFNBQUssQ0FBQ2hELENBQUQsQ0FBTDtBQUFBLENBQVYsQ0FBTixFQUNNZ0QsVUFBVTtBQUFBOztBQUFBLE1BQUVoRCxDQUFGO0FBQUEsU0FBU0EsQ0FBVDtBQUFBLENBQVYsQ0FETixDQUFSLEVBRVEySSxRQUZSLENBREs7O0FBS0EsSUFBTUcsZ0NBQVksU0FBWkEsU0FBWTtBQUFBLFNBQUs7QUFBQSxXQUFnQi9FLENBQWhCO0FBQUEsR0FBTDtBQUFBLENBQWxCO0FBQ1AsSUFBTWdGLFVBQVUsU0FBVkEsT0FBVSxHQUFNO0FBQUMsUUFBTSxJQUFJOUcsS0FBSixDQUFVLG1DQUFWLENBQU47QUFBcUQsQ0FBNUU7QUFDTyxJQUFNK0csNEJBQVUsU0FBVkEsT0FBVTtBQUFBLFNBQUtuRixLQUFLRSxDQUFMLEVBQVFnRixPQUFSLENBQUw7QUFBQSxDQUFoQjs7a0JBRVE1RSxPIiwiZmlsZSI6InBhcnRpYWwubGVuc2VzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUiBmcm9tIFwicmFtZGFcIlxuXG4vL1xuXG5mdW5jdGlvbiBJZGVudGl0eSh2YWx1ZSkge3RoaXMudmFsdWUgPSB2YWx1ZX1cbmNvbnN0IElkZW50ID0geCA9PiBuZXcgSWRlbnRpdHkoeClcbklkZW50aXR5LnByb3RvdHlwZS5tYXAgPSBmdW5jdGlvbiAoeDJ5KSB7cmV0dXJuIG5ldyBJZGVudGl0eSh4MnkodGhpcy52YWx1ZSkpfVxuSWRlbnRpdHkucHJvdG90eXBlLm9mID0gSWRlbnRcbklkZW50aXR5LnByb3RvdHlwZS5hcCA9IGZ1bmN0aW9uICh4KSB7cmV0dXJuIG5ldyBJZGVudGl0eSh0aGlzLnZhbHVlKHgudmFsdWUpKX1cblxuLy9cblxuZnVuY3Rpb24gQ29uc3RhbnQodmFsdWUpIHt0aGlzLnZhbHVlID0gdmFsdWV9XG5jb25zdCBDb25zdCA9IHggPT4gbmV3IENvbnN0YW50KHgpXG5jb25zdCBTaW5nbGUgPSB4ID0+IENvbnN0KFt4XSlcbkNvbnN0YW50LnByb3RvdHlwZS5tYXAgPSBmdW5jdGlvbiAoKSB7cmV0dXJuIHRoaXN9XG5Db25zdGFudC5wcm90b3R5cGUub2YgPSBDb25zdFxuQ29uc3RhbnQucHJvdG90eXBlLmFwID0gZnVuY3Rpb24gKHgpIHtyZXR1cm4gbmV3IENvbnN0KFIuY29uY2F0KHRoaXMudmFsdWUsIHgudmFsdWUpKX1cblxuLy9cblxuY29uc3Qgd2FybiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/ICgpID0+IHt9IDogKCgpID0+IHtcbiAgY29uc3Qgd2FybmVkID0ge31cblxuICByZXR1cm4gbWVzc2FnZSA9PiB7XG4gICAgaWYgKCEobWVzc2FnZSBpbiB3YXJuZWQpKSB7XG4gICAgICB3YXJuZWRbbWVzc2FnZV0gPSBtZXNzYWdlXG4gICAgICBjb25zb2xlLndhcm4oXCJwYXJ0aWFsLmxlbnNlczpcIiwgbWVzc2FnZSlcbiAgICB9XG4gIH1cbn0pKClcblxuLy9cblxuY29uc3QgaXNBcnJheSAgPSB4ID0+IHggJiYgeC5jb25zdHJ1Y3RvciA9PT0gQXJyYXlcbmNvbnN0IGlzT2JqZWN0ID0geCA9PiB4ICYmIHguY29uc3RydWN0b3IgPT09IE9iamVjdFxuXG5jb25zdCB1bkFycmF5ICA9IHggPT4gIGlzQXJyYXkoeCkgPyB4IDogdW5kZWZpbmVkXG5jb25zdCB1bk9iamVjdCA9IHggPT4gaXNPYmplY3QoeCkgPyB4IDogdW5kZWZpbmVkXG5cbmNvbnN0IG1rQXJyYXkgPSB4ID0+IGlzQXJyYXkoeCkgPyB4IDogW11cblxuLy9cblxuY29uc3QgaWQgPSB4ID0+IHhcbmNvbnN0IHNuZCA9IChfLCBjKSA9PiBjXG5cbi8vXG5cbmNvbnN0IGNoZWNrID0gKGV4cGVjdGVkLCBwcmVkaWNhdGUpID0+IHggPT4ge1xuICBpZiAocHJlZGljYXRlKHgpKVxuICAgIHJldHVybiB4XG4gIGVsc2VcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXhwZWN0ZWR9LCBidXQgZ290ICR7eH0uYClcbn1cblxuY29uc3QgYXNzZXJ0ID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gKCkgPT4gaWQgOiBjaGVja1xuXG4vL1xuXG5jb25zdCBlbXB0eSA9IHt9XG5cbmNvbnN0IGRlbGV0ZUtleSA9IChrLCBvID0ge30pID0+IHtcbiAgbGV0IHJcbiAgZm9yIChjb25zdCBwIGluIG8pIHtcbiAgICBpZiAocCAhPT0gaykge1xuICAgICAgaWYgKHVuZGVmaW5lZCA9PT0gcilcbiAgICAgICAgciA9IHt9XG4gICAgICByW3BdID0gb1twXVxuICAgIH1cbiAgfVxuICByZXR1cm4gclxufVxuXG5jb25zdCBzZXRLZXkgPSAoaywgdiwgbyA9IHt9KSA9PiB7XG4gIGlmIChrIGluIG8gJiYgUi5lcXVhbHModiwgb1trXSkpXG4gICAgcmV0dXJuIG9cbiAgY29uc3QgciA9IHtba106IHZ9XG4gIGZvciAoY29uc3QgcCBpbiBvKVxuICAgIGlmIChwICE9PSBrKVxuICAgICAgcltwXSA9IG9bcF1cbiAgcmV0dXJuIHJcbn1cblxuLy9cblxuY29uc3QgZHJvcHBlZCA9IHhzID0+IE9iamVjdC5rZXlzKHhzKS5sZW5ndGggPT09IDAgPyB1bmRlZmluZWQgOiB4c1xuXG4vL1xuXG5jb25zdCB0b1BhcnRpYWwgPSB0cmFuc2Zvcm0gPT4geCA9PiB1bmRlZmluZWQgPT09IHggPyB4IDogdHJhbnNmb3JtKHgpXG5cbi8vXG5cbmNvbnN0IGZpbHRlcmVkID1cbiAgdG9QYXJ0aWFsKFIucGlwZShSLmZpbHRlcih4ID0+IHggIT09IHVuZGVmaW5lZCksIGRyb3BwZWQpKVxuXG4vL1xuXG5jb25zdCBjb25zZXJ2ZSA9IChjMSwgYzApID0+IFIuZXF1YWxzKGMxLCBjMCkgPyBjMCA6IGMxXG5cbmNvbnN0IHRvQ29uc2VydmUgPSBmID0+ICh5LCBjMCkgPT4gY29uc2VydmUoZih5LCBjMCksIGMwKVxuXG4vL1xuXG5jb25zdCBzZWVtc0xlbnMgPSB4ID0+IHR5cGVvZiB4ID09PSBcImZ1bmN0aW9uXCIgJiYgeC5sZW5ndGggPT09IDFcblxuY29uc3QgbGlmdGVkID0gYXNzZXJ0KFwiYSBsZW5zXCIsIHNlZW1zTGVucylcblxuY29uc3QgbGlmdCA9IGwgPT4ge1xuICBpZiAoaXNQcm9wKGwpKSAgcmV0dXJuIGxpZnRQcm9wKGwpXG4gIGlmIChpc0luZGV4KGwpKSByZXR1cm4gbGlmdEluZGV4KGwpXG4gIHJldHVybiBsaWZ0ZWQobClcbn1cblxuZXhwb3J0IGNvbnN0IGNvbXBvc2UgPSAoLi4ubHMpID0+XG4gIGxzLmxlbmd0aCA9PT0gMCA/IGlkZW50aXR5IDpcbiAgbHMubGVuZ3RoID09PSAxID8gbHNbMF0gOlxuICAodG9DYXQgPT4gUi5jb21wb3NlKC4uLmxzLm1hcChsID0+IGxpZnQobCkodG9DYXQpKSkpXG5cbmV4cG9ydCBjb25zdCByZW1vdmUgPSBSLmN1cnJ5KChsLCBzKSA9PiBzZXRJKGxpZnQobCksIHVuZGVmaW5lZCwgcykpXG5cbmV4cG9ydCBjb25zdCByZW1vdmVBbGwgPSBSLmN1cnJ5KChsZW5zLCBkYXRhKSA9PiB7XG4gIHdhcm4oXCJgcmVtb3ZlQWxsYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gbmV4dCBtYWpvciB2ZXJzaW9uIC0tLSB1c2UgYSBkaWZmZXJlbnQgYXBwcm9hY2guXCIpXG4gIHdoaWxlIChnZXQobGVucywgZGF0YSkgIT09IHVuZGVmaW5lZClcbiAgICBkYXRhID0gcmVtb3ZlKGxlbnMsIGRhdGEpXG4gIHJldHVybiBkYXRhXG59KVxuXG5jb25zdCBzZXRJID0gKGwsIHgsIHMpID0+IGwoSWRlbnQpKCgpID0+IElkZW50KHgpKShzKS52YWx1ZVxuY29uc3QgZ2V0SSA9IChsLCBzKSA9PiBsKENvbnN0KShDb25zdCkocykudmFsdWVcbmNvbnN0IG1vZGlmeUkgPSAobCwgeDJ4LCBzKSA9PiBsKElkZW50KSh5ID0+IElkZW50KHgyeCh5KSkpKHMpLnZhbHVlXG5jb25zdCBsZW5zSSA9IChnZXR0ZXIsIHNldHRlcikgPT4gX2NvbnN0cnVjdG9yID0+IGlubmVyID0+IHRhcmdldCA9PlxuICBpbm5lcihnZXR0ZXIodGFyZ2V0KSkubWFwKGZvY3VzID0+IHNldHRlcihmb2N1cywgdGFyZ2V0KSlcbmNvbnN0IGNvbGxlY3RJID0gKGwsIHMpID0+IGwoQ29uc3QpKFNpbmdsZSkocykudmFsdWVcblxuZXhwb3J0IGNvbnN0IGxlbnMgPSBSLmN1cnJ5KGxlbnNJKVxuZXhwb3J0IGNvbnN0IG1vZGlmeSA9IFIuY3VycnkoKGwsIHgyeCwgcykgPT4gbW9kaWZ5SShsaWZ0KGwpLCB4MngsIHMpKVxuZXhwb3J0IGNvbnN0IHNldCA9IFIuY3VycnkoKGwsIHgsIHMpID0+IHNldEkobGlmdChsKSwgeCwgcykpXG5leHBvcnQgY29uc3QgZ2V0ID0gUi5jdXJyeSgobCwgcykgPT4gZ2V0SShsaWZ0KGwpLCBzKSlcbmV4cG9ydCBjb25zdCBjb2xsZWN0ID0gUi5jdXJyeSgobCwgcykgPT5cbiAgd2FybihcImBjb2xsZWN0YCBpcyBleHBlcmltZW50YWwgYW5kIG1pZ2h0IGJlIHJlbW92ZWQsIHJlbmFtZWQgb3IgY2hhbmdlZCBzZW1hbnRpY2FsbHkgYmVmb3JlIG5leHQgbWFqb3IgcmVsZWFzZVwiKSB8fFxuICBta0FycmF5KGZpbHRlcmVkKGNvbGxlY3RJKGxpZnQobCksIHMpKSkpXG5cbmV4cG9ydCBjb25zdCBjaGFpbiA9IFIuY3VycnkoKHgyeUwsIHhMKSA9PlxuICBjb21wb3NlKHhMLCBjaG9vc2UoeE8gPT4geE8gPT09IHVuZGVmaW5lZCA/IG5vdGhpbmcgOiB4MnlMKHhPKSkpKVxuXG5leHBvcnQgY29uc3QganVzdCA9IHggPT4gbGVuc0koUi5hbHdheXMoeCksIHNuZClcblxuZXhwb3J0IGNvbnN0IGNob29zZSA9IHgyeUwgPT4gY29uc3RydWN0b3IgPT4gaW5uZXIgPT4gdGFyZ2V0ID0+XG4gIGxpZnQoeDJ5TCh0YXJnZXQpKShjb25zdHJ1Y3RvcikoaW5uZXIpKHRhcmdldClcblxuZXhwb3J0IGNvbnN0IG5vdGhpbmcgPSBsZW5zSShzbmQsIHNuZClcblxuZXhwb3J0IGNvbnN0IG9yRWxzZSA9XG4gIFIuY3VycnkoKGQsIGwpID0+IGNob29zZSh4ID0+IGdldEkobGlmdChsKSwgeCkgIT09IHVuZGVmaW5lZCA/IGwgOiBkKSlcblxuZXhwb3J0IGNvbnN0IGNob2ljZSA9ICguLi5scykgPT4gY2hvb3NlKHggPT4ge1xuICBjb25zdCBpID0gbHMuZmluZEluZGV4KGwgPT4gZ2V0SShsaWZ0KGwpLCB4KSAhPT0gdW5kZWZpbmVkKVxuICByZXR1cm4gMCA8PSBpID8gbHNbaV0gOiBub3RoaW5nXG59KVxuXG5jb25zdCByZXBsYWNlciA9IChpbm4sIG91dCkgPT4geCA9PiBSLmVxdWFscyh4LCBpbm4pID8gb3V0IDogeFxuY29uc3Qgbm9ybWFsaXplciA9IGZuID0+IGxlbnNJKGZuLCB0b0NvbnNlcnZlKGZuKSlcblxuZXhwb3J0IGNvbnN0IHJlcGxhY2UgPSBSLmN1cnJ5KChpbm4sIG91dCkgPT5cbiAgbGVuc0kocmVwbGFjZXIoaW5uLCBvdXQpLCB0b0NvbnNlcnZlKHJlcGxhY2VyKG91dCwgaW5uKSkpKVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdHMgPSByZXBsYWNlKHVuZGVmaW5lZClcbmV4cG9ydCBjb25zdCByZXF1aXJlZCA9IGlubiA9PiByZXBsYWNlKGlubiwgdW5kZWZpbmVkKVxuZXhwb3J0IGNvbnN0IGRlZmluZSA9IHYgPT4gbm9ybWFsaXplcihyZXBsYWNlcih1bmRlZmluZWQsIHYpKVxuXG5leHBvcnQgY29uc3QgdmFsdWVPciA9IHYgPT5cbiAgbGVuc0koeCA9PiB4ID09PSB1bmRlZmluZWQgfHwgeCA9PT0gbnVsbCA/IHYgOiB4LCBjb25zZXJ2ZSlcblxuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZSA9IHRyYW5zZm9ybSA9PiBub3JtYWxpemVyKHRvUGFydGlhbCh0cmFuc2Zvcm0pKVxuXG5jb25zdCBpc1Byb3AgPSB4ID0+IHR5cGVvZiB4ID09PSBcInN0cmluZ1wiXG5cbmV4cG9ydCBjb25zdCBwcm9wID0gYXNzZXJ0KFwiYSBzdHJpbmdcIiwgaXNQcm9wKVxuXG5jb25zdCBsaWZ0UHJvcCA9IGsgPT4gbGVuc0kobyA9PiB1bk9iamVjdChvKSAmJiBvW2tdLCAodiwgb0luKSA9PiB7XG4gIGNvbnN0IG8gPSB1bk9iamVjdChvSW4pXG4gIHJldHVybiB2ID09PSB1bmRlZmluZWQgPyBkZWxldGVLZXkoaywgbykgOiBzZXRLZXkoaywgdiwgbylcbn0pXG5cbmV4cG9ydCBjb25zdCBmaW5kID0gcHJlZGljYXRlID0+IGNob29zZSh4cyA9PiB7XG4gIGlmIChpc0FycmF5KHhzKSkge1xuICAgIGNvbnN0IGkgPSB4cy5maW5kSW5kZXgocHJlZGljYXRlKVxuICAgIHJldHVybiBpIDwgMCA/IGFwcGVuZCA6IGlcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYXBwZW5kXG4gIH1cbn0pXG5cbmV4cG9ydCBjb25zdCBmaW5kV2l0aCA9ICguLi5scykgPT4ge1xuICBjb25zdCBsbHMgPSBsaWZ0KGNvbXBvc2UoLi4ubHMpKVxuICByZXR1cm4gY29tcG9zZShmaW5kKHggPT4gZ2V0SShsbHMsIHgpICE9PSB1bmRlZmluZWQpLCBsbHMpXG59XG5cbmNvbnN0IGlzSW5kZXggPSB4ID0+IE51bWJlci5pc0ludGVnZXIoeCkgJiYgMCA8PSB4XG5cbmV4cG9ydCBjb25zdCBpbmRleCA9IGFzc2VydChcImEgbm9uLW5lZ2F0aXZlIGludGVnZXJcIiwgaXNJbmRleClcblxuY29uc3QgbGlmdEluZGV4ID0gaSA9PiBsZW5zSSh4cyA9PiB1bkFycmF5KHhzKSAmJiB4c1tpXSwgKHgsIHhzKSA9PiB7XG4gIGlmICh4ID09PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoIWlzQXJyYXkoeHMpKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGlmIChpIDwgeHMubGVuZ3RoKVxuICAgICAgcmV0dXJuIGRyb3BwZWQoeHMuc2xpY2UoMCwgaSkuY29uY2F0KHhzLnNsaWNlKGkrMSkpKVxuICAgIHJldHVybiBkcm9wcGVkKHhzKVxuICB9IGVsc2Uge1xuICAgIGlmICghaXNBcnJheSh4cykpXG4gICAgICByZXR1cm4gQXJyYXkoaSkuY29uY2F0KFt4XSlcbiAgICBpZiAoeHMubGVuZ3RoIDw9IGkpXG4gICAgICByZXR1cm4geHMuY29uY2F0KEFycmF5KGkgLSB4cy5sZW5ndGgpLCBbeF0pXG4gICAgaWYgKFIuZXF1YWxzKHgsIHhzW2ldKSlcbiAgICAgIHJldHVybiB4c1xuICAgIHJldHVybiB4cy5zbGljZSgwLCBpKS5jb25jYXQoW3hdLCB4cy5zbGljZShpKzEpKVxuICB9XG59KVxuXG5leHBvcnQgY29uc3QgYXBwZW5kID0gbGVuc0koc25kLCAoeCwgeHMpID0+XG4gIHggPT09IHVuZGVmaW5lZCA/IHVuQXJyYXkoeHMpIDogaXNBcnJheSh4cykgPyB4cy5jb25jYXQoW3hdKSA6IFt4XSlcblxuZXhwb3J0IGNvbnN0IGZpbHRlciA9IHAgPT4gbGVuc0koeHMgPT4gdW5BcnJheSh4cykgJiYgeHMuZmlsdGVyKHApLCAoeXMsIHhzKSA9PlxuICBjb25zZXJ2ZShkcm9wcGVkKFIuY29uY2F0KG1rQXJyYXkoeXMpLCBta0FycmF5KHhzKS5maWx0ZXIoUi5jb21wbGVtZW50KHApKSkpLCB4cykpXG5cbmV4cG9ydCBjb25zdCBhdWdtZW50ID0gdGVtcGxhdGUgPT4gbGVuc0koXG4gIHggPT4ge1xuICAgIGlmIChpc09iamVjdCh4KSkge1xuICAgICAgY29uc3QgeiA9IHsuLi54fVxuICAgICAgZm9yIChjb25zdCBrIGluIHRlbXBsYXRlKVxuICAgICAgICB6W2tdID0gdGVtcGxhdGVba10oeilcbiAgICAgIHJldHVybiB6XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG4gIH0sXG4gIHRvQ29uc2VydmUoKHksIGNJbikgPT4ge1xuICAgIGlmIChpc09iamVjdCh5KSkge1xuICAgICAgY29uc3QgYyA9IHVuT2JqZWN0KGNJbikgfHwge31cbiAgICAgIGxldCB6XG4gICAgICBjb25zdCBzZXQgPSAoaywgdikgPT4ge1xuICAgICAgICBpZiAodW5kZWZpbmVkID09PSB6KVxuICAgICAgICAgIHogPSB7fVxuICAgICAgICB6W2tdID0gdlxuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBrIGluIHkpIHtcbiAgICAgICAgaWYgKCEoayBpbiB0ZW1wbGF0ZSkpXG4gICAgICAgICAgc2V0KGssIHlba10pXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBpZiAoayBpbiBjKVxuICAgICAgICAgICAgc2V0KGssIGNba10pXG4gICAgICB9XG4gICAgICByZXR1cm4gelxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuICB9KSlcblxuZXhwb3J0IGNvbnN0IHBpY2sgPSB0ZW1wbGF0ZSA9PiBsZW5zSShcbiAgYyA9PiB7XG4gICAgbGV0IHJcbiAgICBmb3IgKGNvbnN0IGsgaW4gdGVtcGxhdGUpIHtcbiAgICAgIGNvbnN0IHYgPSBnZXRJKGxpZnQodGVtcGxhdGVba10pLCBjKVxuICAgICAgaWYgKHYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAociA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgIHIgPSB7fVxuICAgICAgICByW2tdID0gdlxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gclxuICB9LFxuICAobyA9IGVtcHR5LCBjSW4pID0+IHtcbiAgICBsZXQgYyA9IGNJblxuICAgIGZvciAoY29uc3QgayBpbiB0ZW1wbGF0ZSlcbiAgICAgIGMgPSBzZXRJKGxpZnQodGVtcGxhdGVba10pLCBvW2tdLCBjKVxuICAgIHJldHVybiBjXG4gIH0pXG5cbmV4cG9ydCBjb25zdCBpZGVudGl0eSA9IGxlbnNJKGlkLCBjb25zZXJ2ZSlcblxuZXhwb3J0IGNvbnN0IHByb3BzID0gKC4uLmtzKSA9PiBwaWNrKFIuemlwT2JqKGtzLCBrcykpXG5cbmNvbnN0IHNob3cgPSAoLi4ubGFiZWxzKSA9PiB4ID0+IGNvbnNvbGUubG9nKC4uLmxhYmVscywgeCkgfHwgeFxuXG5leHBvcnQgY29uc3QgbG9nID0gKC4uLmxhYmVscykgPT5cbiAgbGVuc0koc2hvdyguLi5sYWJlbHMsIFwiZ2V0XCIpLCBzaG93KC4uLmxhYmVscywgXCJzZXRcIikpXG5cbmV4cG9ydCBjb25zdCBzZXF1ZW5jZSA9IGNvbnN0cnVjdG9yID0+IGlubmVyID0+IHRhcmdldCA9PlxuICB3YXJuKFwiYHNlcXVlbmNlYCBpcyBleHBlcmltZW50YWwgYW5kIG1pZ2h0IGJlIHJlbW92ZWQsIHJlbmFtZWQgb3IgY2hhbmdlZCBzZW1hbnRpY2FsbHkgYmVmb3JlIG5leHQgbWFqb3IgcmVsZWFzZVwiKSB8fFxuICBSLnRyYXZlcnNlKGNvbnN0cnVjdG9yLCBpbm5lciwgbWtBcnJheSh0YXJnZXQpKVxuICAubWFwKGZpbHRlcmVkKVxuXG5leHBvcnQgY29uc3Qgb3B0aW9uYWwgPVxuICBjb21wb3NlKGxlbnNJKHRvUGFydGlhbCh4ID0+IFt4XSksXG4gICAgICAgICAgICAgICAgdG9QYXJ0aWFsKChbeF0pID0+IHgpKSxcbiAgICAgICAgICBzZXF1ZW5jZSlcblxuZXhwb3J0IGNvbnN0IGZyb21SYW1kYSA9IGwgPT4gX2NvbnN0cnVjdG9yID0+IGxcbmNvbnN0IGZhbnRhc3kgPSAoKSA9PiB7dGhyb3cgbmV3IEVycm9yKFwiU29ycnksIGB0b1JhbWRhYCBpcyBvbmx5IGZhbnRhc3khXCIpfVxuZXhwb3J0IGNvbnN0IHRvUmFtZGEgPSBsID0+IGxpZnQobCkoZmFudGFzeSlcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9zZVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJ0aWFsLmxlbnNlcy5qcyJdLCJuYW1lcyI6WyJSIiwiSWRlbnRpdHkiLCJ2YWx1ZSIsIklkZW50IiwieCIsInByb3RvdHlwZSIsIm1hcCIsIngyeSIsIm9mIiwiYXAiLCJDb25zdGFudCIsIkNvbnN0IiwiU2luZ2xlIiwiY29uY2F0Iiwid2FybiIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIndhcm5lZCIsIm1lc3NhZ2UiLCJjb25zb2xlIiwiaXNBcnJheSIsImNvbnN0cnVjdG9yIiwiQXJyYXkiLCJpc09iamVjdCIsIk9iamVjdCIsInVuQXJyYXkiLCJ1bmRlZmluZWQiLCJ1bk9iamVjdCIsIm1rQXJyYXkiLCJpZCIsInNuZCIsIl8iLCJjIiwiY2hlY2siLCJleHBlY3RlZCIsInByZWRpY2F0ZSIsIkVycm9yIiwiYXNzZXJ0IiwiZW1wdHkiLCJkZWxldGVLZXkiLCJrIiwibyIsInIiLCJwIiwic2V0S2V5IiwidiIsImVxdWFscyIsImRyb3BwZWQiLCJrZXlzIiwieHMiLCJsZW5ndGgiLCJ0b1BhcnRpYWwiLCJ0cmFuc2Zvcm0iLCJmaWx0ZXJlZCIsInBpcGUiLCJmaWx0ZXIiLCJjb25zZXJ2ZSIsImMxIiwiYzAiLCJ0b0NvbnNlcnZlIiwieSIsImYiLCJzZWVtc0xlbnMiLCJsaWZ0ZWQiLCJsaWZ0IiwiaXNQcm9wIiwibCIsImxpZnRQcm9wIiwiaXNJbmRleCIsImxpZnRJbmRleCIsImNvbXBvc2UiLCJscyIsImlkZW50aXR5IiwidG9DYXQiLCJyZW1vdmUiLCJjdXJyeSIsInMiLCJzZXRJIiwicmVtb3ZlQWxsIiwibGVucyIsImRhdGEiLCJnZXQiLCJnZXRJIiwibW9kaWZ5SSIsIngyeCIsImxlbnNJIiwiZ2V0dGVyIiwic2V0dGVyIiwiaW5uZXIiLCJ0YXJnZXQiLCJmb2N1cyIsImlzb0kiLCJ0byIsImZyb20iLCJjb2xsZWN0SSIsIm1vZGlmeSIsInNldCIsImNvbGxlY3QiLCJjaGFpbiIsIngyeUwiLCJ4TCIsImNob29zZSIsInhPIiwibm90aGluZyIsImp1c3QiLCJhbHdheXMiLCJvckVsc2UiLCJkIiwiY2hvaWNlIiwiaSIsImZpbmRJbmRleCIsInJlcGxhY2VyIiwiaW5uIiwib3V0Iiwibm9ybWFsaXplciIsImZuIiwicmVwbGFjZSIsImRlZmF1bHRzIiwicmVxdWlyZWQiLCJkZWZpbmUiLCJ2YWx1ZU9yIiwibm9ybWFsaXplIiwicHJvcCIsIm9JbiIsImZpbmQiLCJhcHBlbmQiLCJmaW5kV2l0aCIsImxscyIsIk51bWJlciIsImlzSW50ZWdlciIsImluZGV4Iiwic2xpY2UiLCJ5cyIsImNvbXBsZW1lbnQiLCJhdWdtZW50IiwieiIsInRlbXBsYXRlIiwiY0luIiwicGljayIsInByb3BzIiwia3MiLCJ6aXBPYmoiLCJzaG93IiwibGFiZWxzIiwibG9nIiwic2VxdWVuY2UiLCJ0cmF2ZXJzZSIsIm9wdGlvbmFsIiwiZnJvbVJhbWRhIiwiZmFudGFzeSIsInRvUmFtZGEiLCJmcm9tQXJyYXlCeSIsIm4iLCJ2YWx1ZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7SUFBWUEsQzs7Ozs7Ozs7QUFFWjs7QUFFQSxTQUFTQyxRQUFULENBQWtCQyxLQUFsQixFQUF5QjtBQUFDLE9BQUtBLEtBQUwsR0FBYUEsS0FBYjtBQUFtQjtBQUM3QyxJQUFNQyxRQUFRLFNBQVJBLEtBQVE7QUFBQSxTQUFLLElBQUlGLFFBQUosQ0FBYUcsQ0FBYixDQUFMO0FBQUEsQ0FBZDtBQUNBSCxTQUFTSSxTQUFULENBQW1CQyxHQUFuQixHQUF5QixVQUFVQyxHQUFWLEVBQWU7QUFBQyxTQUFPLElBQUlOLFFBQUosQ0FBYU0sSUFBSSxLQUFLTCxLQUFULENBQWIsQ0FBUDtBQUFxQyxDQUE5RTtBQUNBRCxTQUFTSSxTQUFULENBQW1CRyxFQUFuQixHQUF3QkwsS0FBeEI7QUFDQUYsU0FBU0ksU0FBVCxDQUFtQkksRUFBbkIsR0FBd0IsVUFBVUwsQ0FBVixFQUFhO0FBQUMsU0FBTyxJQUFJSCxRQUFKLENBQWEsS0FBS0MsS0FBTCxDQUFXRSxF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LEVBQXFDO0FBQ25DLFlBQU0xRyxJQUFJOEMsR0FBRzRELENBQUgsQ0FBVjtBQUNBcEUsVUFBRXRDLEVBQUUwQixFQUFGLENBQUYsSUFBVzFCLENBQVg7QUFDRDtBQUNELGFBQU9zQyxDQUFQO0FBQ0Q7QUFDRixHQVRELEVBVUE7QUFBQSxXQUFLZCxTQUFTYyxDQUFULEtBQWUxQyxFQUFFMEosTUFBRixDQUFTaEgsQ0FBVCxDQUFwQjtBQUFBLEdBVkEsQ0FGeUI7QUFBQSxDQUFwQjs7a0JBY1E2QixPIiwiZmlsZSI6InBhcnRpYWwubGVuc2VzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUiBmcm9tIFwicmFtZGFcIlxuXG4vL1xuXG5mdW5jdGlvbiBJZGVudGl0eSh2YWx1ZSkge3RoaXMudmFsdWUgPSB2YWx1ZX1cbmNvbnN0IElkZW50ID0geCA9PiBuZXcgSWRlbnRpdHkoeClcbklkZW50aXR5LnByb3RvdHlwZS5tYXAgPSBmdW5jdGlvbiAoeDJ5KSB7cmV0dXJuIG5ldyBJZGVudGl0eSh4MnkodGhpcy52YWx1ZSkpfVxuSWRlbnRpdHkucHJvdG90eXBlLm9mID0gSWRlbnRcbklkZW50aXR5LnByb3RvdHlwZS5hcCA9IGZ1bmN0aW9uICh4KSB7cmV0dXJuIG5ldyBJZGVudGl0eSh0aGlzLnZhbHVlKHgudmFsdWUpKX1cblxuLy9cblxuZnVuY3Rpb24gQ29uc3RhbnQodmFsdWUpIHt0aGlzLnZhbHVlID0gdmFsdWV9XG5jb25zdCBDb25zdCA9IHggPT4gbmV3IENvbnN0YW50KHgpXG5jb25zdCBTaW5nbGUgPSB4ID0+IENvbnN0KFt4XSlcbkNvbnN0YW50LnByb3RvdHlwZS5tYXAgPSBmdW5jdGlvbiAoKSB7cmV0dXJuIHRoaXN9XG5Db25zdGFudC5wcm90b3R5cGUub2YgPSBDb25zdFxuQ29uc3RhbnQucHJvdG90eXBlLmFwID0gZnVuY3Rpb24gKHgpIHtyZXR1cm4gbmV3IENvbnN0KFIuY29uY2F0KHRoaXMudmFsdWUsIHgudmFsdWUpKX1cblxuLy9cblxuY29uc3Qgd2FybiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/ICgpID0+IHt9IDogKCgpID0+IHtcbiAgY29uc3Qgd2FybmVkID0ge31cblxuICByZXR1cm4gbWVzc2FnZSA9PiB7XG4gICAgaWYgKCEobWVzc2FnZSBpbiB3YXJuZWQpKSB7XG4gICAgICB3YXJuZWRbbWVzc2FnZV0gPSBtZXNzYWdlXG4gICAgICBjb25zb2xlLndhcm4oXCJwYXJ0aWFsLmxlbnNlczpcIiwgbWVzc2FnZSlcbiAgICB9XG4gIH1cbn0pKClcblxuLy9cblxuY29uc3QgaXNBcnJheSAgPSB4ID0+IHggJiYgeC5jb25zdHJ1Y3RvciA9PT0gQXJyYXlcbmNvbnN0IGlzT2JqZWN0ID0geCA9PiB4ICYmIHguY29uc3RydWN0b3IgPT09IE9iamVjdFxuXG5jb25zdCB1bkFycmF5ICA9IHggPT4gIGlzQXJyYXkoeCkgPyB4IDogdW5kZWZpbmVkXG5jb25zdCB1bk9iamVjdCA9IHggPT4gaXNPYmplY3QoeCkgPyB4IDogdW5kZWZpbmVkXG5cbmNvbnN0IG1rQXJyYXkgPSB4ID0+IGlzQXJyYXkoeCkgPyB4IDogW11cblxuLy9cblxuY29uc3QgaWQgPSB4ID0+IHhcbmNvbnN0IHNuZCA9IChfLCBjKSA9PiBjXG5cbi8vXG5cbmNvbnN0IGNoZWNrID0gKGV4cGVjdGVkLCBwcmVkaWNhdGUpID0+IHggPT4ge1xuICBpZiAocHJlZGljYXRlKHgpKVxuICAgIHJldHVybiB4XG4gIGVsc2VcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXhwZWN0ZWR9LCBidXQgZ290ICR7eH0uYClcbn1cblxuY29uc3QgYXNzZXJ0ID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gKCkgPT4gaWQgOiBjaGVja1xuXG4vL1xuXG5jb25zdCBlbXB0eSA9IHt9XG5cbmNvbnN0IGRlbGV0ZUtleSA9IChrLCBvID0ge30pID0+IHtcbiAgbGV0IHJcbiAgZm9yIChjb25zdCBwIGluIG8pIHtcbiAgICBpZiAocCAhPT0gaykge1xuICAgICAgaWYgKHVuZGVmaW5lZCA9PT0gcilcbiAgICAgICAgciA9IHt9XG4gICAgICByW3BdID0gb1twXVxuICAgIH1cbiAgfVxuICByZXR1cm4gclxufVxuXG5jb25zdCBzZXRLZXkgPSAoaywgdiwgbyA9IHt9KSA9PiB7XG4gIGlmIChrIGluIG8gJiYgUi5lcXVhbHModiwgb1trXSkpXG4gICAgcmV0dXJuIG9cbiAgY29uc3QgciA9IHtba106IHZ9XG4gIGZvciAoY29uc3QgcCBpbiBvKVxuICAgIGlmIChwICE9PSBrKVxuICAgICAgcltwXSA9IG9bcF1cbiAgcmV0dXJuIHJcbn1cblxuLy9cblxuY29uc3QgZHJvcHBlZCA9IHhzID0+IE9iamVjdC5rZXlzKHhzKS5sZW5ndGggPT09IDAgPyB1bmRlZmluZWQgOiB4c1xuXG4vL1xuXG5jb25zdCB0b1BhcnRpYWwgPSB0cmFuc2Zvcm0gPT4geCA9PiB1bmRlZmluZWQgPT09IHggPyB4IDogdHJhbnNmb3JtKHgpXG5cbi8vXG5cbmNvbnN0IGZpbHRlcmVkID1cbiAgdG9QYXJ0aWFsKFIucGlwZShSLmZpbHRlcih4ID0+IHggIT09IHVuZGVmaW5lZCksIGRyb3BwZWQpKVxuXG4vL1xuXG5jb25zdCBjb25zZXJ2ZSA9IChjMSwgYzApID0+IFIuZXF1YWxzKGMxLCBjMCkgPyBjMCA6IGMxXG5cbmNvbnN0IHRvQ29uc2VydmUgPSBmID0+ICh5LCBjMCkgPT4gY29uc2VydmUoZih5LCBjMCksIGMwKVxuXG4vL1xuXG5jb25zdCBzZWVtc0xlbnMgPSB4ID0+IHR5cGVvZiB4ID09PSBcImZ1bmN0aW9uXCIgJiYgeC5sZW5ndGggPT09IDFcblxuY29uc3QgbGlmdGVkID0gYXNzZXJ0KFwiYSBsZW5zXCIsIHNlZW1zTGVucylcblxuY29uc3QgbGlmdCA9IGwgPT4ge1xuICBpZiAoaXNQcm9wKGwpKSAgcmV0dXJuIGxpZnRQcm9wKGwpXG4gIGlmIChpc0luZGV4KGwpKSByZXR1cm4gbGlmdEluZGV4KGwpXG4gIHJldHVybiBsaWZ0ZWQobClcbn1cblxuZXhwb3J0IGNvbnN0IGNvbXBvc2UgPSAoLi4ubHMpID0+XG4gIGxzLmxlbmd0aCA9PT0gMCA/IGlkZW50aXR5IDpcbiAgbHMubGVuZ3RoID09PSAxID8gbHNbMF0gOlxuICAodG9DYXQgPT4gUi5jb21wb3NlKC4uLmxzLm1hcChsID0+IGxpZnQobCkodG9DYXQpKSkpXG5cbmV4cG9ydCBjb25zdCByZW1vdmUgPSBSLmN1cnJ5KChsLCBzKSA9PiBzZXRJKGxpZnQobCksIHVuZGVmaW5lZCwgcykpXG5cbmV4cG9ydCBjb25zdCByZW1vdmVBbGwgPSBSLmN1cnJ5KChsZW5zLCBkYXRhKSA9PiB7XG4gIHdhcm4oXCJgcmVtb3ZlQWxsYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gbmV4dCBtYWpvciB2ZXJzaW9uIC0tLSB1c2UgYSBkaWZmZXJlbnQgYXBwcm9hY2guXCIpXG4gIHdoaWxlIChnZXQobGVucywgZGF0YSkgIT09IHVuZGVmaW5lZClcbiAgICBkYXRhID0gcmVtb3ZlKGxlbnMsIGRhdGEpXG4gIHJldHVybiBkYXRhXG59KVxuXG5jb25zdCBzZXRJID0gKGwsIHgsIHMpID0+IGwoSWRlbnQpKCgpID0+IElkZW50KHgpKShzKS52YWx1ZVxuY29uc3QgZ2V0SSA9IChsLCBzKSA9PiBsKENvbnN0KShDb25zdCkocykudmFsdWVcbmNvbnN0IG1vZGlmeUkgPSAobCwgeDJ4LCBzKSA9PiBsKElkZW50KSh5ID0+IElkZW50KHgyeCh5KSkpKHMpLnZhbHVlXG5jb25zdCBsZW5zSSA9IChnZXR0ZXIsIHNldHRlcikgPT4gX2NvbnN0cnVjdG9yID0+IGlubmVyID0+IHRhcmdldCA9PlxuICBpbm5lcihnZXR0ZXIodGFyZ2V0KSkubWFwKGZvY3VzID0+IHNldHRlcihmb2N1cywgdGFyZ2V0KSlcbmNvbnN0IGlzb0kgPSAodG8sIGZyb20pID0+IGxlbnNJKHRvLCB0b0NvbnNlcnZlKGZyb20pKVxuY29uc3QgY29sbGVjdEkgPSAobCwgcykgPT4gbChDb25zdCkoU2luZ2xlKShzKS52YWx1ZVxuXG5leHBvcnQgY29uc3QgbGVucyA9IFIuY3VycnkobGVuc0kpXG5leHBvcnQgY29uc3QgbW9kaWZ5ID0gUi5jdXJyeSgobCwgeDJ4LCBzKSA9PiBtb2RpZnlJKGxpZnQobCksIHgyeCwgcykpXG5leHBvcnQgY29uc3Qgc2V0ID0gUi5jdXJyeSgobCwgeCwgcykgPT4gc2V0SShsaWZ0KGwpLCB4LCBzKSlcbmV4cG9ydCBjb25zdCBnZXQgPSBSLmN1cnJ5KChsLCBzKSA9PiBnZXRJKGxpZnQobCksIHMpKVxuZXhwb3J0IGNvbnN0IGNvbGxlY3QgPSBSLmN1cnJ5KChsLCBzKSA9PlxuICB3YXJuKFwiYGNvbGxlY3RgIGlzIGV4cGVyaW1lbnRhbCBhbmQgbWlnaHQgYmUgcmVtb3ZlZCwgcmVuYW1lZCBvciBjaGFuZ2VkIHNlbWFudGljYWxseSBiZWZvcmUgbmV4dCBtYWpvciByZWxlYXNlXCIpIHx8XG4gIG1rQXJyYXkoZmlsdGVyZWQoY29sbGVjdEkobGlmdChsKSwgcykpKSlcblxuZXhwb3J0IGNvbnN0IGNoYWluID0gUi5jdXJyeSgoeDJ5TCwgeEwpID0+XG4gIGNvbXBvc2UoeEwsIGNob29zZSh4TyA9PiB4TyA9PT0gdW5kZWZpbmVkID8gbm90aGluZyA6IHgyeUwoeE8pKSkpXG5cbmV4cG9ydCBjb25zdCBqdXN0ID0geCA9PiBsZW5zSShSLmFsd2F5cyh4KSwgc25kKVxuXG5leHBvcnQgY29uc3QgY2hvb3NlID0geDJ5TCA9PiBjb25zdHJ1Y3RvciA9PiBpbm5lciA9PiB0YXJnZXQgPT5cbiAgbGlmdCh4MnlMKHRhcmdldCkpKGNvbnN0cnVjdG9yKShpbm5lcikodGFyZ2V0KVxuXG5leHBvcnQgY29uc3Qgbm90aGluZyA9IGxlbnNJKHNuZCwgc25kKVxuXG5leHBvcnQgY29uc3Qgb3JFbHNlID1cbiAgUi5jdXJyeSgoZCwgbCkgPT4gY2hvb3NlKHggPT4gZ2V0SShsaWZ0KGwpLCB4KSAhPT0gdW5kZWZpbmVkID8gbCA6IGQpKVxuXG5leHBvcnQgY29uc3QgY2hvaWNlID0gKC4uLmxzKSA9PiBjaG9vc2UoeCA9PiB7XG4gIGNvbnN0IGkgPSBscy5maW5kSW5kZXgobCA9PiBnZXRJKGxpZnQobCksIHgpICE9PSB1bmRlZmluZWQpXG4gIHJldHVybiAwIDw9IGkgPyBsc1tpXSA6IG5vdGhpbmdcbn0pXG5cbmNvbnN0IHJlcGxhY2VyID0gKGlubiwgb3V0KSA9PiB4ID0+IFIuZXF1YWxzKHgsIGlubikgPyBvdXQgOiB4XG5jb25zdCBub3JtYWxpemVyID0gZm4gPT4gaXNvSShmbiwgZm4pXG5cbmV4cG9ydCBjb25zdCByZXBsYWNlID0gUi5jdXJyeSgoaW5uLCBvdXQpID0+XG4gIGlzb0kocmVwbGFjZXIoaW5uLCBvdXQpLCByZXBsYWNlcihvdXQsIGlubikpKVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdHMgPSByZXBsYWNlKHVuZGVmaW5lZClcbmV4cG9ydCBjb25zdCByZXF1aXJlZCA9IGlubiA9PiByZXBsYWNlKGlubiwgdW5kZWZpbmVkKVxuZXhwb3J0IGNvbnN0IGRlZmluZSA9IHYgPT4gbm9ybWFsaXplcihyZXBsYWNlcih1bmRlZmluZWQsIHYpKVxuXG5leHBvcnQgY29uc3QgdmFsdWVPciA9IHYgPT5cbiAgbGVuc0koeCA9PiB4ID09PSB1bmRlZmluZWQgfHwgeCA9PT0gbnVsbCA/IHYgOiB4LCBjb25zZXJ2ZSlcblxuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZSA9IHRyYW5zZm9ybSA9PiBub3JtYWxpemVyKHRvUGFydGlhbCh0cmFuc2Zvcm0pKVxuXG5jb25zdCBpc1Byb3AgPSB4ID0+IHR5cGVvZiB4ID09PSBcInN0cmluZ1wiXG5cbmV4cG9ydCBjb25zdCBwcm9wID0gYXNzZXJ0KFwiYSBzdHJpbmdcIiwgaXNQcm9wKVxuXG5jb25zdCBsaWZ0UHJvcCA9IGsgPT4gbGVuc0kobyA9PiB1bk9iamVjdChvKSAmJiBvW2tdLCAodiwgb0luKSA9PiB7XG4gIGNvbnN0IG8gPSB1bk9iamVjdChvSW4pXG4gIHJldHVybiB2ID09PSB1bmRlZmluZWQgPyBkZWxldGVLZXkoaywgbykgOiBzZXRLZXkoaywgdiwgbylcbn0pXG5cbmV4cG9ydCBjb25zdCBmaW5kID0gcHJlZGljYXRlID0+IGNob29zZSh4cyA9PiB7XG4gIGlmIChpc0FycmF5KHhzKSkge1xuICAgIGNvbnN0IGkgPSB4cy5maW5kSW5kZXgocHJlZGljYXRlKVxuICAgIHJldHVybiBpIDwgMCA/IGFwcGVuZCA6IGlcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYXBwZW5kXG4gIH1cbn0pXG5cbmV4cG9ydCBjb25zdCBmaW5kV2l0aCA9ICguLi5scykgPT4ge1xuICBjb25zdCBsbHMgPSBsaWZ0KGNvbXBvc2UoLi4ubHMpKVxuICByZXR1cm4gY29tcG9zZShmaW5kKHggPT4gZ2V0SShsbHMsIHgpICE9PSB1bmRlZmluZWQpLCBsbHMpXG59XG5cbmNvbnN0IGlzSW5kZXggPSB4ID0+IE51bWJlci5pc0ludGVnZXIoeCkgJiYgMCA8PSB4XG5cbmV4cG9ydCBjb25zdCBpbmRleCA9IGFzc2VydChcImEgbm9uLW5lZ2F0aXZlIGludGVnZXJcIiwgaXNJbmRleClcblxuY29uc3QgbGlmdEluZGV4ID0gaSA9PiBsZW5zSSh4cyA9PiB1bkFycmF5KHhzKSAmJiB4c1tpXSwgKHgsIHhzKSA9PiB7XG4gIGlmICh4ID09PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoIWlzQXJyYXkoeHMpKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGlmIChpIDwgeHMubGVuZ3RoKVxuICAgICAgcmV0dXJuIGRyb3BwZWQoeHMuc2xpY2UoMCwgaSkuY29uY2F0KHhzLnNsaWNlKGkrMSkpKVxuICAgIHJldHVybiBkcm9wcGVkKHhzKVxuICB9IGVsc2Uge1xuICAgIGlmICghaXNBcnJheSh4cykpXG4gICAgICByZXR1cm4gQXJyYXkoaSkuY29uY2F0KFt4XSlcbiAgICBpZiAoeHMubGVuZ3RoIDw9IGkpXG4gICAgICByZXR1cm4geHMuY29uY2F0KEFycmF5KGkgLSB4cy5sZW5ndGgpLCBbeF0pXG4gICAgaWYgKFIuZXF1YWxzKHgsIHhzW2ldKSlcbiAgICAgIHJldHVybiB4c1xuICAgIHJldHVybiB4cy5zbGljZSgwLCBpKS5jb25jYXQoW3hdLCB4cy5zbGljZShpKzEpKVxuICB9XG59KVxuXG5leHBvcnQgY29uc3QgYXBwZW5kID0gbGVuc0koc25kLCAoeCwgeHMpID0+XG4gIHggPT09IHVuZGVmaW5lZCA/IHVuQXJyYXkoeHMpIDogaXNBcnJheSh4cykgPyB4cy5jb25jYXQoW3hdKSA6IFt4XSlcblxuZXhwb3J0IGNvbnN0IGZpbHRlciA9IHAgPT4gbGVuc0koeHMgPT4gdW5BcnJheSh4cykgJiYgeHMuZmlsdGVyKHApLCAoeXMsIHhzKSA9PlxuICBjb25zZXJ2ZShkcm9wcGVkKFIuY29uY2F0KG1rQXJyYXkoeXMpLCBta0FycmF5KHhzKS5maWx0ZXIoUi5jb21wbGVtZW50KHApKSkpLCB4cykpXG5cbmV4cG9ydCBjb25zdCBhdWdtZW50ID0gdGVtcGxhdGUgPT4gbGVuc0koXG4gIHggPT4ge1xuICAgIGlmIChpc09iamVjdCh4KSkge1xuICAgICAgY29uc3QgeiA9IHsuLi54fVxuICAgICAgZm9yIChjb25zdCBrIGluIHRlbXBsYXRlKVxuICAgICAgICB6W2tdID0gdGVtcGxhdGVba10oeilcbiAgICAgIHJldHVybiB6XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG4gIH0sXG4gIHRvQ29uc2VydmUoKHksIGNJbikgPT4ge1xuICAgIGlmIChpc09iamVjdCh5KSkge1xuICAgICAgY29uc3QgYyA9IHVuT2JqZWN0KGNJbikgfHwge31cbiAgICAgIGxldCB6XG4gICAgICBjb25zdCBzZXQgPSAoaywgdikgPT4ge1xuICAgICAgICBpZiAodW5kZWZpbmVkID09PSB6KVxuICAgICAgICAgIHogPSB7fVxuICAgICAgICB6W2tdID0gdlxuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBrIGluIHkpIHtcbiAgICAgICAgaWYgKCEoayBpbiB0ZW1wbGF0ZSkpXG4gICAgICAgICAgc2V0KGssIHlba10pXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBpZiAoayBpbiBjKVxuICAgICAgICAgICAgc2V0KGssIGNba10pXG4gICAgICB9XG4gICAgICByZXR1cm4gelxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuICB9KSlcblxuZXhwb3J0IGNvbnN0IHBpY2sgPSB0ZW1wbGF0ZSA9PiBsZW5zSShcbiAgYyA9PiB7XG4gICAgbGV0IHJcbiAgICBmb3IgKGNvbnN0IGsgaW4gdGVtcGxhdGUpIHtcbiAgICAgIGNvbnN0IHYgPSBnZXRJKGxpZnQodGVtcGxhdGVba10pLCBjKVxuICAgICAgaWYgKHYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAociA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgIHIgPSB7fVxuICAgICAgICByW2tdID0gdlxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gclxuICB9LFxuICAobyA9IGVtcHR5LCBjSW4pID0+IHtcbiAgICBsZXQgYyA9IGNJblxuICAgIGZvciAoY29uc3QgayBpbiB0ZW1wbGF0ZSlcbiAgICAgIGMgPSBzZXRJKGxpZnQodGVtcGxhdGVba10pLCBvW2tdLCBjKVxuICAgIHJldHVybiBjXG4gIH0pXG5cbmV4cG9ydCBjb25zdCBpZGVudGl0eSA9IGxlbnNJKGlkLCBjb25zZXJ2ZSlcblxuZXhwb3J0IGNvbnN0IHByb3BzID0gKC4uLmtzKSA9PiBwaWNrKFIuemlwT2JqKGtzLCBrcykpXG5cbmNvbnN0IHNob3cgPSAoLi4ubGFiZWxzKSA9PiB4ID0+IGNvbnNvbGUubG9nKC4uLmxhYmVscywgeCkgfHwgeFxuXG5leHBvcnQgY29uc3QgbG9nID0gKC4uLmxhYmVscykgPT5cbiAgbGVuc0koc2hvdyguLi5sYWJlbHMsIFwiZ2V0XCIpLCBzaG93KC4uLmxhYmVscywgXCJzZXRcIikpXG5cbmV4cG9ydCBjb25zdCBzZXF1ZW5jZSA9IGNvbnN0cnVjdG9yID0+IGlubmVyID0+IHRhcmdldCA9PlxuICB3YXJuKFwiYHNlcXVlbmNlYCBpcyBleHBlcmltZW50YWwgYW5kIG1pZ2h0IGJlIHJlbW92ZWQsIHJlbmFtZWQgb3IgY2hhbmdlZCBzZW1hbnRpY2FsbHkgYmVmb3JlIG5leHQgbWFqb3IgcmVsZWFzZVwiKSB8fFxuICBSLnRyYXZlcnNlKGNvbnN0cnVjdG9yLCBpbm5lciwgbWtBcnJheSh0YXJnZXQpKVxuICAubWFwKGZpbHRlcmVkKVxuXG5leHBvcnQgY29uc3Qgb3B0aW9uYWwgPVxuICBjb21wb3NlKGxlbnNJKHRvUGFydGlhbCh4ID0+IFt4XSksXG4gICAgICAgICAgICAgICAgdG9QYXJ0aWFsKChbeF0pID0+IHgpKSxcbiAgICAgICAgICBzZXF1ZW5jZSlcblxuZXhwb3J0IGNvbnN0IGZyb21SYW1kYSA9IGwgPT4gX2NvbnN0cnVjdG9yID0+IGxcbmNvbnN0IGZhbnRhc3kgPSAoKSA9PiB7dGhyb3cgbmV3IEVycm9yKFwiU29ycnksIGB0b1JhbWRhYCBpcyBvbmx5IGZhbnRhc3khXCIpfVxuZXhwb3J0IGNvbnN0IHRvUmFtZGEgPSBsID0+IGxpZnQobCkoZmFudGFzeSlcblxuZXhwb3J0IGNvbnN0IGZyb21BcnJheUJ5ID0gaWQgPT5cbiAgd2FybihcImBmcm9tQXJyYXlCeWAgaXMgZXhwZXJpbWVudGFsIGFuZCBtaWdodCBiZSByZW1vdmVkLCByZW5hbWVkIG9yIGNoYW5nZWQgc2VtYW50aWNhbGx5IGJlZm9yZSBuZXh0IG1ham9yIHJlbGVhc2VcIikgfHxcbiAgaXNvSSh4cyA9PiB7XG4gICAgaWYgKGlzQXJyYXkoeHMpKSB7XG4gICAgICBjb25zdCBvID0ge31cbiAgICAgIGZvciAobGV0IGk9MCwgbj14cy5sZW5ndGg7IGk8bjsgKytpKSB7XG4gICAgICAgIGNvbnN0IHggPSB4c1tpXVxuICAgICAgICBvW3hbaWRdXSA9IHhcbiAgICAgIH1cbiAgICAgIHJldHVybiBvXG4gICAgfVxuICB9LFxuICBvID0+IHVuT2JqZWN0KG8pICYmIFIudmFsdWVzKG8pKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb3NlXG4iXX0= |
{ | ||
"name": "partial.lenses", | ||
"version": "3.8.2", | ||
"version": "3.9.0", | ||
"description": "Partial lenses", | ||
@@ -5,0 +5,0 @@ "main": "lib/partial.lenses.js", |
@@ -621,2 +621,20 @@ [ [Tutorial](#tutorial) | [Reference](#reference) | [Background](#background) ] | ||
#### <a name="fromArrayBy"></a>[`L.fromArrayBy(id)`](#fromArrayBy "L.fromArrayBy :: (p :: String) -> PLens [{p :: String, ...ps}] {String: {p :: String, ...ps}}") | ||
**`L.fromArrayBy` is experimental and might be removed, renamed or changed | ||
semantically before next major release.** | ||
`L.fromArrayBy(id)` (is an isomorphism) that converts an array of objects | ||
containing `id` properties into an object with the `id`s as keys and the array | ||
elements as values. | ||
For example: | ||
```js | ||
L.get(L.fromArrayBy("id"), [{id: 1, value: 2}, {id: 3, value: 4}]) | ||
// { '1': { id: 1, value: 2 }, '3': { id: 3, value: 4 } } | ||
L.set(P(L.fromArrayBy("id"), "3", "value"), 5, [{id: 1, value: 2}, {id: 3, value: 4}]) | ||
// [ { id: 1, value: 2 }, { value: 5, id: 3 } ] | ||
``` | ||
#### <a name="identity"></a>[`L.identity`](#identity "L.identity :: PLens s s") | ||
@@ -623,0 +641,0 @@ |
@@ -135,2 +135,3 @@ import * as R from "ramda" | ||
inner(getter(target)).map(focus => setter(focus, target)) | ||
const isoI = (to, from) => lensI(to, toConserve(from)) | ||
const collectI = (l, s) => l(Const)(Single)(s).value | ||
@@ -165,6 +166,6 @@ | ||
const replacer = (inn, out) => x => R.equals(x, inn) ? out : x | ||
const normalizer = fn => lensI(fn, toConserve(fn)) | ||
const normalizer = fn => isoI(fn, fn) | ||
export const replace = R.curry((inn, out) => | ||
lensI(replacer(inn, out), toConserve(replacer(out, inn)))) | ||
isoI(replacer(inn, out), replacer(out, inn))) | ||
@@ -307,2 +308,16 @@ export const defaults = replace(undefined) | ||
export const fromArrayBy = id => | ||
warn("`fromArrayBy` is experimental and might be removed, renamed or changed semantically before next major release") || | ||
isoI(xs => { | ||
if (isArray(xs)) { | ||
const o = {} | ||
for (let i=0, n=xs.length; i<n; ++i) { | ||
const x = xs[i] | ||
o[x[id]] = x | ||
} | ||
return o | ||
} | ||
}, | ||
o => unObject(o) && R.values(o)) | ||
export default compose |
@@ -303,2 +303,11 @@ import * as R from "ramda" | ||
describe("L.fromArrayBy", () => { | ||
testEq('L.get(L.fromArrayBy(""), undefined)', undefined) | ||
testEq('L.get(L.fromArrayBy("id"), [{id: 1}, {id: 2}, {id: 3}])', {"1":{"id":1},"2":{"id":2},"3":{"id":3}}) | ||
testEq('L.set(P(L.fromArrayBy("id"), "2", "x"), 1, [{id: 1}, {id: 2}, {id: 3}])', [{id: 1}, {id: 2, x: 1}, {id: 3}]) | ||
testEq('L.remove(P(L.fromArrayBy("id"), "1"), [{id: 1}, {id: 2}, {id: 3}])', [{id: 2}, {id: 3}]) | ||
testEq('L.remove(P(L.fromArrayBy("id"), "3"), [{id: 1}, {id: 2}, {id: 3}])', [{id: 1}, {id: 2}]) | ||
testEq('L.remove(P(L.fromArrayBy("id"), "3"), [{id: 3}])', undefined) | ||
}) | ||
const BST = { | ||
@@ -305,0 +314,0 @@ search: key => { |
Sorry, the diff of this file is not supported yet
211259
1023
1137