object-rewrite
Advanced tools
Comparing version 3.0.3 to 3.0.4
@@ -33,3 +33,5 @@ const assert = require('assert'); | ||
return prefix => ({ | ||
prefix, | ||
target: join([prefix, target]), | ||
targetRel: target, | ||
requires: requires.map(f => join([prefix, f])), | ||
@@ -46,2 +48,2 @@ type, | ||
}); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3BsdWdpbi5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwicGx1Z2luVHlwZXMiLCJqb2luIiwiaW5wdXQiLCJyZXN1bHQiLCJmaWx0ZXIiLCJlIiwiZW5kc1dpdGgiLCJzbGljZSIsInBsdWdpbiIsInR5cGUiLCJvcHRpb25zIiwiaW5jbHVkZXMiLCJPYmplY3QiLCJBcnJheSIsImlzQXJyYXkiLCJrZXlzIiwibGVuZ3RoIiwidGFyZ2V0IiwicmVxdWlyZXMiLCJmbiIsInByZWZpeCIsIm1hcCIsImYiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVkdWNlIiwicHJldiIsInQiLCJhc3NpZ24iLCJ0b0xvd2VyQ2FzZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFFQSxNQUFNQyxXQUFXLEdBQUcsQ0FBQyxRQUFELEVBQVcsUUFBWCxFQUFxQixNQUFyQixDQUFwQjs7QUFFQSxNQUFNQyxJQUFJLEdBQUlDLEtBQUQsSUFBVztBQUN0QixRQUFNQyxNQUFNLEdBQUdELEtBQUssQ0FBQ0UsTUFBTixDQUFhQyxDQUFDLElBQUksQ0FBQyxDQUFDQSxDQUFwQixFQUF1QkosSUFBdkIsQ0FBNEIsR0FBNUIsQ0FBZjs7QUFDQSxNQUFJRSxNQUFNLEtBQUssR0FBZixFQUFvQjtBQUNsQixXQUFPLEVBQVA7QUFDRDs7QUFDRCxNQUFJQSxNQUFNLENBQUNHLFFBQVAsQ0FBZ0IsSUFBaEIsQ0FBSixFQUEyQjtBQUN6QixXQUFPSCxNQUFNLENBQUNJLEtBQVAsQ0FBYSxDQUFiLEVBQWdCLENBQUMsQ0FBakIsQ0FBUDtBQUNEOztBQUNELFNBQU9KLE1BQVA7QUFDRCxDQVREOztBQVdBLE1BQU1LLE1BQU0sR0FBRyxDQUFDQyxJQUFELEVBQU9DLE9BQVAsS0FBbUI7QUFDaENaLEVBQUFBLE1BQU0sQ0FBQ0UsV0FBVyxDQUFDVyxRQUFaLENBQXFCRixJQUFyQixDQUFELENBQU47QUFDQVgsRUFBQUEsTUFBTSxDQUFDWSxPQUFPLFlBQVlFLE1BQW5CLElBQTZCLENBQUNDLEtBQUssQ0FBQ0MsT0FBTixDQUFjSixPQUFkLENBQS9CLENBQU47QUFDQVosRUFBQUEsTUFBTSxDQUFDYyxNQUFNLENBQUNHLElBQVAsQ0FBWUwsT0FBWixFQUFxQk0sTUFBckIsS0FBZ0MsQ0FBakMsQ0FBTjtBQUVBLFFBQU07QUFBRUMsSUFBQUEsTUFBRjtBQUFVQyxJQUFBQSxRQUFWO0FBQW9CQyxJQUFBQTtBQUFwQixNQUEyQlQsT0FBakM7QUFDQVosRUFBQUEsTUFBTSxDQUFDLE9BQU9tQixNQUFQLEtBQWtCLFFBQW5CLENBQU47QUFDQW5CLEVBQUFBLE1BQU0sQ0FBQ2UsS0FBSyxDQUFDQyxPQUFOLENBQWNJLFFBQWQsQ0FBRCxDQUFOO0FBQ0FwQixFQUFBQSxNQUFNLENBQUMsT0FBT3FCLEVBQVAsS0FBYyxVQUFmLENBQU47QUFDQXJCLEVBQUFBLE1BQU0sQ0FBQ21CLE1BQU0sS0FBSyxFQUFaLEVBQWdCLGtCQUFoQixDQUFOO0FBRUEsU0FBT0csTUFBTSxLQUFLO0FBQ2hCSCxJQUFBQSxNQUFNLEVBQUVoQixJQUFJLENBQUMsQ0FBQ21CLE1BQUQsRUFBU0gsTUFBVCxDQUFELENBREk7QUFFaEJDLElBQUFBLFFBQVEsRUFBRUEsUUFBUSxDQUFDRyxHQUFULENBQWFDLENBQUMsSUFBSXJCLElBQUksQ0FBQyxDQUFDbUIsTUFBRCxFQUFTRSxDQUFULENBQUQsQ0FBdEIsQ0FGTTtBQUdoQmIsSUFBQUEsSUFIZ0I7QUFJaEJVLElBQUFBO0FBSmdCLEdBQUwsQ0FBYjtBQU1ELENBakJEOztBQW1CQUksTUFBTSxDQUFDQyxPQUFQLEdBQWlCeEIsV0FBVyxDQUFDeUIsTUFBWixDQUFtQixDQUFDQyxJQUFELEVBQU9DLENBQVAsS0FBYWYsTUFBTSxDQUFDZ0IsTUFBUCxDQUFjRixJQUFkLEVBQW9CO0FBQ25FLEdBQUUsR0FBRUMsQ0FBQyxDQUFDRSxXQUFGLEVBQWdCLFFBQXBCLEdBQThCbkIsT0FBTyxJQUFJRixNQUFNLENBQUNtQixDQUFELEVBQUlqQixPQUFKO0FBRG9CLENBQXBCLENBQWhDLEVBRWI7QUFBRVYsRUFBQUE7QUFBRixDQUZhLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7XG5cbmNvbnN0IHBsdWdpblR5cGVzID0gWydGSUxURVInLCAnSU5KRUNUJywgJ1NPUlQnXTtcblxuY29uc3Qgam9pbiA9IChpbnB1dCkgPT4ge1xuICBjb25zdCByZXN1bHQgPSBpbnB1dC5maWx0ZXIoZSA9PiAhIWUpLmpvaW4oJy4nKTtcbiAgaWYgKHJlc3VsdCA9PT0gJyonKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGlmIChyZXN1bHQuZW5kc1dpdGgoJy4qJykpIHtcbiAgICByZXR1cm4gcmVzdWx0LnNsaWNlKDAsIC0xKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuY29uc3QgcGx1Z2luID0gKHR5cGUsIG9wdGlvbnMpID0+IHtcbiAgYXNzZXJ0KHBsdWdpblR5cGVzLmluY2x1ZGVzKHR5cGUpKTtcbiAgYXNzZXJ0KG9wdGlvbnMgaW5zdGFuY2VvZiBPYmplY3QgJiYgIUFycmF5LmlzQXJyYXkob3B0aW9ucykpO1xuICBhc3NlcnQoT2JqZWN0LmtleXMob3B0aW9ucykubGVuZ3RoID09PSAzKTtcblxuICBjb25zdCB7IHRhcmdldCwgcmVxdWlyZXMsIGZuIH0gPSBvcHRpb25zO1xuICBhc3NlcnQodHlwZW9mIHRhcmdldCA9PT0gJ3N0cmluZycpO1xuICBhc3NlcnQoQXJyYXkuaXNBcnJheShyZXF1aXJlcykpO1xuICBhc3NlcnQodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKTtcbiAgYXNzZXJ0KHRhcmdldCAhPT0gJycsICdVc2UgXCIqXCIgaW5zdGVhZC4nKTtcblxuICByZXR1cm4gcHJlZml4ID0+ICh7XG4gICAgdGFyZ2V0OiBqb2luKFtwcmVmaXgsIHRhcmdldF0pLFxuICAgIHJlcXVpcmVzOiByZXF1aXJlcy5tYXAoZiA9PiBqb2luKFtwcmVmaXgsIGZdKSksXG4gICAgdHlwZSxcbiAgICBmblxuICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gcGx1Z2luVHlwZXMucmVkdWNlKChwcmV2LCB0KSA9PiBPYmplY3QuYXNzaWduKHByZXYsIHtcbiAgW2Ake3QudG9Mb3dlckNhc2UoKX1QbHVnaW5gXTogb3B0aW9ucyA9PiBwbHVnaW4odCwgb3B0aW9ucylcbn0pLCB7IHBsdWdpblR5cGVzIH0pO1xuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3BsdWdpbi5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwicGx1Z2luVHlwZXMiLCJqb2luIiwiaW5wdXQiLCJyZXN1bHQiLCJmaWx0ZXIiLCJlIiwiZW5kc1dpdGgiLCJzbGljZSIsInBsdWdpbiIsInR5cGUiLCJvcHRpb25zIiwiaW5jbHVkZXMiLCJPYmplY3QiLCJBcnJheSIsImlzQXJyYXkiLCJrZXlzIiwibGVuZ3RoIiwidGFyZ2V0IiwicmVxdWlyZXMiLCJmbiIsInByZWZpeCIsInRhcmdldFJlbCIsIm1hcCIsImYiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVkdWNlIiwicHJldiIsInQiLCJhc3NpZ24iLCJ0b0xvd2VyQ2FzZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFFQSxNQUFNQyxXQUFXLEdBQUcsQ0FBQyxRQUFELEVBQVcsUUFBWCxFQUFxQixNQUFyQixDQUFwQjs7QUFFQSxNQUFNQyxJQUFJLEdBQUlDLEtBQUQsSUFBVztBQUN0QixRQUFNQyxNQUFNLEdBQUdELEtBQUssQ0FBQ0UsTUFBTixDQUFhQyxDQUFDLElBQUksQ0FBQyxDQUFDQSxDQUFwQixFQUF1QkosSUFBdkIsQ0FBNEIsR0FBNUIsQ0FBZjs7QUFDQSxNQUFJRSxNQUFNLEtBQUssR0FBZixFQUFvQjtBQUNsQixXQUFPLEVBQVA7QUFDRDs7QUFDRCxNQUFJQSxNQUFNLENBQUNHLFFBQVAsQ0FBZ0IsSUFBaEIsQ0FBSixFQUEyQjtBQUN6QixXQUFPSCxNQUFNLENBQUNJLEtBQVAsQ0FBYSxDQUFiLEVBQWdCLENBQUMsQ0FBakIsQ0FBUDtBQUNEOztBQUNELFNBQU9KLE1BQVA7QUFDRCxDQVREOztBQVdBLE1BQU1LLE1BQU0sR0FBRyxDQUFDQyxJQUFELEVBQU9DLE9BQVAsS0FBbUI7QUFDaENaLEVBQUFBLE1BQU0sQ0FBQ0UsV0FBVyxDQUFDVyxRQUFaLENBQXFCRixJQUFyQixDQUFELENBQU47QUFDQVgsRUFBQUEsTUFBTSxDQUFDWSxPQUFPLFlBQVlFLE1BQW5CLElBQTZCLENBQUNDLEtBQUssQ0FBQ0MsT0FBTixDQUFjSixPQUFkLENBQS9CLENBQU47QUFDQVosRUFBQUEsTUFBTSxDQUFDYyxNQUFNLENBQUNHLElBQVAsQ0FBWUwsT0FBWixFQUFxQk0sTUFBckIsS0FBZ0MsQ0FBakMsQ0FBTjtBQUVBLFFBQU07QUFBRUMsSUFBQUEsTUFBRjtBQUFVQyxJQUFBQSxRQUFWO0FBQW9CQyxJQUFBQTtBQUFwQixNQUEyQlQsT0FBakM7QUFDQVosRUFBQUEsTUFBTSxDQUFDLE9BQU9tQixNQUFQLEtBQWtCLFFBQW5CLENBQU47QUFDQW5CLEVBQUFBLE1BQU0sQ0FBQ2UsS0FBSyxDQUFDQyxPQUFOLENBQWNJLFFBQWQsQ0FBRCxDQUFOO0FBQ0FwQixFQUFBQSxNQUFNLENBQUMsT0FBT3FCLEVBQVAsS0FBYyxVQUFmLENBQU47QUFDQXJCLEVBQUFBLE1BQU0sQ0FBQ21CLE1BQU0sS0FBSyxFQUFaLEVBQWdCLGtCQUFoQixDQUFOO0FBRUEsU0FBT0csTUFBTSxLQUFLO0FBQ2hCQSxJQUFBQSxNQURnQjtBQUVoQkgsSUFBQUEsTUFBTSxFQUFFaEIsSUFBSSxDQUFDLENBQUNtQixNQUFELEVBQVNILE1BQVQsQ0FBRCxDQUZJO0FBR2hCSSxJQUFBQSxTQUFTLEVBQUVKLE1BSEs7QUFJaEJDLElBQUFBLFFBQVEsRUFBRUEsUUFBUSxDQUFDSSxHQUFULENBQWFDLENBQUMsSUFBSXRCLElBQUksQ0FBQyxDQUFDbUIsTUFBRCxFQUFTRyxDQUFULENBQUQsQ0FBdEIsQ0FKTTtBQUtoQmQsSUFBQUEsSUFMZ0I7QUFNaEJVLElBQUFBO0FBTmdCLEdBQUwsQ0FBYjtBQVFELENBbkJEOztBQXFCQUssTUFBTSxDQUFDQyxPQUFQLEdBQWlCekIsV0FBVyxDQUFDMEIsTUFBWixDQUFtQixDQUFDQyxJQUFELEVBQU9DLENBQVAsS0FBYWhCLE1BQU0sQ0FBQ2lCLE1BQVAsQ0FBY0YsSUFBZCxFQUFvQjtBQUNuRSxHQUFFLEdBQUVDLENBQUMsQ0FBQ0UsV0FBRixFQUFnQixRQUFwQixHQUE4QnBCLE9BQU8sSUFBSUYsTUFBTSxDQUFDb0IsQ0FBRCxFQUFJbEIsT0FBSjtBQURvQixDQUFwQixDQUFoQyxFQUViO0FBQUVWLEVBQUFBO0FBQUYsQ0FGYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpO1xuXG5jb25zdCBwbHVnaW5UeXBlcyA9IFsnRklMVEVSJywgJ0lOSkVDVCcsICdTT1JUJ107XG5cbmNvbnN0IGpvaW4gPSAoaW5wdXQpID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gaW5wdXQuZmlsdGVyKGUgPT4gISFlKS5qb2luKCcuJyk7XG4gIGlmIChyZXN1bHQgPT09ICcqJykge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBpZiAocmVzdWx0LmVuZHNXaXRoKCcuKicpKSB7XG4gICAgcmV0dXJuIHJlc3VsdC5zbGljZSgwLCAtMSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNvbnN0IHBsdWdpbiA9ICh0eXBlLCBvcHRpb25zKSA9PiB7XG4gIGFzc2VydChwbHVnaW5UeXBlcy5pbmNsdWRlcyh0eXBlKSk7XG4gIGFzc2VydChvcHRpb25zIGluc3RhbmNlb2YgT2JqZWN0ICYmICFBcnJheS5pc0FycmF5KG9wdGlvbnMpKTtcbiAgYXNzZXJ0KE9iamVjdC5rZXlzKG9wdGlvbnMpLmxlbmd0aCA9PT0gMyk7XG5cbiAgY29uc3QgeyB0YXJnZXQsIHJlcXVpcmVzLCBmbiB9ID0gb3B0aW9ucztcbiAgYXNzZXJ0KHR5cGVvZiB0YXJnZXQgPT09ICdzdHJpbmcnKTtcbiAgYXNzZXJ0KEFycmF5LmlzQXJyYXkocmVxdWlyZXMpKTtcbiAgYXNzZXJ0KHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJyk7XG4gIGFzc2VydCh0YXJnZXQgIT09ICcnLCAnVXNlIFwiKlwiIGluc3RlYWQuJyk7XG5cbiAgcmV0dXJuIHByZWZpeCA9PiAoe1xuICAgIHByZWZpeCxcbiAgICB0YXJnZXQ6IGpvaW4oW3ByZWZpeCwgdGFyZ2V0XSksXG4gICAgdGFyZ2V0UmVsOiB0YXJnZXQsXG4gICAgcmVxdWlyZXM6IHJlcXVpcmVzLm1hcChmID0+IGpvaW4oW3ByZWZpeCwgZl0pKSxcbiAgICB0eXBlLFxuICAgIGZuXG4gIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBwbHVnaW5UeXBlcy5yZWR1Y2UoKHByZXYsIHQpID0+IE9iamVjdC5hc3NpZ24ocHJldiwge1xuICBbYCR7dC50b0xvd2VyQ2FzZSgpfVBsdWdpbmBdOiBvcHRpb25zID0+IHBsdWdpbih0LCBvcHRpb25zKVxufSksIHsgcGx1Z2luVHlwZXMgfSk7XG4iXX0= |
const assert = require('assert'); | ||
const set = require('lodash.set'); | ||
const objectScan = require('object-scan'); | ||
@@ -16,4 +18,4 @@ | ||
const targetToPlugins = plugins.reduce((prev, plugin) => { | ||
const target = plugin.target.endsWith('.') ? plugin.target.slice(0, -1) : plugin.target; | ||
const key = type === 'INJECT' ? target.split('.').slice(0, -1).join('.') : target; | ||
// eslint-disable-next-line no-nested-ternary | ||
const key = type === 'INJECT' ? plugin.prefix : plugin.target.endsWith('.') ? plugin.target.slice(0, -1) : plugin.target; | ||
@@ -40,5 +42,3 @@ if (prev[key] === undefined) { | ||
case 'INJECT': | ||
ps.forEach(p => Object.assign(value, { | ||
[p.target.split('.').pop()]: p.fn(args) | ||
})); | ||
ps.forEach(p => set(value, p.targetRel, p.fn(args))); | ||
return value; | ||
@@ -200,2 +200,2 @@ | ||
}; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3Jld3JpdGVyLmpzIl0sIm5hbWVzIjpbImFzc2VydCIsInJlcXVpcmUiLCJvYmplY3RTY2FuIiwib2JqZWN0RmllbGRzIiwic29ydEZuIiwicGx1Z2luVHlwZXMiLCJjb21waWxlVGFyZ2V0VG9DYWxsYmFjayIsInR5cGUiLCJwbHVnaW5zIiwiZXZlcnkiLCJwIiwidGFyZ2V0VG9QbHVnaW5zIiwicmVkdWNlIiwicHJldiIsInBsdWdpbiIsInRhcmdldCIsImVuZHNXaXRoIiwic2xpY2UiLCJrZXkiLCJzcGxpdCIsImpvaW4iLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJwdXNoIiwiZW50cmllcyIsInBzIiwidmFsdWUiLCJwYXJlbnRzIiwiY29udGV4dCIsImFyZ3MiLCJmb3JFYWNoIiwicG9wIiwiZm4iLCJtYXAiLCJjb21waWxlTWV0YSIsImZpZWxkcyIsInBsdWdpbnNCeVR5cGUiLCJjIiwiaW5hY3RpdmVQbHVnaW5zIiwicmVxdWlyZWRGaWVsZHMiLCJpZ25vcmVkRmllbGRzIiwiU2V0IiwiaSIsImxlbmd0aCIsImZpZWxkIiwiaiIsInN0YXJ0c1dpdGgiLCJyZXF1aXJlcyIsInNwbGljZSIsImluY2x1ZGVzIiwiYWRkIiwidG9Mb3dlckNhc2UiLCJmaWVsZHNUb1JlcXVlc3QiLCJmaWx0ZXIiLCJlIiwiaGFzIiwibW9kdWxlIiwiZXhwb3J0cyIsInBsdWdpbk1hcCIsImRhdGFTdG9yZUZpZWxkcyIsIkFycmF5IiwiaXNBcnJheSIsInByZWZpeCIsImFsbG93ZWRGaWVsZHMiLCJpbml0IiwiZiIsIkVycm9yIiwiaW5qZWN0Q2JzIiwiZmlsdGVyQ2JzIiwic29ydENicyIsImluamVjdFJld3JpdGVyIiwiaW5wdXQiLCJrZXlzIiwidXNlQXJyYXlTZWxlY3RvciIsImpvaW5lZCIsImZpbHRlckZuIiwibWF0Y2hlZEJ5IiwibSIsImZpbHRlclJld3JpdGVyIiwicmVzdWx0Iiwic29tZSIsInBhcmVudCIsInNvcnRSZXdyaXRlciIsImxvb2t1cHMiLCJNYXAiLCJsb29rdXAiLCJzZXQiLCJzb3J0IiwiYSIsImIiLCJnZXQiLCJyZXdyaXRlIiwicmV0YWluIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTUUsWUFBWSxHQUFHRixPQUFPLENBQUMsZUFBRCxDQUE1Qjs7QUFDQSxNQUFNRyxNQUFNLEdBQUdILE9BQU8sQ0FBQyxpQkFBRCxDQUF0Qjs7QUFDQSxNQUFNO0FBQUVJLEVBQUFBO0FBQUYsSUFBa0JKLE9BQU8sQ0FBQyxVQUFELENBQS9COztBQUVBLE1BQU1LLHVCQUF1QixHQUFHLENBQUNDLElBQUQsRUFBT0MsT0FBUCxLQUFtQjtBQUNqRFIsRUFBQUEsTUFBTSxDQUFDUSxPQUFPLENBQUNDLEtBQVIsQ0FBY0MsQ0FBQyxJQUFJQSxDQUFDLENBQUNILElBQUYsS0FBV0EsSUFBOUIsQ0FBRCxDQUFOO0FBRUEsUUFBTUksZUFBZSxHQUFHSCxPQUFPLENBQzVCSSxNQURxQixDQUNkLENBQUNDLElBQUQsRUFBT0MsTUFBUCxLQUFrQjtBQUN4QixVQUFNQyxNQUFNLEdBQUdELE1BQU0sQ0FBQ0MsTUFBUCxDQUFjQyxRQUFkLENBQXVCLEdBQXZCLElBQThCRixNQUFNLENBQUNDLE1BQVAsQ0FBY0UsS0FBZCxDQUFvQixDQUFwQixFQUF1QixDQUFDLENBQXhCLENBQTlCLEdBQTJESCxNQUFNLENBQUNDLE1BQWpGO0FBQ0EsVUFBTUcsR0FBRyxHQUFHWCxJQUFJLEtBQUssUUFBVCxHQUFvQlEsTUFBTSxDQUFDSSxLQUFQLENBQWEsR0FBYixFQUFrQkYsS0FBbEIsQ0FBd0IsQ0FBeEIsRUFBMkIsQ0FBQyxDQUE1QixFQUErQkcsSUFBL0IsQ0FBb0MsR0FBcEMsQ0FBcEIsR0FBK0RMLE1BQTNFOztBQUNBLFFBQUlGLElBQUksQ0FBQ0ssR0FBRCxDQUFKLEtBQWNHLFNBQWxC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K0I7QUFDN0JoQixjQUFBQSxPQUFPLENBQUMsQ0FBRCxDQUFQLENBQVc0RCxJQUFYLENBQWdCLENBQUNDLENBQUQsRUFBSUMsQ0FBSixLQUFVdEYsTUFBTSxDQUFDa0YsTUFBTSxDQUFDSyxHQUFQLENBQVdGLENBQVgsQ0FBRCxFQUFnQkgsTUFBTSxDQUFDSyxHQUFQLENBQVdELENBQVgsQ0FBaEIsQ0FBaEM7QUFDQU4sY0FBQUEsT0FBTyxDQUFDbkMsTUFBUixDQUFlL0IsR0FBRyxDQUFDMEIsTUFBSixHQUFhLENBQTVCO0FBQ0Q7O0FBQ0QsbUJBQU8sSUFBUDtBQUNEO0FBZnFDLFNBQXZCLENBQVYsQ0FnQko0QixLQWhCSSxDQUFQO0FBaUJELE9BbkJEOztBQXFCQSxhQUFPO0FBQ0xuQixRQUFBQSxlQURLO0FBRUx1QyxRQUFBQSxPQUFPLEVBQUUsQ0FBQ3BCLEtBQUQsRUFBUTNDLE9BQU8sR0FBRyxFQUFsQixLQUF5QjtBQUNoQzdCLFVBQUFBLE1BQU0sQ0FBQzZCLE9BQU8sWUFBWVAsTUFBbkIsSUFBNkIsQ0FBQ3VDLEtBQUssQ0FBQ0MsT0FBTixDQUFjakMsT0FBZCxDQUEvQixDQUFOO0FBQ0EwQyxVQUFBQSxjQUFjLENBQUNDLEtBQUQsRUFBUTNDLE9BQVIsQ0FBZDtBQUNBa0QsVUFBQUEsY0FBYyxDQUFDUCxLQUFELEVBQVEzQyxPQUFSLENBQWQ7QUFDQXNELFVBQUFBLFlBQVksQ0FBQ1gsS0FBRCxFQUFRM0MsT0FBUixDQUFaO0FBQ0ExQixVQUFBQSxZQUFZLENBQUMwRixNQUFiLENBQW9CckIsS0FBcEIsRUFBMkJwQyxNQUEzQjtBQUNEO0FBUkksT0FBUDtBQVVEO0FBOUVJLEdBQVA7QUFnRkQsQ0EvRkQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTtcbmNvbnN0IG9iamVjdFNjYW4gPSByZXF1aXJlKCdvYmplY3Qtc2NhbicpO1xuY29uc3Qgb2JqZWN0RmllbGRzID0gcmVxdWlyZSgnb2JqZWN0LWZpZWxkcycpO1xuY29uc3Qgc29ydEZuID0gcmVxdWlyZSgnLi4vdXRpbC9zb3J0LWZuJyk7XG5jb25zdCB7IHBsdWdpblR5cGVzIH0gPSByZXF1aXJlKCcuL3BsdWdpbicpO1xuXG5jb25zdCBjb21waWxlVGFyZ2V0VG9DYWxsYmFjayA9ICh0eXBlLCBwbHVnaW5zKSA9PiB7XG4gIGFzc2VydChwbHVnaW5zLmV2ZXJ5KHAgPT4gcC50eXBlID09PSB0eXBlKSk7XG5cbiAgY29uc3QgdGFyZ2V0VG9QbHVnaW5zID0gcGx1Z2luc1xuICAgIC5yZWR1Y2UoKHByZXYsIHBsdWdpbikgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gcGx1Z2luLnRhcmdldC5lbmRzV2l0aCgnLicpID8gcGx1Z2luLnRhcmdldC5zbGljZSgwLCAtMSkgOiBwbHVnaW4udGFyZ2V0O1xuICAgICAgY29uc3Qga2V5ID0gdHlwZSA9PT0gJ0lOSkVDVCcgPyB0YXJnZXQuc3BsaXQoJy4nKS5zbGljZSgwLCAtMSkuam9pbignLicpIDogdGFyZ2V0O1xuICAgICAgaWYgKHByZXZba2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24ocHJldiwgeyBba2V5XTogW10gfSk7XG4gICAgICB9XG4gICAgICBwcmV2W2tleV0ucHVzaChwbHVnaW4pO1xuICAgICAgcmV0dXJuIHByZXY7XG4gICAgfSwge30pO1xuXG4gIHJldHVybiBPYmplY3RcbiAgICAuZW50cmllcyh0YXJnZXRUb1BsdWdpbnMpXG4gICAgLnJlZHVjZSgocHJldiwgW3RhcmdldCwgcHNdKSA9PiBPYmplY3QuYXNzaWduKHByZXYsIHtcbiAgICAgIFt0YXJnZXRdOiAoa2V5LCB2YWx1ZSwgcGFyZW50cywgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBhcmdzID0ge1xuICAgICAgICAgIGtleSwgdmFsdWUsIHBhcmVudHMsIGNvbnRleHRcbiAgICAgICAgfTtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSAnSU5KRUNUJzpcbiAgICAgICAgICAgIHBzLmZvckVhY2gocCA9PiBPYmplY3QuYXNzaWduKHZhbHVlLCB7IFtwLnRhcmdldC5zcGxpdCgnLicpLnBvcCgpXTogcC5mbihhcmdzKSB9KSk7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgY2FzZSAnRklMVEVSJzpcbiAgICAgICAgICAgIHJldHVybiBwcy5ldmVyeShwID0+IHAuZm4oYXJncykpO1xuICAgICAgICAgIGNhc2UgJ1NPUlQnOlxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gcHMubWFwKHAgPT4gcC5mbihhcmdzKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSwge30pO1xufTtcblxuY29uc3QgY29tcGlsZU1ldGEgPSAocGx1Z2lucywgZmllbGRzKSA9PiB7XG4gIGNvbnN0IHBsdWdpbnNCeVR5cGUgPSBwbHVnaW5UeXBlcy5yZWR1Y2UoKHAsIGMpID0+IE9iamVjdC5hc3NpZ24ocCwgeyBbY106IFtdIH0pLCB7fSk7XG5cbiAgY29uc3QgaW5hY3RpdmVQbHVnaW5zID0gWy4uLnBsdWdpbnNdO1xuICBjb25zdCByZXF1aXJlZEZpZWxkcyA9IFsuLi5maWVsZHNdO1xuICBjb25zdCBpZ25vcmVkRmllbGRzID0gbmV3IFNldCgpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcmVxdWlyZWRGaWVsZHMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICBjb25zdCBmaWVsZCA9IHJlcXVpcmVkRmllbGRzW2ldO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgaW5hY3RpdmVQbHVnaW5zLmxlbmd0aDsgaiArPSAxKSB7XG4gICAgICBjb25zdCBwbHVnaW4gPSBpbmFjdGl2ZVBsdWdpbnNbal07XG4gICAgICBpZiAoXG4gICAgICAgIGZpZWxkID09PSBwbHVnaW4udGFyZ2V0XG4gICAgICAgIHx8IChwbHVnaW4udHlwZSAhPT0gJ0lOSkVDVCcgJiYgZmllbGQuc3RhcnRzV2l0aChwbHVnaW4udGFyZ2V0KSlcbiAgICAgICkge1xuICAgICAgICByZXF1aXJlZEZpZWxkcy5wdXNoKC4uLnBsdWdpbi5yZXF1aXJlcyk7XG4gICAgICAgIGluYWN0aXZlUGx1Z2lucy5zcGxpY2UoaiwgMSk7XG4gICAgICAgIGogLT0gMTtcbiAgICAgICAgcGx1Z2luc0J5VHlwZVtwbHVnaW4udHlwZV0ucHVzaChwbHVnaW4pO1xuICAgICAgICBpZiAocGx1Z2luLnR5cGUgPT09ICdJTkpFQ1QnICYmICFwbHVnaW4ucmVxdWlyZXMuaW5jbHVkZXMocGx1Z2luLnRhcmdldCkpIHtcbiAgICAgICAgICBpZ25vcmVkRmllbGRzLmFkZChwbHVnaW4udGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhwbHVnaW5zQnlUeXBlKS5yZWR1Y2UoKHAsIFt0eXBlLCBwc10pID0+IE9iamVjdC5hc3NpZ24ocCwge1xuICAgIFtgJHt0eXBlLnRvTG93ZXJDYXNlKCl9Q2JzYF06IGNvbXBpbGVUYXJnZXRUb0NhbGxiYWNrKHR5cGUsIHBzKVxuICB9KSwge1xuICAgIGZpZWxkc1RvUmVxdWVzdDogWy4uLm5ldyBTZXQocmVxdWlyZWRGaWVsZHMpXS5maWx0ZXIoZSA9PiAhaWdub3JlZEZpZWxkcy5oYXMoZSkpXG4gIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSAocGx1Z2luTWFwLCBkYXRhU3RvcmVGaWVsZHMpID0+IHtcbiAgYXNzZXJ0KHBsdWdpbk1hcCBpbnN0YW5jZW9mIE9iamVjdCAmJiAhQXJyYXkuaXNBcnJheShwbHVnaW5NYXApKTtcbiAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoZGF0YVN0b3JlRmllbGRzKSAmJiBkYXRhU3RvcmVGaWVsZHMuZXZlcnkoZSA9PiB0eXBlb2YgZSA9PT0gJ3N0cmluZycpKTtcblxuICBjb25zdCBwbHVnaW5zID0gT2JqZWN0LmVudHJpZXMocGx1Z2luTWFwKS5yZWR1Y2UoKHByZXYsIFtwcmVmaXgsIHBzXSkgPT4ge1xuICAgIHBzLmZvckVhY2gocCA9PiBwcmV2LnB1c2gocChwcmVmaXgpKSk7XG4gICAgcmV0dXJuIHByZXY7XG4gIH0sIFtdKTtcbiAgY29uc3QgYWxsb3dlZEZpZWxkcyA9IFsuLi5wbHVnaW5zLnJlZHVjZSgocCwgYykgPT4ge1xuICAgIGlmIChjLnR5cGUgPT09ICdJTkpFQ1QnKSB7XG4gICAgICBwLmFkZChjLnRhcmdldCk7XG4gICAgfVxuICAgIHJldHVybiBwO1xuICB9LCBuZXcgU2V0KGRhdGFTdG9yZUZpZWxkcykpXTtcblxuICByZXR1cm4ge1xuICAgIGFsbG93ZWRGaWVsZHMsXG4gICAgaW5pdDogKGZpZWxkcykgPT4ge1xuICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoZmllbGRzKSk7XG5cbiAgICAgIGlmICghZmllbGRzLmV2ZXJ5KGYgPT4gYWxsb3dlZEZpZWxkcy5pbmNsdWRlcyhmKSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBCYWQgZmllbGQgcmVxdWVzdGVkOiAke2ZpZWxkcy5maWx0ZXIoZiA9PiAhYWxsb3dlZEZpZWxkcy5pbmNsdWRlcyhmKSkuam9pbignLCAnKX1gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qge1xuICAgICAgICBpbmplY3RDYnMsXG4gICAgICAgIGZpbHRlckNicyxcbiAgICAgICAgc29ydENicyxcbiAgICAgICAgZmllbGRzVG9SZXF1ZXN0XG4gICAgICB9ID0gY29tcGlsZU1ldGEocGx1Z2lucywgZmllbGRzKTtcblxuICAgICAgYXNzZXJ0KFxuICAgICAgICBmaWVsZHNUb1JlcXVlc3QuZXZlcnkoZiA9PiBkYXRhU3RvcmVGaWVsZHMuaW5jbHVkZXMoZikpLFxuICAgICAgICBgQmFkIEZpZWxkIFJlcXVlc3RlZDogJHtmaWVsZHNUb1JlcXVlc3QuZmlsdGVyKGYgPT4gIWRhdGFTdG9yZUZpZWxkcy5pbmNsdWRlcyhmKSl9YFxuICAgICAgKTtcblxuICAgICAgY29uc3QgaW5qZWN0UmV3cml0ZXIgPSAoaW5wdXQsIGNvbnRleHQpID0+IG9iamVjdFNjYW4oT2JqZWN0LmtleXMoaW5qZWN0Q2JzKSwge1xuICAgICAgICB1c2VBcnJheVNlbGVjdG9yOiBmYWxzZSxcbiAgICAgICAgam9pbmVkOiBmYWxzZSxcbiAgICAgICAgZmlsdGVyRm46IChrZXksIHZhbHVlLCB7IG1hdGNoZWRCeSwgcGFyZW50cyB9KSA9PiB7XG4gICAgICAgICAgbWF0Y2hlZEJ5LmZvckVhY2goKG0pID0+IHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odmFsdWUsIGluamVjdENic1ttXShrZXksIHZhbHVlLCBwYXJlbnRzLCBjb250ZXh0KSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pKGlucHV0KTtcbiAgICAgIGNvbnN0IGZpbHRlclJld3JpdGVyID0gKGlucHV0LCBjb250ZXh0KSA9PiBvYmplY3RTY2FuKE9iamVjdC5rZXlzKGZpbHRlckNicyksIHtcbiAgICAgICAgdXNlQXJyYXlTZWxlY3RvcjogZmFsc2UsXG4gICAgICAgIGpvaW5lZDogZmFsc2UsXG4gICAgICAgIGZpbHRlckZuOiAoa2V5LCB2YWx1ZSwgeyBtYXRjaGVkQnksIHBhcmVudHMgfSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IG1hdGNoZWRCeS5zb21lKG0gPT4gZmlsdGVyQ2JzW21dKGtleSwgdmFsdWUsIHBhcmVudHMsIGNvbnRleHQpID09PSB0cnVlKTtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSBmYWxzZSkge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0ga2V5Lmxlbmd0aCA9PT0gMSA/IGlucHV0IDogcGFyZW50c1swXTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhcmVudCkpIHtcbiAgICAgICAgICAgICAgcGFyZW50LnNwbGljZShrZXlba2V5Lmxlbmd0aCAtIDFdLCAxKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGRlbGV0ZSBwYXJlbnRba2V5W2tleS5sZW5ndGggLSAxXV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH0pKGlucHV0KTtcbiAgICAgIGNvbnN0IHNvcnRSZXdyaXRlciA9IChpbnB1dCwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBsb29rdXBzID0gW107XG4gICAgICAgIHJldHVybiBvYmplY3RTY2FuKE9iamVjdC5rZXlzKHNvcnRDYnMpLCB7XG4gICAgICAgICAgdXNlQXJyYXlTZWxlY3RvcjogZmFsc2UsXG4gICAgICAgICAgam9pbmVkOiBmYWxzZSxcbiAgICAgICAgICBmaWx0ZXJGbjogKGtleSwgdmFsdWUsIHsgbWF0Y2hlZEJ5LCBwYXJlbnRzIH0pID0+IHtcbiAgICAgICAgICAgIGFzc2VydChBcnJheS5pc0FycmF5KHBhcmVudHNbMF0pLCAnU29ydCBtdXN0IGJlIG9uIFwiQXJyYXlcIiB0eXBlLicpO1xuICAgICAgICAgICAgaWYgKGxvb2t1cHNba2V5Lmxlbmd0aCAtIDFdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgbG9va3Vwc1trZXkubGVuZ3RoIC0gMV0gPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsb29rdXAgPSBsb29rdXBzW2tleS5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGxvb2t1cC5zZXQodmFsdWUsIHNvcnRDYnNbbWF0Y2hlZEJ5WzBdXShrZXksIHZhbHVlLCBwYXJlbnRzLCBjb250ZXh0KSk7XG4gICAgICAgICAgICBpZiAoa2V5W2tleS5sZW5ndGggLSAxXSA9PT0gMCkge1xuICAgICAgICAgICAgICBwYXJlbnRzWzBdLnNvcnQoKGEsIGIpID0+IHNvcnRGbihsb29rdXAuZ2V0KGEpLCBsb29rdXAuZ2V0KGIpKSk7XG4gICAgICAgICAgICAgIGxvb2t1cHMuc3BsaWNlKGtleS5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkoaW5wdXQpO1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZmllbGRzVG9SZXF1ZXN0LFxuICAgICAgICByZXdyaXRlOiAoaW5wdXQsIGNvbnRleHQgPSB7fSkgPT4ge1xuICAgICAgICAgIGFzc2VydChjb250ZXh0IGluc3RhbmNlb2YgT2JqZWN0ICYmICFBcnJheS5pc0FycmF5KGNvbnRleHQpKTtcbiAgICAgICAgICBpbmplY3RSZXdyaXRlcihpbnB1dCwgY29udGV4dCk7XG4gICAgICAgICAgZmlsdGVyUmV3cml0ZXIoaW5wdXQsIGNvbnRleHQpO1xuICAgICAgICAgIHNvcnRSZXdyaXRlcihpbnB1dCwgY29udGV4dCk7XG4gICAgICAgICAgb2JqZWN0RmllbGRzLnJldGFpbihpbnB1dCwgZmllbGRzKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH07XG59O1xuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3Jld3JpdGVyLmpzIl0sIm5hbWVzIjpbImFzc2VydCIsInJlcXVpcmUiLCJzZXQiLCJvYmplY3RTY2FuIiwib2JqZWN0RmllbGRzIiwic29ydEZuIiwicGx1Z2luVHlwZXMiLCJjb21waWxlVGFyZ2V0VG9DYWxsYmFjayIsInR5cGUiLCJwbHVnaW5zIiwiZXZlcnkiLCJwIiwidGFyZ2V0VG9QbHVnaW5zIiwicmVkdWNlIiwicHJldiIsInBsdWdpbiIsImtleSIsInByZWZpeCIsInRhcmdldCIsImVuZHNXaXRoIiwic2xpY2UiLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJwdXNoIiwiZW50cmllcyIsInBzIiwidmFsdWUiLCJwYXJlbnRzIiwiY29udGV4dCIsImFyZ3MiLCJmb3JFYWNoIiwidGFyZ2V0UmVsIiwiZm4iLCJtYXAiLCJjb21waWxlTWV0YSIsImZpZWxkcyIsInBsdWdpbnNCeVR5cGUiLCJjIiwiaW5hY3RpdmVQbHVnaW5zIiwicmVxdWlyZWRGaWVsZHMiLCJpZ25vcmVkRmllbGRzIiwiU2V0IiwiaSIsImxlbmd0aCIsImZpZWxkIiwiaiIsInN0YXJ0c1dpdGgiLCJyZXF1aXJlcyIsInNwbGljZSIsImluY2x1ZGVzIiwiYWRkIiwidG9Mb3dlckNhc2UiLCJmaWVsZHNUb1JlcXVlc3QiLCJmaWx0ZXIiLCJlIiwiaGFzIiwibW9kdWxlIiwiZXhwb3J0cyIsInBsdWdpbk1hcCIsImRhdGFTdG9yZUZpZWxkcyIsIkFycmF5IiwiaXNBcnJheSIsImFsbG93ZWRGaWVsZHMiLCJpbml0IiwiZiIsIkVycm9yIiwiam9pbiIsImluamVjdENicyIsImZpbHRlckNicyIsInNvcnRDYnMiLCJpbmplY3RSZXdyaXRlciIsImlucHV0Iiwia2V5cyIsInVzZUFycmF5U2VsZWN0b3IiLCJqb2luZWQiLCJmaWx0ZXJGbiIsIm1hdGNoZWRCeSIsIm0iLCJmaWx0ZXJSZXdyaXRlciIsInJlc3VsdCIsInNvbWUiLCJwYXJlbnQiLCJzb3J0UmV3cml0ZXIiLCJsb29rdXBzIiwiTWFwIiwibG9va3VwIiwic29ydCIsImEiLCJiIiwiZ2V0IiwicmV3cml0ZSIsInJldGFpbiJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNQyxHQUFHLEdBQUdELE9BQU8sQ0FBQyxZQUFELENBQW5COztBQUNBLE1BQU1FLFVBQVUsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsZUFBRCxDQUE1Qjs7QUFDQSxNQUFNSSxNQUFNLEdBQUdKLE9BQU8sQ0FBQyxpQkFBRCxDQUF0Qjs7QUFDQSxNQUFNO0FBQUVLLEVBQUFBO0FBQUYsSUFBa0JMLE9BQU8sQ0FBQyxVQUFELENBQS9COztBQUVBLE1BQU1NLHVCQUF1QixHQUFHLENBQUNDLElBQUQsRUFBT0MsT0FBUCxLQUFtQjtBQUNqRFQsRUFBQUEsTUFBTSxDQUFDUyxPQUFPLENBQUNDLEtBQVIsQ0FBY0MsQ0FBQyxJQUFJQSxDQUFDLENBQUNILElBQUYsS0FBV0EsSUFBOUIsQ0FBRCxDQUFOO0FBRUEsUUFBTUksZUFBZSxHQUFHSCxPQUFPLENBQzVCSSxNQURxQixDQUNkLENBQUNDLElBQUQsRUFBT0MsTUFBUCxLQUFrQjtBQUN4QjtBQUNBLFVBQU1DLEdBQUcsR0FBR1IsSUFBSSxLQUFLLFFBQVQsR0FDUk8sTUFBTSxDQUFDRSxNQURDLEdBRVBGLE1BQU0sQ0FBQ0csTUFBUCxDQUFjQyxRQUFkLENBQXVCLEdBQXZCLElBQThCSixNQUFNLENBQUNHLE1BQVAsQ0FBY0UsS0FBZCxDQUFvQixDQUFwQixFQUF1QixDQUFDLENBQXhCLENBQTlCLEdBQTJETCxNQUFNLENBQUNHLE1BRnZFOztBQUdBLFFBQUlKLElBQUksQ0FBQ0UsR0FBRCxDQUFKLEtBQWNLLFNBQWxCLEVBQTZCO0FBQzNCQyxNQUFBQSxNQUFNLENBQUNDLE1BQVAsQ0FBY1QsSUFBZCxFQUFvQjtBQUFFLFNBQUNFLEdB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Q0FBQ0ksR0FBUCxDQUFXRCxDQUFYLENBQWhCLENBQWhDO0FBQ0FMLGNBQUFBLE9BQU8sQ0FBQ25DLE1BQVIsQ0FBZWpDLEdBQUcsQ0FBQzRCLE1BQUosR0FBYSxDQUE1QjtBQUNEOztBQUNELG1CQUFPLElBQVA7QUFDRDtBQWZxQyxTQUF2QixDQUFWLENBZ0JKNEIsS0FoQkksQ0FBUDtBQWlCRCxPQW5CRDs7QUFxQkEsYUFBTztBQUNMbkIsUUFBQUEsZUFESztBQUVMc0MsUUFBQUEsT0FBTyxFQUFFLENBQUNuQixLQUFELEVBQVEzQyxPQUFPLEdBQUcsRUFBbEIsS0FBeUI7QUFDaEM3QixVQUFBQSxNQUFNLENBQUM2QixPQUFPLFlBQVlQLE1BQW5CLElBQTZCLENBQUN1QyxLQUFLLENBQUNDLE9BQU4sQ0FBY2pDLE9BQWQsQ0FBL0IsQ0FBTjtBQUNBMEMsVUFBQUEsY0FBYyxDQUFDQyxLQUFELEVBQVEzQyxPQUFSLENBQWQ7QUFDQWtELFVBQUFBLGNBQWMsQ0FBQ1AsS0FBRCxFQUFRM0MsT0FBUixDQUFkO0FBQ0FzRCxVQUFBQSxZQUFZLENBQUNYLEtBQUQsRUFBUTNDLE9BQVIsQ0FBWjtBQUNBekIsVUFBQUEsWUFBWSxDQUFDd0YsTUFBYixDQUFvQnBCLEtBQXBCLEVBQTJCcEMsTUFBM0I7QUFDRDtBQVJJLE9BQVA7QUFVRDtBQTlFSSxHQUFQO0FBZ0ZELENBL0ZEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7XG5jb25zdCBzZXQgPSByZXF1aXJlKCdsb2Rhc2guc2V0Jyk7XG5jb25zdCBvYmplY3RTY2FuID0gcmVxdWlyZSgnb2JqZWN0LXNjYW4nKTtcbmNvbnN0IG9iamVjdEZpZWxkcyA9IHJlcXVpcmUoJ29iamVjdC1maWVsZHMnKTtcbmNvbnN0IHNvcnRGbiA9IHJlcXVpcmUoJy4uL3V0aWwvc29ydC1mbicpO1xuY29uc3QgeyBwbHVnaW5UeXBlcyB9ID0gcmVxdWlyZSgnLi9wbHVnaW4nKTtcblxuY29uc3QgY29tcGlsZVRhcmdldFRvQ2FsbGJhY2sgPSAodHlwZSwgcGx1Z2lucykgPT4ge1xuICBhc3NlcnQocGx1Z2lucy5ldmVyeShwID0+IHAudHlwZSA9PT0gdHlwZSkpO1xuXG4gIGNvbnN0IHRhcmdldFRvUGx1Z2lucyA9IHBsdWdpbnNcbiAgICAucmVkdWNlKChwcmV2LCBwbHVnaW4pID0+IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXN0ZWQtdGVybmFyeVxuICAgICAgY29uc3Qga2V5ID0gdHlwZSA9PT0gJ0lOSkVDVCdcbiAgICAgICAgPyBwbHVnaW4ucHJlZml4XG4gICAgICAgIDogKHBsdWdpbi50YXJnZXQuZW5kc1dpdGgoJy4nKSA/IHBsdWdpbi50YXJnZXQuc2xpY2UoMCwgLTEpIDogcGx1Z2luLnRhcmdldCk7XG4gICAgICBpZiAocHJldltrZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihwcmV2LCB7IFtrZXldOiBbXSB9KTtcbiAgICAgIH1cbiAgICAgIHByZXZba2V5XS5wdXNoKHBsdWdpbik7XG4gICAgICByZXR1cm4gcHJldjtcbiAgICB9LCB7fSk7XG5cbiAgcmV0dXJuIE9iamVjdFxuICAgIC5lbnRyaWVzKHRhcmdldFRvUGx1Z2lucylcbiAgICAucmVkdWNlKChwcmV2LCBbdGFyZ2V0LCBwc10pID0+IE9iamVjdC5hc3NpZ24ocHJldiwge1xuICAgICAgW3RhcmdldF06IChrZXksIHZhbHVlLCBwYXJlbnRzLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSB7XG4gICAgICAgICAga2V5LCB2YWx1ZSwgcGFyZW50cywgY29udGV4dFxuICAgICAgICB9O1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICBjYXNlICdJTkpFQ1QnOlxuICAgICAgICAgICAgcHMuZm9yRWFjaChwID0+IHNldCh2YWx1ZSwgcC50YXJnZXRSZWwsIHAuZm4oYXJncykpKTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICBjYXNlICdGSUxURVInOlxuICAgICAgICAgICAgcmV0dXJuIHBzLmV2ZXJ5KHAgPT4gcC5mbihhcmdzKSk7XG4gICAgICAgICAgY2FzZSAnU09SVCc6XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBwcy5tYXAocCA9PiBwLmZuKGFyZ3MpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pLCB7fSk7XG59O1xuXG5jb25zdCBjb21waWxlTWV0YSA9IChwbHVnaW5zLCBmaWVsZHMpID0+IHtcbiAgY29uc3QgcGx1Z2luc0J5VHlwZSA9IHBsdWdpblR5cGVzLnJlZHVjZSgocCwgYykgPT4gT2JqZWN0LmFzc2lnbihwLCB7IFtjXTogW10gfSksIHt9KTtcblxuICBjb25zdCBpbmFjdGl2ZVBsdWdpbnMgPSBbLi4ucGx1Z2luc107XG4gIGNvbnN0IHJlcXVpcmVkRmllbGRzID0gWy4uLmZpZWxkc107XG4gIGNvbnN0IGlnbm9yZWRGaWVsZHMgPSBuZXcgU2V0KCk7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXF1aXJlZEZpZWxkcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGNvbnN0IGZpZWxkID0gcmVxdWlyZWRGaWVsZHNbaV07XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBpbmFjdGl2ZVBsdWdpbnMubGVuZ3RoOyBqICs9IDEpIHtcbiAgICAgIGNvbnN0IHBsdWdpbiA9IGluYWN0aXZlUGx1Z2luc1tqXTtcbiAgICAgIGlmIChcbiAgICAgICAgZmllbGQgPT09IHBsdWdpbi50YXJnZXRcbiAgICAgICAgfHwgKHBsdWdpbi50eXBlICE9PSAnSU5KRUNUJyAmJiBmaWVsZC5zdGFydHNXaXRoKHBsdWdpbi50YXJnZXQpKVxuICAgICAgKSB7XG4gICAgICAgIHJlcXVpcmVkRmllbGRzLnB1c2goLi4ucGx1Z2luLnJlcXVpcmVzKTtcbiAgICAgICAgaW5hY3RpdmVQbHVnaW5zLnNwbGljZShqLCAxKTtcbiAgICAgICAgaiAtPSAxO1xuICAgICAgICBwbHVnaW5zQnlUeXBlW3BsdWdpbi50eXBlXS5wdXNoKHBsdWdpbik7XG4gICAgICAgIGlmIChwbHVnaW4udHlwZSA9PT0gJ0lOSkVDVCcgJiYgIXBsdWdpbi5yZXF1aXJlcy5pbmNsdWRlcyhwbHVnaW4udGFyZ2V0KSkge1xuICAgICAgICAgIGlnbm9yZWRGaWVsZHMuYWRkKHBsdWdpbi50YXJnZXQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHBsdWdpbnNCeVR5cGUpLnJlZHVjZSgocCwgW3R5cGUsIHBzXSkgPT4gT2JqZWN0LmFzc2lnbihwLCB7XG4gICAgW2Ake3R5cGUudG9Mb3dlckNhc2UoKX1DYnNgXTogY29tcGlsZVRhcmdldFRvQ2FsbGJhY2sodHlwZSwgcHMpXG4gIH0pLCB7XG4gICAgZmllbGRzVG9SZXF1ZXN0OiBbLi4ubmV3IFNldChyZXF1aXJlZEZpZWxkcyldLmZpbHRlcihlID0+ICFpZ25vcmVkRmllbGRzLmhhcyhlKSlcbiAgfSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IChwbHVnaW5NYXAsIGRhdGFTdG9yZUZpZWxkcykgPT4ge1xuICBhc3NlcnQocGx1Z2luTWFwIGluc3RhbmNlb2YgT2JqZWN0ICYmICFBcnJheS5pc0FycmF5KHBsdWdpbk1hcCkpO1xuICBhc3NlcnQoQXJyYXkuaXNBcnJheShkYXRhU3RvcmVGaWVsZHMpICYmIGRhdGFTdG9yZUZpZWxkcy5ldmVyeShlID0+IHR5cGVvZiBlID09PSAnc3RyaW5nJykpO1xuXG4gIGNvbnN0IHBsdWdpbnMgPSBPYmplY3QuZW50cmllcyhwbHVnaW5NYXApLnJlZHVjZSgocHJldiwgW3ByZWZpeCwgcHNdKSA9PiB7XG4gICAgcHMuZm9yRWFjaChwID0+IHByZXYucHVzaChwKHByZWZpeCkpKTtcbiAgICByZXR1cm4gcHJldjtcbiAgfSwgW10pO1xuICBjb25zdCBhbGxvd2VkRmllbGRzID0gWy4uLnBsdWdpbnMucmVkdWNlKChwLCBjKSA9PiB7XG4gICAgaWYgKGMudHlwZSA9PT0gJ0lOSkVDVCcpIHtcbiAgICAgIHAuYWRkKGMudGFyZ2V0KTtcbiAgICB9XG4gICAgcmV0dXJuIHA7XG4gIH0sIG5ldyBTZXQoZGF0YVN0b3JlRmllbGRzKSldO1xuXG4gIHJldHVybiB7XG4gICAgYWxsb3dlZEZpZWxkcyxcbiAgICBpbml0OiAoZmllbGRzKSA9PiB7XG4gICAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShmaWVsZHMpKTtcblxuICAgICAgaWYgKCFmaWVsZHMuZXZlcnkoZiA9PiBhbGxvd2VkRmllbGRzLmluY2x1ZGVzKGYpKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEJhZCBmaWVsZCByZXF1ZXN0ZWQ6ICR7ZmllbGRzLmZpbHRlcihmID0+ICFhbGxvd2VkRmllbGRzLmluY2x1ZGVzKGYpKS5qb2luKCcsICcpfWApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7XG4gICAgICAgIGluamVjdENicyxcbiAgICAgICAgZmlsdGVyQ2JzLFxuICAgICAgICBzb3J0Q2JzLFxuICAgICAgICBmaWVsZHNUb1JlcXVlc3RcbiAgICAgIH0gPSBjb21waWxlTWV0YShwbHVnaW5zLCBmaWVsZHMpO1xuXG4gICAgICBhc3NlcnQoXG4gICAgICAgIGZpZWxkc1RvUmVxdWVzdC5ldmVyeShmID0+IGRhdGFTdG9yZUZpZWxkcy5pbmNsdWRlcyhmKSksXG4gICAgICAgIGBCYWQgRmllbGQgUmVxdWVzdGVkOiAke2ZpZWxkc1RvUmVxdWVzdC5maWx0ZXIoZiA9PiAhZGF0YVN0b3JlRmllbGRzLmluY2x1ZGVzKGYpKX1gXG4gICAgICApO1xuXG4gICAgICBjb25zdCBpbmplY3RSZXdyaXRlciA9IChpbnB1dCwgY29udGV4dCkgPT4gb2JqZWN0U2NhbihPYmplY3Qua2V5cyhpbmplY3RDYnMpLCB7XG4gICAgICAgIHVzZUFycmF5U2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICBqb2luZWQ6IGZhbHNlLFxuICAgICAgICBmaWx0ZXJGbjogKGtleSwgdmFsdWUsIHsgbWF0Y2hlZEJ5LCBwYXJlbnRzIH0pID0+IHtcbiAgICAgICAgICBtYXRjaGVkQnkuZm9yRWFjaCgobSkgPT4ge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih2YWx1ZSwgaW5qZWN0Q2JzW21dKGtleSwgdmFsdWUsIHBhcmVudHMsIGNvbnRleHQpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSkoaW5wdXQpO1xuICAgICAgY29uc3QgZmlsdGVyUmV3cml0ZXIgPSAoaW5wdXQsIGNvbnRleHQpID0+IG9iamVjdFNjYW4oT2JqZWN0LmtleXMoZmlsdGVyQ2JzKSwge1xuICAgICAgICB1c2VBcnJheVNlbGVjdG9yOiBmYWxzZSxcbiAgICAgICAgam9pbmVkOiBmYWxzZSxcbiAgICAgICAgZmlsdGVyRm46IChrZXksIHZhbHVlLCB7IG1hdGNoZWRCeSwgcGFyZW50cyB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gbWF0Y2hlZEJ5LnNvbWUobSA9PiBmaWx0ZXJDYnNbbV0oa2V5LCB2YWx1ZSwgcGFyZW50cywgY29udGV4dCkgPT09IHRydWUpO1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBrZXkubGVuZ3RoID09PSAxID8gaW5wdXQgOiBwYXJlbnRzWzBdO1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocGFyZW50KSkge1xuICAgICAgICAgICAgICBwYXJlbnQuc3BsaWNlKGtleVtrZXkubGVuZ3RoIC0gMV0sIDEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZGVsZXRlIHBhcmVudFtrZXlba2V5Lmxlbmd0aCAtIDFdXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfSkoaW5wdXQpO1xuICAgICAgY29uc3Qgc29ydFJld3JpdGVyID0gKGlucHV0LCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGxvb2t1cHMgPSBbXTtcbiAgICAgICAgcmV0dXJuIG9iamVjdFNjYW4oT2JqZWN0LmtleXMoc29ydENicyksIHtcbiAgICAgICAgICB1c2VBcnJheVNlbGVjdG9yOiBmYWxzZSxcbiAgICAgICAgICBqb2luZWQ6IGZhbHNlLFxuICAgICAgICAgIGZpbHRlckZuOiAoa2V5LCB2YWx1ZSwgeyBtYXRjaGVkQnksIHBhcmVudHMgfSkgPT4ge1xuICAgICAgICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkocGFyZW50c1swXSksICdTb3J0IG11c3QgYmUgb24gXCJBcnJheVwiIHR5cGUuJyk7XG4gICAgICAgICAgICBpZiAobG9va3Vwc1trZXkubGVuZ3RoIC0gMV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBsb29rdXBzW2tleS5sZW5ndGggLSAxXSA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxvb2t1cCA9IGxvb2t1cHNba2V5Lmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgbG9va3VwLnNldCh2YWx1ZSwgc29ydENic1ttYXRjaGVkQnlbMF1dKGtleSwgdmFsdWUsIHBhcmVudHMsIGNvbnRleHQpKTtcbiAgICAgICAgICAgIGlmIChrZXlba2V5Lmxlbmd0aCAtIDFdID09PSAwKSB7XG4gICAgICAgICAgICAgIHBhcmVudHNbMF0uc29ydCgoYSwgYikgPT4gc29ydEZuKGxvb2t1cC5nZXQoYSksIGxvb2t1cC5nZXQoYikpKTtcbiAgICAgICAgICAgICAgbG9va3Vwcy5zcGxpY2Uoa2V5Lmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KShpbnB1dCk7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBmaWVsZHNUb1JlcXVlc3QsXG4gICAgICAgIHJld3JpdGU6IChpbnB1dCwgY29udGV4dCA9IHt9KSA9PiB7XG4gICAgICAgICAgYXNzZXJ0KGNvbnRleHQgaW5zdGFuY2VvZiBPYmplY3QgJiYgIUFycmF5LmlzQXJyYXkoY29udGV4dCkpO1xuICAgICAgICAgIGluamVjdFJld3JpdGVyKGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgICBmaWx0ZXJSZXdyaXRlcihpbnB1dCwgY29udGV4dCk7XG4gICAgICAgICAgc29ydFJld3JpdGVyKGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgICBvYmplY3RGaWVsZHMucmV0YWluKGlucHV0LCBmaWVsZHMpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfTtcbn07XG4iXX0= |
{ | ||
"name": "object-rewrite", | ||
"version": "3.0.3", | ||
"version": "3.0.4", | ||
"description": "Rewrite Object(s) in place using plugins.", | ||
@@ -10,2 +10,3 @@ "main": "lib/index.js", | ||
"dependencies": { | ||
"lodash.set": "4.3.2", | ||
"object-fields": "1.3.8", | ||
@@ -19,12 +20,12 @@ "object-scan": "10.0.3" | ||
"@babel/register": "7.4.4", | ||
"@blackflux/eslint-plugin-rules": "1.0.18", | ||
"@blackflux/robo-config-plugin": "1.10.5", | ||
"babel-eslint": "10.0.1", | ||
"@blackflux/eslint-plugin-rules": "1.0.19", | ||
"@blackflux/robo-config-plugin": "1.10.6", | ||
"babel-eslint": "10.0.2", | ||
"chai": "4.2.0", | ||
"coveralls": "3.0.3", | ||
"coveralls": "3.0.4", | ||
"eslint": "5.16.0", | ||
"js-gardener": "2.0.35", | ||
"js-gardener": "2.0.40", | ||
"lodash.get": "4.4.2", | ||
"nyc": "14.1.1", | ||
"semantic-release": "15.13.12" | ||
"semantic-release": "15.13.16" | ||
}, | ||
@@ -31,0 +32,0 @@ "scripts": { |
@@ -81,3 +81,3 @@ # object-rewrite | ||
- `requires`: See above | ||
- `fn`: return value is used for target | ||
- `fn`: return value is used for target. Relative to prefix | ||
@@ -91,3 +91,3 @@ ### Filter Plugin | ||
- `fn`: target is removed iff function returns `false`. Similar to | ||
[Array.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter). | ||
[Array.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter). Relative to target | ||
@@ -100,3 +100,3 @@ ### Sort Plugin | ||
- `required`: See above | ||
- `fn`: called for each object in array. Final array is sorted using the result | ||
- `fn`: called for each object in array. Final array is sorted using the result. Relative to target | ||
@@ -103,0 +103,0 @@ Only one sort plugin can be specified per target. |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
42476
235
3
+ Addedlodash.set@4.3.2
+ Addedlodash.set@4.3.2(transitive)