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

object-rewrite

Package Overview
Dependencies
Maintainers
1
Versions
179
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

object-rewrite - npm Package Compare versions

Comparing version 3.2.23 to 4.0.0

16

lib/util/plugin.js

@@ -22,3 +22,3 @@ const assert = require('assert');

const asSchema = input => {
if (Joi.isSchema(input)) {
if (typeof input === 'function') {
return input;

@@ -28,13 +28,13 @@ }

if (Array.isArray(input)) {
return Joi.array().items(...input.map(e => asSchema(e)));
const compiled = input.map(v => asSchema(v));
return r => Array.isArray(r) && r.every(e => compiled.some(v => v(e) === true));
}
assert(input instanceof Object);
return Joi.object().keys(Object.entries(input).reduce((p, [k, v]) => Object.assign(p, {
[k]: asSchema(v)
}), {}));
const compiled = Object.entries(input).map(([k, v]) => [k, asSchema(v)]);
return r => r instanceof Object && !Array.isArray(r) && Object.keys(r).length === compiled.length && compiled.every(([k, v]) => v(r[k]) === true);
};
const extractKeys = (prefix, input) => {
if (Joi.isSchema(input)) {
if (typeof input === 'function') {
return [prefix];

@@ -66,3 +66,3 @@ }

fn: Joi.function(),
schema: type === 'INJECT' ? Joi.alternatives(Joi.object(), Joi.array()) : Joi.forbidden(),
schema: type === 'INJECT' ? Joi.alternatives(Joi.object(), Joi.array(), Joi.function()) : Joi.forbidden(),
limit: type === 'SORT' ? Joi.function().optional() : Joi.forbidden()

@@ -105,2 +105,2 @@ })

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3BsdWdpbi5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwiSm9pIiwicGx1Z2luVHlwZXMiLCJqb2luIiwiaW5wdXQiLCJyZXN1bHQiLCJmaWx0ZXIiLCJlIiwiZW5kc1dpdGgiLCJzbGljZSIsImFzU2NoZW1hIiwiaXNTY2hlbWEiLCJBcnJheSIsImlzQXJyYXkiLCJhcnJheSIsIml0ZW1zIiwibWFwIiwiT2JqZWN0Iiwib2JqZWN0Iiwia2V5cyIsImVudHJpZXMiLCJyZWR1Y2UiLCJwIiwiayIsInYiLCJhc3NpZ24iLCJleHRyYWN0S2V5cyIsInByZWZpeCIsImxlbmd0aCIsImZvckVhY2giLCJwdXNoIiwicGx1Z2luIiwidHlwZSIsIm9wdGlvbnMiLCJzdHJpbmciLCJ2YWxpZCIsInRhcmdldCIsInJlcXVpcmVzIiwiZm4iLCJmdW5jdGlvbiIsInNjaGVtYSIsImFsdGVybmF0aXZlcyIsImZvcmJpZGRlbiIsImxpbWl0Iiwib3B0aW9uYWwiLCJ0YXJnZXRBYnMiLCJ0YXJnZXRzIiwidGFyZ2V0UmVsIiwiZiIsInN0YXJ0c1dpdGgiLCJtb2R1bGUiLCJleHBvcnRzIiwicHJldiIsInQiLCJ0b0xvd2VyQ2FzZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNQyxHQUFHLEdBQUdELE9BQU8sQ0FBQyxZQUFELENBQW5COztBQUVBLE1BQU1FLFdBQVcsR0FBRyxDQUFDLFFBQUQsRUFBVyxRQUFYLEVBQXFCLE1BQXJCLENBQXBCOztBQUVBLE1BQU1DLElBQUksR0FBSUMsS0FBRCxJQUFXO0FBQ3RCLFFBQU1DLE1BQU0sR0FBR0QsS0FBSyxDQUFDRSxNQUFOLENBQWNDLENBQUQsSUFBTyxDQUFDLENBQUNBLENBQXRCLEVBQXlCSixJQUF6QixDQUE4QixHQUE5QixDQUFmOztBQUNBLE1BQUlFLE1BQU0sS0FBSyxHQUFmLEVBQW9CO0FBQ2xCLFdBQU8s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TUFBQUE7QUFSYSxLQUFmOztBQVVBLFFBQUlYLElBQUksS0FBSyxRQUFiLEVBQXVCO0FBQ3JCM0IsTUFBQUEsTUFBTSxDQUFDbUMsTUFBUCxHQUFnQjlCLFFBQVEsQ0FBQzhCLE1BQUQsQ0FBeEI7QUFDQW5DLE1BQUFBLE1BQU0sQ0FBQ3lDLE9BQVAsR0FBaUJwQixXQUFXLENBQUNtQixTQUFELEVBQVlMLE1BQVosQ0FBNUI7QUFDRDs7QUFDRCxXQUFPbkMsTUFBUDtBQUNELEdBakJEO0FBa0JELENBcENEOztBQXNDQTZDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmpELFdBQVcsQ0FBQ21CLE1BQVosQ0FBbUIsQ0FBQytCLElBQUQsRUFBT0MsQ0FBUCxLQUFhcEMsTUFBTSxDQUFDUSxNQUFQLENBQWMyQixJQUFkLEVBQW9CO0FBQ25FLEdBQUUsR0FBRUMsQ0FBQyxDQUFDQyxXQUFGLEVBQWdCLFFBQXBCLEdBQStCckIsT0FBRCxJQUFhRixNQUFNLENBQUNzQixDQUFELEVBQUlwQixPQUFKO0FBRGtCLENBQXBCLENBQWhDLEVBRWI7QUFBRS9CLEVBQUFBO0FBQUYsQ0FGYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpO1xuY29uc3QgSm9pID0gcmVxdWlyZSgnam9pLXN0cmljdCcpO1xuXG5jb25zdCBwbHVnaW5UeXBlcyA9IFsnRklMVEVSJywgJ0lOSkVDVCcsICdTT1JUJ107XG5cbmNvbnN0IGpvaW4gPSAoaW5wdXQpID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gaW5wdXQuZmlsdGVyKChlKSA9PiAhIWUpLmpvaW4oJy4nKTtcbiAgaWYgKHJlc3VsdCA9PT0gJyonKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGlmIChyZXN1bHQuZW5kc1dpdGgoJy4qJykpIHtcbiAgICByZXR1cm4gcmVzdWx0LnNsaWNlKDAsIC0xKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuY29uc3QgYXNTY2hlbWEgPSAoaW5wdXQpID0+IHtcbiAgaWYgKEpvaS5pc1NjaGVtYShpbnB1dCkpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSB7XG4gICAgcmV0dXJuIEpvaS5hcnJheSgpLml0ZW1zKC4uLmlucHV0Lm1hcCgoZSkgPT4gYXNTY2hlbWEoZSkpKTtcbiAgfVxuICBhc3NlcnQoaW5wdXQgaW5zdGFuY2VvZiBPYmplY3QpO1xuICByZXR1cm4gSm9pLm9iamVjdCgpLmtleXMoT2JqZWN0LmVudHJpZXMoaW5wdXQpLnJlZHVjZSgocCwgW2ssIHZdKSA9PiBPYmplY3QuYXNzaWduKHAsIHtcbiAgICBba106IGFzU2NoZW1hKHYpXG4gIH0pLCB7fSkpO1xufTtcblxuY29uc3QgZXh0cmFjdEtleXMgPSAocHJlZml4LCBpbnB1dCkgPT4ge1xuICBpZiAoSm9pLmlzU2NoZW1hKGlucHV0KSkge1xuICAgIHJldHVybiBbcHJlZml4XTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShpbnB1dCkpIHtcbiAgICBhc3NlcnQoaW5wdXQubGVuZ3RoID09PSAxKTtcbiAgICByZXR1cm4gZXh0cmFjdEtleXMocHJlZml4LCBpbnB1dFswXSk7XG4gIH1cbiAgYXNzZXJ0KGlucHV0IGluc3RhbmNlb2YgT2JqZWN0KTtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGlucHV0KS5yZWR1Y2UoKHAsIFtrLCB2XSkgPT4ge1xuICAgIGV4dHJhY3RLZXlzKGAke3ByZWZpeH0uJHtrfWAsIHYpXG4gICAgICAuZm9yRWFjaCgoZSkgPT4gcC5wdXNoKGUpKTtcbiAgICByZXR1cm4gcDtcbiAgfSwgW10pO1xufTtcblxuY29uc3QgcGx1Z2luID0gKHR5cGUsIG9wdGlvbnMpID0+IHtcbiAgSm9pLmFzc2VydChcbiAgICB7IHR5cGUsIG9wdGlvbnMgfSxcbiAgICBKb2kub2JqZWN0KHtcbiAgICAgIHR5cGU6IEpvaS5zdHJpbmcoKS52YWxpZCguLi5wbHVnaW5UeXBlcyksXG4gICAgICBvcHRpb25zOiBKb2kub2JqZWN0KHtcbiAgICAgICAgdGFyZ2V0OiBKb2kuc3RyaW5nKCksIC8vIHRhcmdldCBjYW4gbm90IGJlIFwiXCIsIHVzZSBcIipcIiBpbnN0ZWFkXG4gICAgICAgIHJlcXVpcmVzOiBKb2kuYXJyYXkoKS5pdGVtcyhKb2kuc3RyaW5nKCkpLFxuICAgICAgICBmbjogSm9pLmZ1bmN0aW9uKCksXG4gICAgICAgIHNjaGVtYTogdHlwZSA9PT0gJ0lOSkVDVCcgPyBKb2kuYWx0ZXJuYXRpdmVzKEpvaS5vYmplY3QoKSwgSm9pLmFycmF5KCkpIDogSm9pLmZvcmJpZGRlbigpLFxuICAgICAgICBsaW1pdDogdHlwZSA9PT0gJ1NPUlQnID8gSm9pLmZ1bmN0aW9uKCkub3B0aW9uYWwoKSA6IEpvaS5mb3JiaWRkZW4oKVxuICAgICAgfSlcbiAgICB9KVxuICApO1xuXG4gIGNvbnN0IHtcbiAgICB0YXJnZXQsIHJlcXVpcmVzLCBmbiwgc2NoZW1hLCBsaW1pdFxuICB9ID0gb3B0aW9ucztcbiAgcmV0dXJuIChwcmVmaXgpID0+IHtcbiAgICBjb25zdCB0YXJnZXRBYnMgPSBqb2luKFtwcmVmaXgsIHRhcmdldF0pO1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIHByZWZpeCxcbiAgICAgIHRhcmdldDogdGFyZ2V0QWJzLFxuICAgICAgdGFyZ2V0czogW3RhcmdldEFic10sXG4gICAgICB0YXJnZXRSZWw6IHRhcmdldCxcbiAgICAgIHJlcXVpcmVzOiByZXF1aXJlcy5tYXAoKGYpID0+IChmLnN0YXJ0c1dpdGgoJy8nKSA/IGYuc2xpY2UoMSkgOiBqb2luKFtwcmVmaXgsIGZdKSkpLFxuICAgICAgdHlwZSxcbiAgICAgIGZuLFxuICAgICAgbGltaXRcbiAgICB9O1xuICAgIGlmICh0eXBlID09PSAnSU5KRUNUJykge1xuICAgICAgcmVzdWx0LnNjaGVtYSA9IGFzU2NoZW1hKHNjaGVtYSk7XG4gICAgICByZXN1bHQudGFyZ2V0cyA9IGV4dHJhY3RLZXlzKHRhcmdldEFicywgc2NoZW1hKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gcGx1Z2luVHlwZXMucmVkdWNlKChwcmV2LCB0KSA9PiBPYmplY3QuYXNzaWduKHByZXYsIHtcbiAgW2Ake3QudG9Mb3dlckNhc2UoKX1QbHVnaW5gXTogKG9wdGlvbnMpID0+IHBsdWdpbih0LCBvcHRpb25zKVxufSksIHsgcGx1Z2luVHlwZXMgfSk7XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3BsdWdpbi5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwiSm9pIiwicGx1Z2luVHlwZXMiLCJqb2luIiwiaW5wdXQiLCJyZXN1bHQiLCJmaWx0ZXIiLCJlIiwiZW5kc1dpdGgiLCJzbGljZSIsImFzU2NoZW1hIiwiQXJyYXkiLCJpc0FycmF5IiwiY29tcGlsZWQiLCJtYXAiLCJ2IiwiciIsImV2ZXJ5Iiwic29tZSIsIk9iamVjdCIsImVudHJpZXMiLCJrIiwia2V5cyIsImxlbmd0aCIsImV4dHJhY3RLZXlzIiwicHJlZml4IiwicmVkdWNlIiwicCIsImZvckVhY2giLCJwdXNoIiwicGx1Z2luIiwidHlwZSIsIm9wdGlvbnMiLCJvYmplY3QiLCJzdHJpbmciLCJ2YWxpZCIsInRhcmdldCIsInJlcXVpcmVzIiwiYXJyYXkiLCJpdGVtcyIsImZuIiwiZnVuY3Rpb24iLCJzY2hlbWEiLCJhbHRlcm5hdGl2ZXMiLCJmb3JiaWRkZW4iLCJsaW1pdCIsIm9wdGlvbmFsIiwidGFyZ2V0QWJzIiwidGFyZ2V0cyIsInRhcmdldFJlbCIsImYiLCJzdGFydHNXaXRoIiwibW9kdWxlIiwiZXhwb3J0cyIsInByZXYiLCJ0IiwiYXNzaWduIiwidG9Mb3dlckNhc2UiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7O0FBQ0EsTUFBTUMsR0FBRyxHQUFHRCxPQUFPLENBQUMsWUFBRCxDQUFuQjs7QUFFQSxNQUFNRSxXQUFXLEdBQUcsQ0FBQyxRQUFELEVBQVcsUUFBWCxFQUFxQixNQUFyQixDQUFwQjs7QUFFQSxNQUFNQyxJQUFJLEdBQUlDLEtBQUQsSUFBVztBQUN0QixRQUFNQyxNQUFNLEdBQUdELEtBQUssQ0FBQ0UsTUFBTixDQUFjQyxDQUFELElBQU8sQ0FBQyxDQUFDQSxDQUF0QixFQUF5QkosSUFBekIsQ0FBOEIsR0FBOUIsQ0FBZjs7QUFDQSxNQUFJRSxNQUFNLEtBQUssR0FB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QUNib0IsTUFBQUEsTUFEYTtBQUViVyxNQUFBQSxNQUFNLEVBQUVXLFNBRks7QUFHYkMsTUFBQUEsT0FBTyxFQUFFLENBQUNELFNBQUQsQ0FISTtBQUliRSxNQUFBQSxTQUFTLEVBQUViLE1BSkU7QUFLYkMsTUFBQUEsUUFBUSxFQUFFQSxRQUFRLENBQUN2QixHQUFULENBQWNvQyxDQUFELElBQVFBLENBQUMsQ0FBQ0MsVUFBRixDQUFhLEdBQWIsSUFBb0JELENBQUMsQ0FBQ3pDLEtBQUYsQ0FBUSxDQUFSLENBQXBCLEdBQWlDTixJQUFJLENBQUMsQ0FBQ3NCLE1BQUQsRUFBU3lCLENBQVQsQ0FBRCxDQUExRCxDQUxHO0FBTWJuQixNQUFBQSxJQU5hO0FBT2JTLE1BQUFBLEVBUGE7QUFRYkssTUFBQUE7QUFSYSxLQUFmOztBQVVBLFFBQUlkLElBQUksS0FBSyxRQUFiLEVBQXVCO0FBQ3JCMUIsTUFBQUEsTUFBTSxDQUFDcUMsTUFBUCxHQUFnQmhDLFFBQVEsQ0FBQ2dDLE1BQUQsQ0FBeEI7QUFDQXJDLE1BQUFBLE1BQU0sQ0FBQzJDLE9BQVAsR0FBaUJ4QixXQUFXLENBQUN1QixTQUFELEVBQVlMLE1BQVosQ0FBNUI7QUFDRDs7QUFDRCxXQUFPckMsTUFBUDtBQUNELEdBakJEO0FBa0JELENBcENEOztBQXNDQStDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQm5ELFdBQVcsQ0FBQ3dCLE1BQVosQ0FBbUIsQ0FBQzRCLElBQUQsRUFBT0MsQ0FBUCxLQUFhcEMsTUFBTSxDQUFDcUMsTUFBUCxDQUFjRixJQUFkLEVBQW9CO0FBQ25FLEdBQUUsR0FBRUMsQ0FBQyxDQUFDRSxXQUFGLEVBQWdCLFFBQXBCLEdBQStCekIsT0FBRCxJQUFhRixNQUFNLENBQUN5QixDQUFELEVBQUl2QixPQUFKO0FBRGtCLENBQXBCLENBQWhDLEVBRWI7QUFBRTlCLEVBQUFBO0FBQUYsQ0FGYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpO1xuY29uc3QgSm9pID0gcmVxdWlyZSgnam9pLXN0cmljdCcpO1xuXG5jb25zdCBwbHVnaW5UeXBlcyA9IFsnRklMVEVSJywgJ0lOSkVDVCcsICdTT1JUJ107XG5cbmNvbnN0IGpvaW4gPSAoaW5wdXQpID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gaW5wdXQuZmlsdGVyKChlKSA9PiAhIWUpLmpvaW4oJy4nKTtcbiAgaWYgKHJlc3VsdCA9PT0gJyonKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGlmIChyZXN1bHQuZW5kc1dpdGgoJy4qJykpIHtcbiAgICByZXR1cm4gcmVzdWx0LnNsaWNlKDAsIC0xKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuY29uc3QgYXNTY2hlbWEgPSAoaW5wdXQpID0+IHtcbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBpbnB1dDtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShpbnB1dCkpIHtcbiAgICBjb25zdCBjb21waWxlZCA9IGlucHV0Lm1hcCgodikgPT4gYXNTY2hlbWEodikpO1xuICAgIHJldHVybiAocikgPT4gKFxuICAgICAgQXJyYXkuaXNBcnJheShyKVxuICAgICAgJiYgci5ldmVyeSgoZSkgPT4gY29tcGlsZWQuc29tZSgodikgPT4gdihlKSA9PT0gdHJ1ZSkpXG4gICAgKTtcbiAgfVxuICBhc3NlcnQoaW5wdXQgaW5zdGFuY2VvZiBPYmplY3QpO1xuICBjb25zdCBjb21waWxlZCA9IE9iamVjdC5lbnRyaWVzKGlucHV0KS5tYXAoKFtrLCB2XSkgPT4gW2ssIGFzU2NoZW1hKHYpXSk7XG4gIHJldHVybiAocikgPT4gKFxuICAgIHIgaW5zdGFuY2VvZiBPYmplY3RcbiAgICAmJiAhQXJyYXkuaXNBcnJheShyKVxuICAgICYmIE9iamVjdC5rZXlzKHIpLmxlbmd0aCA9PT0gY29tcGlsZWQubGVuZ3RoXG4gICAgJiYgY29tcGlsZWQuZXZlcnkoKFtrLCB2XSkgPT4gdihyW2tdKSA9PT0gdHJ1ZSlcbiAgKTtcbn07XG5cbmNvbnN0IGV4dHJhY3RLZXlzID0gKHByZWZpeCwgaW5wdXQpID0+IHtcbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBbcHJlZml4XTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShpbnB1dCkpIHtcbiAgICBhc3NlcnQoaW5wdXQubGVuZ3RoID09PSAxKTtcbiAgICByZXR1cm4gZXh0cmFjdEtleXMocHJlZml4LCBpbnB1dFswXSk7XG4gIH1cbiAgYXNzZXJ0KGlucHV0IGluc3RhbmNlb2YgT2JqZWN0KTtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGlucHV0KS5yZWR1Y2UoKHAsIFtrLCB2XSkgPT4ge1xuICAgIGV4dHJhY3RLZXlzKGAke3ByZWZpeH0uJHtrfWAsIHYpXG4gICAgICAuZm9yRWFjaCgoZSkgPT4gcC5wdXNoKGUpKTtcbiAgICByZXR1cm4gcDtcbiAgfSwgW10pO1xufTtcblxuY29uc3QgcGx1Z2luID0gKHR5cGUsIG9wdGlvbnMpID0+IHtcbiAgSm9pLmFzc2VydChcbiAgICB7IHR5cGUsIG9wdGlvbnMgfSxcbiAgICBKb2kub2JqZWN0KHtcbiAgICAgIHR5cGU6IEpvaS5zdHJpbmcoKS52YWxpZCguLi5wbHVnaW5UeXBlcyksXG4gICAgICBvcHRpb25zOiBKb2kub2JqZWN0KHtcbiAgICAgICAgdGFyZ2V0OiBKb2kuc3RyaW5nKCksIC8vIHRhcmdldCBjYW4gbm90IGJlIFwiXCIsIHVzZSBcIipcIiBpbnN0ZWFkXG4gICAgICAgIHJlcXVpcmVzOiBKb2kuYXJyYXkoKS5pdGVtcyhKb2kuc3RyaW5nKCkpLFxuICAgICAgICBmbjogSm9pLmZ1bmN0aW9uKCksXG4gICAgICAgIHNjaGVtYTogdHlwZSA9PT0gJ0lOSkVDVCcgPyBKb2kuYWx0ZXJuYXRpdmVzKEpvaS5vYmplY3QoKSwgSm9pLmFycmF5KCksIEpvaS5mdW5jdGlvbigpKSA6IEpvaS5mb3JiaWRkZW4oKSxcbiAgICAgICAgbGltaXQ6IHR5cGUgPT09ICdTT1JUJyA/IEpvaS5mdW5jdGlvbigpLm9wdGlvbmFsKCkgOiBKb2kuZm9yYmlkZGVuKClcbiAgICAgIH0pXG4gICAgfSlcbiAgKTtcblxuICBjb25zdCB7XG4gICAgdGFyZ2V0LCByZXF1aXJlcywgZm4sIHNjaGVtYSwgbGltaXRcbiAgfSA9IG9wdGlvbnM7XG4gIHJldHVybiAocHJlZml4KSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0QWJzID0gam9pbihbcHJlZml4LCB0YXJnZXRdKTtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICBwcmVmaXgsXG4gICAgICB0YXJnZXQ6IHRhcmdldEFicyxcbiAgICAgIHRhcmdldHM6IFt0YXJnZXRBYnNdLFxuICAgICAgdGFyZ2V0UmVsOiB0YXJnZXQsXG4gICAgICByZXF1aXJlczogcmVxdWlyZXMubWFwKChmKSA9PiAoZi5zdGFydHNXaXRoKCcvJykgPyBmLnNsaWNlKDEpIDogam9pbihbcHJlZml4LCBmXSkpKSxcbiAgICAgIHR5cGUsXG4gICAgICBmbixcbiAgICAgIGxpbWl0XG4gICAgfTtcbiAgICBpZiAodHlwZSA9PT0gJ0lOSkVDVCcpIHtcbiAgICAgIHJlc3VsdC5zY2hlbWEgPSBhc1NjaGVtYShzY2hlbWEpO1xuICAgICAgcmVzdWx0LnRhcmdldHMgPSBleHRyYWN0S2V5cyh0YXJnZXRBYnMsIHNjaGVtYSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBsdWdpblR5cGVzLnJlZHVjZSgocHJldiwgdCkgPT4gT2JqZWN0LmFzc2lnbihwcmV2LCB7XG4gIFtgJHt0LnRvTG93ZXJDYXNlKCl9UGx1Z2luYF06IChvcHRpb25zKSA9PiBwbHVnaW4odCwgb3B0aW9ucylcbn0pLCB7IHBsdWdpblR5cGVzIH0pO1xuIl19

@@ -5,4 +5,2 @@ const assert = require('assert');

const Joi = require('joi-strict');
const objectScan = require('object-scan');

@@ -47,3 +45,3 @@

const result = p.fn(args);
Joi.assert(result, p.schema);
assert(p.schema(result) === true);
set(value, p.targetRel, result);

@@ -222,2 +220,2 @@ });

};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3Jld3JpdGVyLmpzIl0sIm5hbWVzIjpbImFzc2VydCIsInJlcXVpcmUiLCJzZXQiLCJKb2kiLCJvYmplY3RTY2FuIiwib2JqZWN0RmllbGRzIiwic29ydEZuIiwicGx1Z2luVHlwZXMiLCJjb21waWxlVGFyZ2V0VG9DYWxsYmFjayIsInR5cGUiLCJwbHVnaW5zIiwiZXZlcnkiLCJwIiwidGFyZ2V0VG9QbHVnaW5zIiwicmVkdWNlIiwicHJldiIsInBsdWdpbiIsImtleSIsInByZWZpeCIsInRhcmdldCIsImVuZHNXaXRoIiwic2xpY2UiLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJwdXNoIiwiZW50cmllcyIsInBzIiwiZm4iLCJ2YWx1ZSIsInBhcmVudHMiLCJjb250ZXh0IiwiYXJncyIsImZvckVhY2giLCJyZXN1bHQiLCJzY2hlbWEiLCJ0YXJnZXRSZWwiLCJtYXAiLCJjb21waWxlTWV0YSIsImZpZWxkcyIsInBsdWdpbnNCeVR5cGUiLCJjIiwiaW5hY3RpdmVQbHVnaW5zIiwicmVxdWlyZWRGaWVsZHMiLCJpZ25vcmVkRmllbGRzIiwiU2V0IiwiaSIsImxlbmd0aCIsImZpZWxkIiwiaiIsInRhcmdldHMiLCJpbmNsdWRlcyIsInN0YXJ0c1dpdGgiLCJyZXF1aXJlcyIsInNwbGljZSIsImFkZCIsInRvTG93ZXJDYXNlIiwiZmllbGRzVG9SZXF1ZXN0IiwiZmlsdGVyIiwiZSIsImhhcyIsIm1vZHVsZSIsImV4cG9ydHMiLCJwbHVnaW5NYXAiLCJkYXRhU3RvcmVGaWVsZHMiLCJBcnJheSIsImlzQXJyYXkiLCJhbGxvd2VkRmllbGRzIiwidCIsImluaXQiLCJmIiwiRXJyb3IiLCJqb2luIiwiaW5qZWN0Q2JzIiwiZmlsdGVyQ2JzIiwic29ydENicyIsImluamVjdFJld3JpdGVyIiwiaW5wdXQiLCJrZXlzIiwidXNlQXJyYXlTZWxlY3RvciIsImpvaW5lZCIsImZpbHRlckZuIiwibWF0Y2hlZEJ5IiwibSIsImZpbHRlclJld3JpdGVyIiwic29tZSIsInBhcmVudCIsInNvcnRSZXdyaXRlciIsImxvb2t1cHMiLCJNYXAiLCJsb29rdXAiLCJzb3J0IiwiYSIsImIiLCJnZXQiLCJsaW1pdHMiLCJsaW1pdCIsImwiLCJOdW1iZXIiLCJpc0ludGVnZXIiLCJNYXRoIiwibWluIiwicmV3cml0ZSIsInJldGFpbiJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNQyxHQUFHLEdBQUdELE9BQU8sQ0FBQyxZQUFELENBQW5COztBQUNBLE1BQU1FLEdBQUcsR0FBR0YsT0FBTyxDQUFDLFlBQUQsQ0FBbkI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsYUFBRCxDQUExQjs7QUFDQSxNQUFNSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyxlQUFELENBQTVCOztBQUNBLE1BQU1LLE1BQU0sR0FBR0wsT0FBTyxDQUFDLFdBQUQsQ0FBdEI7O0FBQ0EsTUFBTTtBQUFFTSxFQUFBQTtBQUFGLElBQWtCTixPQUFPLENBQUMsVUFBRCxDQUEvQjs7QUFFQSxNQUFNTyx1QkFBdUIsR0FBRyxDQUFDQyxJQUFELEVBQU9DLE9BQVAsS0FBbUI7QUFDakRWLEVBQUFBLE1BQU0sQ0FBQ1UsT0FBTyxDQUFDQyxLQUFSLENBQWVDLENBQUQsSUFBT0EsQ0FBQyxDQUFDSCxJQUFGLEtBQVdBLElBQWhDLENBQUQsQ0FBTjtBQUVBLFFBQU1JLGVBQWUsR0FBR0gsT0FBTyxDQUM1QkksTUFEcUIsQ0FDZCxDQUFDQyxJQUFELEVBQU9DLE1BQVAsS0FBa0I7QUFDeEI7QUFDQSxVQUFNQyxHQUFHLEdBQUdSLElBQUksS0FBSyxRQUFULEdBQ1JPLE1BQU0sQ0FBQ0UsTUFEQyxHQUVQRixNQUFNLENBQUNHLE1BQVAsQ0FBY0MsUUFBZCxDQUF1QixHQUF2QixJQUE4QkosTUFBTSxDQUFDRyxNQUFQLENBQWNFLEtBQWQsQ0FBb0IsQ0FBcEIsRUFBdUIsQ0FBQyxDQUF4QixDQUE5QixHQUEyREws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TUFBTSxDQUFDcEYsS0FBUCxDQUFjc0YsQ0FBRCxJQUFPQyxNQUFNLENBQUNDLFNBQVAsQ0FBaUJGLENBQWpCLEtBQXVCQSxDQUFDLElBQUksQ0FBaEQsQ0FBRCxDQUFOO0FBQ0FuRSxnQkFBQUEsT0FBTyxDQUFDLENBQUQsQ0FBUCxDQUFXd0IsTUFBWCxDQUFrQjhDLElBQUksQ0FBQ0MsR0FBTCxDQUFTLEdBQUdOLE1BQVosQ0FBbEI7QUFDRDs7QUFDRFAsY0FBQUEsT0FBTyxDQUFDbEMsTUFBUixDQUFlckMsR0FBRyxDQUFDOEIsTUFBSixHQUFhLENBQTVCO0FBQ0Q7O0FBQ0QsbUJBQU8sSUFBUDtBQUNEO0FBdkJxQyxTQUF2QixDQUFWLENBd0JKOEIsS0F4QkksQ0FBUDtBQXlCRCxPQTNCRDs7QUE2QkEsYUFBTztBQUNMcEIsUUFBQUEsZUFESztBQUVMNkMsUUFBQUEsT0FBTyxFQUFFLENBQUN6QixLQUFELEVBQVE5QyxPQUFPLEdBQUcsRUFBbEIsS0FBeUI7QUFDaEMvQixVQUFBQSxNQUFNLENBQUMrQixPQUFPLFlBQVlSLE1BQW5CLElBQTZCLENBQUMwQyxLQUFLLENBQUNDLE9BQU4sQ0FBY25DLE9BQWQsQ0FBL0IsQ0FBTjtBQUNBNkMsVUFBQUEsY0FBYyxDQUFDQyxLQUFELEVBQVE5QyxPQUFSLENBQWQ7QUFDQXFELFVBQUFBLGNBQWMsQ0FBQ1AsS0FBRCxFQUFROUMsT0FBUixDQUFkO0FBQ0F3RCxVQUFBQSxZQUFZLENBQUNWLEtBQUQsRUFBUTlDLE9BQVIsQ0FBWjtBQUNBMUIsVUFBQUEsWUFBWSxDQUFDa0csTUFBYixDQUFvQjFCLEtBQXBCLEVBQTJCdEMsTUFBM0I7QUFDRDtBQVJJLE9BQVA7QUFVRDtBQXRGSSxHQUFQO0FBd0ZELENBdkdEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7XG5jb25zdCBzZXQgPSByZXF1aXJlKCdsb2Rhc2guc2V0Jyk7XG5jb25zdCBKb2kgPSByZXF1aXJlKCdqb2ktc3RyaWN0Jyk7XG5jb25zdCBvYmplY3RTY2FuID0gcmVxdWlyZSgnb2JqZWN0LXNjYW4nKTtcbmNvbnN0IG9iamVjdEZpZWxkcyA9IHJlcXVpcmUoJ29iamVjdC1maWVsZHMnKTtcbmNvbnN0IHNvcnRGbiA9IHJlcXVpcmUoJy4vc29ydC1mbicpO1xuY29uc3QgeyBwbHVnaW5UeXBlcyB9ID0gcmVxdWlyZSgnLi9wbHVnaW4nKTtcblxuY29uc3QgY29tcGlsZVRhcmdldFRvQ2FsbGJhY2sgPSAodHlwZSwgcGx1Z2lucykgPT4ge1xuICBhc3NlcnQocGx1Z2lucy5ldmVyeSgocCkgPT4gcC50eXBlID09PSB0eXBlKSk7XG5cbiAgY29uc3QgdGFyZ2V0VG9QbHVnaW5zID0gcGx1Z2luc1xuICAgIC5yZWR1Y2UoKHByZXYsIHBsdWdpbikgPT4ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5lc3RlZC10ZXJuYXJ5XG4gICAgICBjb25zdCBrZXkgPSB0eXBlID09PSAnSU5KRUNUJ1xuICAgICAgICA/IHBsdWdpbi5wcmVmaXhcbiAgICAgICAgOiAocGx1Z2luLnRhcmdldC5lbmRzV2l0aCgnLicpID8gcGx1Z2luLnRhcmdldC5zbGljZSgwLCAtMSkgOiBwbHVnaW4udGFyZ2V0KTtcbiAgICAgIGlmIChwcmV2W2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHByZXYsIHsgW2tleV06IFtdIH0pO1xuICAgICAgfVxuICAgICAgcHJldltrZXldLnB1c2gocGx1Z2luKTtcbiAgICAgIHJldHVybiBwcmV2O1xuICAgIH0sIHt9KTtcblxuICByZXR1cm4gT2JqZWN0XG4gICAgLmVudHJpZXModGFyZ2V0VG9QbHVnaW5zKVxuICAgIC5yZWR1Y2UoKHByZXYsIFt0YXJnZXQsIHBzXSkgPT4gT2JqZWN0LmFzc2lnbihwcmV2LCB7XG4gICAgICBbdGFyZ2V0XToge1xuICAgICAgICBmbjogKGtleSwgdmFsdWUsIHBhcmVudHMsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICBjb25zdCBhcmdzID0ge1xuICAgICAgICAgICAga2V5LCB2YWx1ZSwgcGFyZW50cywgY29udGV4dFxuICAgICAgICAgIH07XG4gICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdJTkpFQ1QnOlxuICAgICAgICAgICAgICBwcy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gcC5mbihhcmdzKTtcbiAgICAgICAgICAgICAgICBKb2kuYXNzZXJ0KHJlc3VsdCwgcC5zY2hlbWEpO1xuICAgICAgICAgICAgICAgIHNldCh2YWx1ZSwgcC50YXJnZXRSZWwsIHJlc3VsdCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICBjYXNlICdGSUxURVInOlxuICAgICAgICAgICAgICByZXR1cm4gcHMuZXZlcnkoKHApID0+IHAuZm4oYXJncykpO1xuICAgICAgICAgICAgY2FzZSAnU09SVCc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICByZXR1cm4gcHMubWFwKChwKSA9PiBwLmZuKGFyZ3MpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHBsdWdpbnM6IHBzXG4gICAgICB9XG4gICAgfSksIHt9KTtcbn07XG5cbmNvbnN0IGNvbXBpbGVNZXRhID0gKHBsdWdpbnMsIGZpZWxkcykgPT4ge1xuICBjb25zdCBwbHVnaW5zQnlUeXBlID0gcGx1Z2luVHlwZXMucmVkdWNlKChwLCBjKSA9PiBPYmplY3QuYXNzaWduKHAsIHsgW2NdOiBbXSB9KSwge30pO1xuXG4gIGNvbnN0IGluYWN0aXZlUGx1Z2lucyA9IFsuLi5wbHVnaW5zXTtcbiAgY29uc3QgcmVxdWlyZWRGaWVsZHMgPSBbLi4uZmllbGRzXTtcbiAgY29uc3QgaWdub3JlZEZpZWxkcyA9IG5ldyBTZXQoKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHJlcXVpcmVkRmllbGRzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgY29uc3QgZmllbGQgPSByZXF1aXJlZEZpZWxkc1tpXTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGluYWN0aXZlUGx1Z2lucy5sZW5ndGg7IGogKz0gMSkge1xuICAgICAgY29uc3QgcGx1Z2luID0gaW5hY3RpdmVQbHVnaW5zW2pdO1xuICAgICAgaWYgKFxuICAgICAgICBwbHVnaW4udGFyZ2V0cy5pbmNsdWRlcyhmaWVsZClcbiAgICAgICAgfHwgKHBsdWdpbi50eXBlICE9PSAnSU5KRUNUJyAmJiAoXG4gICAgICAgICAgYCR7ZmllbGR9LmAgPT09IHBsdWdpbi50YXJnZXRcbiAgICAgICAgICB8fCBmaWVsZC5zdGFydHNXaXRoKHBsdWdpbi50YXJnZXQpXG4gICAgICAgICkpXG4gICAgICApIHtcbiAgICAgICAgcmVxdWlyZWRGaWVsZHMucHVzaCguLi5wbHVnaW4ucmVxdWlyZXMpO1xuICAgICAgICBpbmFjdGl2ZVBsdWdpbnMuc3BsaWNlKGosIDEpO1xuICAgICAgICBqIC09IDE7XG4gICAgICAgIHBsdWdpbnNCeVR5cGVbcGx1Z2luLnR5cGVdLnB1c2gocGx1Z2luKTtcbiAgICAgICAgaWYgKHBsdWdpbi50eXBlID09PSAnSU5KRUNUJykge1xuICAgICAgICAgIHBsdWdpbi50YXJnZXRzLmZvckVhY2goKHRhcmdldCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFwbHVnaW4ucmVxdWlyZXMuaW5jbHVkZXModGFyZ2V0KSkge1xuICAgICAgICAgICAgICBpZ25vcmVkRmllbGRzLmFkZCh0YXJnZXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHBsdWdpbnNCeVR5cGUpLnJlZHVjZSgocCwgW3R5cGUsIHBzXSkgPT4gT2JqZWN0LmFzc2lnbihwLCB7XG4gICAgW2Ake3R5cGUudG9Mb3dlckNhc2UoKX1DYnNgXTogY29tcGlsZVRhcmdldFRvQ2FsbGJhY2sodHlwZSwgcHMpXG4gIH0pLCB7XG4gICAgZmllbGRzVG9SZXF1ZXN0OiBbLi4ubmV3IFNldChyZXF1aXJlZEZpZWxkcyldLmZpbHRlcigoZSkgPT4gIWlnbm9yZWRGaWVsZHMuaGFzKGUpKVxuICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gKHBsdWdpbk1hcCwgZGF0YVN0b3JlRmllbGRzKSA9PiB7XG4gIGFzc2VydChwbHVnaW5NYXAgaW5zdGFuY2VvZiBPYmplY3QgJiYgIUFycmF5LmlzQXJyYXkocGx1Z2luTWFwKSk7XG4gIGFzc2VydChBcnJheS5pc0FycmF5KGRhdGFTdG9yZUZpZWxkcykgJiYgZGF0YVN0b3JlRmllbGRzLmV2ZXJ5KChlKSA9PiB0eXBlb2YgZSA9PT0gJ3N0cmluZycpKTtcblxuICBjb25zdCBwbHVnaW5zID0gT2JqZWN0LmVudHJpZXMocGx1Z2luTWFwKS5yZWR1Y2UoKHByZXYsIFtwcmVmaXgsIHBzXSkgPT4ge1xuICAgIHBzLmZvckVhY2goKHApID0+IHByZXYucHVzaChwKHByZWZpeCkpKTtcbiAgICByZXR1cm4gcHJldjtcbiAgfSwgW10pO1xuICBjb25zdCBhbGxvd2VkRmllbGRzID0gWy4uLnBsdWdpbnMucmVkdWNlKChwLCBjKSA9PiB7XG4gICAgaWYgKGMudHlwZSA9PT0gJ0lOSkVDVCcpIHtcbiAgICAgIGMudGFyZ2V0cy5mb3JFYWNoKCh0KSA9PiBwLmFkZCh0KSk7XG4gICAgfVxuICAgIHJldHVybiBwO1xuICB9LCBuZXcgU2V0KGRhdGFTdG9yZUZpZWxkcykpXTtcblxuICByZXR1cm4ge1xuICAgIGFsbG93ZWRGaWVsZHMsXG4gICAgaW5pdDogKGZpZWxkcykgPT4ge1xuICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoZmllbGRzKSk7XG5cbiAgICAgIGlmICghZmllbGRzLmV2ZXJ5KChmKSA9PiBhbGxvd2VkRmllbGRzLmluY2x1ZGVzKGYpKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEJhZCBmaWVsZCByZXF1ZXN0ZWQ6ICR7ZmllbGRzLmZpbHRlcigoZikgPT4gIWFsbG93ZWRGaWVsZHMuaW5jbHVkZXMoZikpLmpvaW4oJywgJyl9YCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaW5qZWN0Q2JzLFxuICAgICAgICBmaWx0ZXJDYnMsXG4gICAgICAgIHNvcnRDYnMsXG4gICAgICAgIGZpZWxkc1RvUmVxdWVzdFxuICAgICAgfSA9IGNvbXBpbGVNZXRhKHBsdWdpbnMsIGZpZWxkcyk7XG5cbiAgICAgIGFzc2VydChcbiAgICAgICAgZmllbGRzVG9SZXF1ZXN0LmV2ZXJ5KChmKSA9PiBkYXRhU3RvcmVGaWVsZHMuaW5jbHVkZXMoZikpLFxuICAgICAgICBgQmFkIEZpZWxkIFJlcXVlc3RlZDogJHtmaWVsZHNUb1JlcXVlc3QuZmlsdGVyKChmKSA9PiAhZGF0YVN0b3JlRmllbGRzLmluY2x1ZGVzKGYpKX1gXG4gICAgICApO1xuXG4gICAgICBjb25zdCBpbmplY3RSZXdyaXRlciA9IChpbnB1dCwgY29udGV4dCkgPT4gb2JqZWN0U2NhbihPYmplY3Qua2V5cyhpbmplY3RDYnMpLCB7XG4gICAgICAgIHVzZUFycmF5U2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICBqb2luZWQ6IGZhbHNlLFxuICAgICAgICBmaWx0ZXJGbjogKGtleSwgdmFsdWUsIHsgbWF0Y2hlZEJ5LCBwYXJlbnRzIH0pID0+IHtcbiAgICAgICAgICBtYXRjaGVkQnkuZm9yRWFjaCgobSkgPT4ge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih2YWx1ZSwgaW5qZWN0Q2JzW21dLmZuKGtleSwgdmFsdWUsIHBhcmVudHMsIGNvbnRleHQpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSkoaW5wdXQpO1xuICAgICAgY29uc3QgZmlsdGVyUmV3cml0ZXIgPSAoaW5wdXQsIGNvbnRleHQpID0+IG9iamVjdFNjYW4oT2JqZWN0LmtleXMoZmlsdGVyQ2JzKSwge1xuICAgICAgICB1c2VBcnJheVNlbGVjdG9yOiBmYWxzZSxcbiAgICAgICAgam9pbmVkOiBmYWxzZSxcbiAgICAgICAgZmlsdGVyRm46IChrZXksIHZhbHVlLCB7IG1hdGNoZWRCeSwgcGFyZW50cyB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gbWF0Y2hlZEJ5LnNvbWUoKG0pID0+IGZpbHRlckNic1ttXS5mbihrZXksIHZhbHVlLCBwYXJlbnRzLCBjb250ZXh0KSA9PT0gdHJ1ZSk7XG4gICAgICAgICAgaWYgKHJlc3VsdCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGtleS5sZW5ndGggPT09IDEgPyBpbnB1dCA6IHBhcmVudHNbMF07XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJlbnQpKSB7XG4gICAgICAgICAgICAgIHBhcmVudC5zcGxpY2Uoa2V5W2tleS5sZW5ndGggLSAxXSwgMSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBkZWxldGUgcGFyZW50W2tleVtrZXkubGVuZ3RoIC0gMV1dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICB9KShpbnB1dCk7XG4gICAgICBjb25zdCBzb3J0UmV3cml0ZXIgPSAoaW5wdXQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgbG9va3VwcyA9IFtdO1xuICAgICAgICByZXR1cm4gb2JqZWN0U2NhbihPYmplY3Qua2V5cyhzb3J0Q2JzKSwge1xuICAgICAgICAgIHVzZUFycmF5U2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICAgIGpvaW5lZDogZmFsc2UsXG4gICAgICAgICAgZmlsdGVyRm46IChrZXksIHZhbHVlLCB7IG1hdGNoZWRCeSwgcGFyZW50cyB9KSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShwYXJlbnRzWzBdKSwgJ1NvcnQgbXVzdCBiZSBvbiBcIkFycmF5XCIgdHlwZS4nKTtcbiAgICAgICAgICAgIGlmIChsb29rdXBzW2tleS5sZW5ndGggLSAxXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGxvb2t1cHNba2V5Lmxlbmd0aCAtIDFdID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbG9va3VwID0gbG9va3Vwc1trZXkubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBsb29rdXAuc2V0KHZhbHVlLCBzb3J0Q2JzW21hdGNoZWRCeVswXV0uZm4oa2V5LCB2YWx1ZSwgcGFyZW50cywgY29udGV4dCkpO1xuICAgICAgICAgICAgaWYgKGtleVtrZXkubGVuZ3RoIC0gMV0gPT09IDApIHtcbiAgICAgICAgICAgICAgcGFyZW50c1swXS5zb3J0KChhLCBiKSA9PiBzb3J0Rm4obG9va3VwLmdldChhKSwgbG9va3VwLmdldChiKSkpO1xuICAgICAgICAgICAgICBjb25zdCBsaW1pdHMgPSBzb3J0Q2JzW21hdGNoZWRCeVswXV0ucGx1Z2luc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKHApID0+IHAubGltaXQgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICAubWFwKChwKSA9PiBwLmxpbWl0KHsgY29udGV4dCB9KSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChsKSA9PiBsICE9PSB1bmRlZmluZWQpO1xuICAgICAgICAgICAgICBpZiAobGltaXRzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgICAgIGFzc2VydChsaW1pdHMuZXZlcnkoKGwpID0+IE51bWJlci5pc0ludGVnZXIobCkgJiYgbCA+PSAwKSk7XG4gICAgICAgICAgICAgICAgcGFyZW50c1swXS5zcGxpY2UoTWF0aC5taW4oLi4ubGltaXRzKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgbG9va3Vwcy5zcGxpY2Uoa2V5Lmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KShpbnB1dCk7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBmaWVsZHNUb1JlcXVlc3QsXG4gICAgICAgIHJld3JpdGU6IChpbnB1dCwgY29udGV4dCA9IHt9KSA9PiB7XG4gICAgICAgICAgYXNzZXJ0KGNvbnRleHQgaW5zdGFuY2VvZiBPYmplY3QgJiYgIUFycmF5LmlzQXJyYXkoY29udGV4dCkpO1xuICAgICAgICAgIGluamVjdFJld3JpdGVyKGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgICBmaWx0ZXJSZXdyaXRlcihpbnB1dCwgY29udGV4dCk7XG4gICAgICAgICAgc29ydFJld3JpdGVyKGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgICBvYmplY3RGaWVsZHMucmV0YWluKGlucHV0LCBmaWVsZHMpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfTtcbn07XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3Jld3JpdGVyLmpzIl0sIm5hbWVzIjpbImFzc2VydCIsInJlcXVpcmUiLCJzZXQiLCJvYmplY3RTY2FuIiwib2JqZWN0RmllbGRzIiwic29ydEZuIiwicGx1Z2luVHlwZXMiLCJjb21waWxlVGFyZ2V0VG9DYWxsYmFjayIsInR5cGUiLCJwbHVnaW5zIiwiZXZlcnkiLCJwIiwidGFyZ2V0VG9QbHVnaW5zIiwicmVkdWNlIiwicHJldiIsInBsdWdpbiIsImtleSIsInByZWZpeCIsInRhcmdldCIsImVuZHNXaXRoIiwic2xpY2UiLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJwdXNoIiwiZW50cmllcyIsInBzIiwiZm4iLCJ2YWx1ZSIsInBhcmVudHMiLCJjb250ZXh0IiwiYXJncyIsImZvckVhY2giLCJyZXN1bHQiLCJzY2hlbWEiLCJ0YXJnZXRSZWwiLCJtYXAiLCJjb21waWxlTWV0YSIsImZpZWxkcyIsInBsdWdpbnNCeVR5cGUiLCJjIiwiaW5hY3RpdmVQbHVnaW5zIiwicmVxdWlyZWRGaWVsZHMiLCJpZ25vcmVkRmllbGRzIiwiU2V0IiwiaSIsImxlbmd0aCIsImZpZWxkIiwiaiIsInRhcmdldHMiLCJpbmNsdWRlcyIsInN0YXJ0c1dpdGgiLCJyZXF1aXJlcyIsInNwbGljZSIsImFkZCIsInRvTG93ZXJDYXNlIiwiZmllbGRzVG9SZXF1ZXN0IiwiZmlsdGVyIiwiZSIsImhhcyIsIm1vZHVsZSIsImV4cG9ydHMiLCJwbHVnaW5NYXAiLCJkYXRhU3RvcmVGaWVsZHMiLCJBcnJheSIsImlzQXJyYXkiLCJhbGxvd2VkRmllbGRzIiwidCIsImluaXQiLCJmIiwiRXJyb3IiLCJqb2luIiwiaW5qZWN0Q2JzIiwiZmlsdGVyQ2JzIiwic29ydENicyIsImluamVjdFJld3JpdGVyIiwiaW5wdXQiLCJrZXlzIiwidXNlQXJyYXlTZWxlY3RvciIsImpvaW5lZCIsImZpbHRlckZuIiwibWF0Y2hlZEJ5IiwibSIsImZpbHRlclJld3JpdGVyIiwic29tZSIsInBhcmVudCIsInNvcnRSZXdyaXRlciIsImxvb2t1cHMiLCJNYXAiLCJsb29rdXAiLCJzb3J0IiwiYSIsImIiLCJnZXQiLCJsaW1pdHMiLCJsaW1pdCIsImwiLCJOdW1iZXIiLCJpc0ludGVnZXIiLCJNYXRoIiwibWluIiwicmV3cml0ZSIsInJldGFpbiJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNQyxHQUFHLEdBQUdELE9BQU8sQ0FBQyxZQUFELENBQW5COztBQUNBLE1BQU1FLFVBQVUsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsZUFBRCxDQUE1Qjs7QUFDQSxNQUFNSSxNQUFNLEdBQUdKLE9BQU8sQ0FBQyxXQUFELENBQXRCOztBQUNBLE1BQU07QUFBRUssRUFBQUE7QUFBRixJQUFrQkwsT0FBTyxDQUFDLFVBQUQsQ0FBL0I7O0FBRUEsTUFBTU0sdUJBQXVCLEdBQUcsQ0FBQ0MsSUFBRCxFQUFPQyxPQUFQLEtBQW1CO0FBQ2pEVCxFQUFBQSxNQUFNLENBQUNTLE9BQU8sQ0FBQ0MsS0FBUixDQUFlQyxDQUFELElBQU9BLENBQUMsQ0FBQ0gsSUFBRixLQUFXQSxJQUFoQyxDQUFELENBQU47QUFFQSxRQUFNSSxlQUFlLEdBQUdILE9BQU8sQ0FDNUJJLE1BRHFCLENBQ2QsQ0FBQ0MsSUFBRCxFQUFPQyxNQUFQLEtBQWtCO0FBQ3hCO0FBQ0EsVUFBTUMsR0FBRyxHQUFHUixJQUFJLEtBQUssUUFBVCxHQUNSTyxNQUFNLENBQUNFLE1BREMsR0FFUEYsTUFBTSxDQUFDRyxNQUFQLENBQWNDLFFBQWQsQ0FBdUIsR0FBdkIsSUFBOEJKLE1BQU0sQ0FBQ0csTUFBUCxDQUFjRSxLQUFkLENBQW9CLENBQXBCLEVBQXVCLENBQUMsQ0FBeEIsQ0FBOUIsR0FBMkRMLE1BQU0sQ0FBQ0csTUFGdkU7O0FBR0EsUUFBSUosSUFBSSxDQUFDRSxHQUFELENBQUos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QVAsQ0FBaUJGLENBQWpCLEtBQXVCQSxDQUFDLElBQUksQ0FBaEQsQ0FBRCxDQUFOO0FBQ0FuRSxnQkFBQUEsT0FBTyxDQUFDLENBQUQsQ0FBUCxDQUFXd0IsTUFBWCxDQUFrQjhDLElBQUksQ0FBQ0MsR0FBTCxDQUFTLEdBQUdOLE1BQVosQ0FBbEI7QUFDRDs7QUFDRFAsY0FBQUEsT0FBTyxDQUFDbEMsTUFBUixDQUFlckMsR0FBRyxDQUFDOEIsTUFBSixHQUFhLENBQTVCO0FBQ0Q7O0FBQ0QsbUJBQU8sSUFBUDtBQUNEO0FBdkJxQyxTQUF2QixDQUFWLENBd0JKOEIsS0F4QkksQ0FBUDtBQXlCRCxPQTNCRDs7QUE2QkEsYUFBTztBQUNMcEIsUUFBQUEsZUFESztBQUVMNkMsUUFBQUEsT0FBTyxFQUFFLENBQUN6QixLQUFELEVBQVE5QyxPQUFPLEdBQUcsRUFBbEIsS0FBeUI7QUFDaEM5QixVQUFBQSxNQUFNLENBQUM4QixPQUFPLFlBQVlSLE1BQW5CLElBQTZCLENBQUMwQyxLQUFLLENBQUNDLE9BQU4sQ0FBY25DLE9BQWQsQ0FBL0IsQ0FBTjtBQUNBNkMsVUFBQUEsY0FBYyxDQUFDQyxLQUFELEVBQVE5QyxPQUFSLENBQWQ7QUFDQXFELFVBQUFBLGNBQWMsQ0FBQ1AsS0FBRCxFQUFROUMsT0FBUixDQUFkO0FBQ0F3RCxVQUFBQSxZQUFZLENBQUNWLEtBQUQsRUFBUTlDLE9BQVIsQ0FBWjtBQUNBMUIsVUFBQUEsWUFBWSxDQUFDa0csTUFBYixDQUFvQjFCLEtBQXBCLEVBQTJCdEMsTUFBM0I7QUFDRDtBQVJJLE9BQVA7QUFVRDtBQXRGSSxHQUFQO0FBd0ZELENBdkdEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7XG5jb25zdCBzZXQgPSByZXF1aXJlKCdsb2Rhc2guc2V0Jyk7XG5jb25zdCBvYmplY3RTY2FuID0gcmVxdWlyZSgnb2JqZWN0LXNjYW4nKTtcbmNvbnN0IG9iamVjdEZpZWxkcyA9IHJlcXVpcmUoJ29iamVjdC1maWVsZHMnKTtcbmNvbnN0IHNvcnRGbiA9IHJlcXVpcmUoJy4vc29ydC1mbicpO1xuY29uc3QgeyBwbHVnaW5UeXBlcyB9ID0gcmVxdWlyZSgnLi9wbHVnaW4nKTtcblxuY29uc3QgY29tcGlsZVRhcmdldFRvQ2FsbGJhY2sgPSAodHlwZSwgcGx1Z2lucykgPT4ge1xuICBhc3NlcnQocGx1Z2lucy5ldmVyeSgocCkgPT4gcC50eXBlID09PSB0eXBlKSk7XG5cbiAgY29uc3QgdGFyZ2V0VG9QbHVnaW5zID0gcGx1Z2luc1xuICAgIC5yZWR1Y2UoKHByZXYsIHBsdWdpbikgPT4ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5lc3RlZC10ZXJuYXJ5XG4gICAgICBjb25zdCBrZXkgPSB0eXBlID09PSAnSU5KRUNUJ1xuICAgICAgICA/IHBsdWdpbi5wcmVmaXhcbiAgICAgICAgOiAocGx1Z2luLnRhcmdldC5lbmRzV2l0aCgnLicpID8gcGx1Z2luLnRhcmdldC5zbGljZSgwLCAtMSkgOiBwbHVnaW4udGFyZ2V0KTtcbiAgICAgIGlmIChwcmV2W2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHByZXYsIHsgW2tleV06IFtdIH0pO1xuICAgICAgfVxuICAgICAgcHJldltrZXldLnB1c2gocGx1Z2luKTtcbiAgICAgIHJldHVybiBwcmV2O1xuICAgIH0sIHt9KTtcblxuICByZXR1cm4gT2JqZWN0XG4gICAgLmVudHJpZXModGFyZ2V0VG9QbHVnaW5zKVxuICAgIC5yZWR1Y2UoKHByZXYsIFt0YXJnZXQsIHBzXSkgPT4gT2JqZWN0LmFzc2lnbihwcmV2LCB7XG4gICAgICBbdGFyZ2V0XToge1xuICAgICAgICBmbjogKGtleSwgdmFsdWUsIHBhcmVudHMsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICBjb25zdCBhcmdzID0ge1xuICAgICAgICAgICAga2V5LCB2YWx1ZSwgcGFyZW50cywgY29udGV4dFxuICAgICAgICAgIH07XG4gICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdJTkpFQ1QnOlxuICAgICAgICAgICAgICBwcy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gcC5mbihhcmdzKTtcbiAgICAgICAgICAgICAgICBhc3NlcnQocC5zY2hlbWEocmVzdWx0KSA9PT0gdHJ1ZSk7XG4gICAgICAgICAgICAgICAgc2V0KHZhbHVlLCBwLnRhcmdldFJlbCwgcmVzdWx0KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgJ0ZJTFRFUic6XG4gICAgICAgICAgICAgIHJldHVybiBwcy5ldmVyeSgocCkgPT4gcC5mbihhcmdzKSk7XG4gICAgICAgICAgICBjYXNlICdTT1JUJzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHJldHVybiBwcy5tYXAoKHApID0+IHAuZm4oYXJncykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcGx1Z2luczogcHNcbiAgICAgIH1cbiAgICB9KSwge30pO1xufTtcblxuY29uc3QgY29tcGlsZU1ldGEgPSAocGx1Z2lucywgZmllbGRzKSA9PiB7XG4gIGNvbnN0IHBsdWdpbnNCeVR5cGUgPSBwbHVnaW5UeXBlcy5yZWR1Y2UoKHAsIGMpID0+IE9iamVjdC5hc3NpZ24ocCwgeyBbY106IFtdIH0pLCB7fSk7XG5cbiAgY29uc3QgaW5hY3RpdmVQbHVnaW5zID0gWy4uLnBsdWdpbnNdO1xuICBjb25zdCByZXF1aXJlZEZpZWxkcyA9IFsuLi5maWVsZHNdO1xuICBjb25zdCBpZ25vcmVkRmllbGRzID0gbmV3IFNldCgpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcmVxdWlyZWRGaWVsZHMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICBjb25zdCBmaWVsZCA9IHJlcXVpcmVkRmllbGRzW2ldO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgaW5hY3RpdmVQbHVnaW5zLmxlbmd0aDsgaiArPSAxKSB7XG4gICAgICBjb25zdCBwbHVnaW4gPSBpbmFjdGl2ZVBsdWdpbnNbal07XG4gICAgICBpZiAoXG4gICAgICAgIHBsdWdpbi50YXJnZXRzLmluY2x1ZGVzKGZpZWxkKVxuICAgICAgICB8fCAocGx1Z2luLnR5cGUgIT09ICdJTkpFQ1QnICYmIChcbiAgICAgICAgICBgJHtmaWVsZH0uYCA9PT0gcGx1Z2luLnRhcmdldFxuICAgICAgICAgIHx8IGZpZWxkLnN0YXJ0c1dpdGgocGx1Z2luLnRhcmdldClcbiAgICAgICAgKSlcbiAgICAgICkge1xuICAgICAgICByZXF1aXJlZEZpZWxkcy5wdXNoKC4uLnBsdWdpbi5yZXF1aXJlcyk7XG4gICAgICAgIGluYWN0aXZlUGx1Z2lucy5zcGxpY2UoaiwgMSk7XG4gICAgICAgIGogLT0gMTtcbiAgICAgICAgcGx1Z2luc0J5VHlwZVtwbHVnaW4udHlwZV0ucHVzaChwbHVnaW4pO1xuICAgICAgICBpZiAocGx1Z2luLnR5cGUgPT09ICdJTkpFQ1QnKSB7XG4gICAgICAgICAgcGx1Z2luLnRhcmdldHMuZm9yRWFjaCgodGFyZ2V0KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXBsdWdpbi5yZXF1aXJlcy5pbmNsdWRlcyh0YXJnZXQpKSB7XG4gICAgICAgICAgICAgIGlnbm9yZWRGaWVsZHMuYWRkKHRhcmdldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocGx1Z2luc0J5VHlwZSkucmVkdWNlKChwLCBbdHlwZSwgcHNdKSA9PiBPYmplY3QuYXNzaWduKHAsIHtcbiAgICBbYCR7dHlwZS50b0xvd2VyQ2FzZSgpfUNic2BdOiBjb21waWxlVGFyZ2V0VG9DYWxsYmFjayh0eXBlLCBwcylcbiAgfSksIHtcbiAgICBmaWVsZHNUb1JlcXVlc3Q6IFsuLi5uZXcgU2V0KHJlcXVpcmVkRmllbGRzKV0uZmlsdGVyKChlKSA9PiAhaWdub3JlZEZpZWxkcy5oYXMoZSkpXG4gIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSAocGx1Z2luTWFwLCBkYXRhU3RvcmVGaWVsZHMpID0+IHtcbiAgYXNzZXJ0KHBsdWdpbk1hcCBpbnN0YW5jZW9mIE9iamVjdCAmJiAhQXJyYXkuaXNBcnJheShwbHVnaW5NYXApKTtcbiAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoZGF0YVN0b3JlRmllbGRzKSAmJiBkYXRhU3RvcmVGaWVsZHMuZXZlcnkoKGUpID0+IHR5cGVvZiBlID09PSAnc3RyaW5nJykpO1xuXG4gIGNvbnN0IHBsdWdpbnMgPSBPYmplY3QuZW50cmllcyhwbHVnaW5NYXApLnJlZHVjZSgocHJldiwgW3ByZWZpeCwgcHNdKSA9PiB7XG4gICAgcHMuZm9yRWFjaCgocCkgPT4gcHJldi5wdXNoKHAocHJlZml4KSkpO1xuICAgIHJldHVybiBwcmV2O1xuICB9LCBbXSk7XG4gIGNvbnN0IGFsbG93ZWRGaWVsZHMgPSBbLi4ucGx1Z2lucy5yZWR1Y2UoKHAsIGMpID0+IHtcbiAgICBpZiAoYy50eXBlID09PSAnSU5KRUNUJykge1xuICAgICAgYy50YXJnZXRzLmZvckVhY2goKHQpID0+IHAuYWRkKHQpKTtcbiAgICB9XG4gICAgcmV0dXJuIHA7XG4gIH0sIG5ldyBTZXQoZGF0YVN0b3JlRmllbGRzKSldO1xuXG4gIHJldHVybiB7XG4gICAgYWxsb3dlZEZpZWxkcyxcbiAgICBpbml0OiAoZmllbGRzKSA9PiB7XG4gICAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShmaWVsZHMpKTtcblxuICAgICAgaWYgKCFmaWVsZHMuZXZlcnkoKGYpID0+IGFsbG93ZWRGaWVsZHMuaW5jbHVkZXMoZikpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQmFkIGZpZWxkIHJlcXVlc3RlZDogJHtmaWVsZHMuZmlsdGVyKChmKSA9PiAhYWxsb3dlZEZpZWxkcy5pbmNsdWRlcyhmKSkuam9pbignLCAnKX1gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qge1xuICAgICAgICBpbmplY3RDYnMsXG4gICAgICAgIGZpbHRlckNicyxcbiAgICAgICAgc29ydENicyxcbiAgICAgICAgZmllbGRzVG9SZXF1ZXN0XG4gICAgICB9ID0gY29tcGlsZU1ldGEocGx1Z2lucywgZmllbGRzKTtcblxuICAgICAgYXNzZXJ0KFxuICAgICAgICBmaWVsZHNUb1JlcXVlc3QuZXZlcnkoKGYpID0+IGRhdGFTdG9yZUZpZWxkcy5pbmNsdWRlcyhmKSksXG4gICAgICAgIGBCYWQgRmllbGQgUmVxdWVzdGVkOiAke2ZpZWxkc1RvUmVxdWVzdC5maWx0ZXIoKGYpID0+ICFkYXRhU3RvcmVGaWVsZHMuaW5jbHVkZXMoZikpfWBcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGluamVjdFJld3JpdGVyID0gKGlucHV0LCBjb250ZXh0KSA9PiBvYmplY3RTY2FuKE9iamVjdC5rZXlzKGluamVjdENicyksIHtcbiAgICAgICAgdXNlQXJyYXlTZWxlY3RvcjogZmFsc2UsXG4gICAgICAgIGpvaW5lZDogZmFsc2UsXG4gICAgICAgIGZpbHRlckZuOiAoa2V5LCB2YWx1ZSwgeyBtYXRjaGVkQnksIHBhcmVudHMgfSkgPT4ge1xuICAgICAgICAgIG1hdGNoZWRCeS5mb3JFYWNoKChtKSA9PiB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHZhbHVlLCBpbmplY3RDYnNbbV0uZm4oa2V5LCB2YWx1ZSwgcGFyZW50cywgY29udGV4dCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KShpbnB1dCk7XG4gICAgICBjb25zdCBmaWx0ZXJSZXdyaXRlciA9IChpbnB1dCwgY29udGV4dCkgPT4gb2JqZWN0U2NhbihPYmplY3Qua2V5cyhmaWx0ZXJDYnMpLCB7XG4gICAgICAgIHVzZUFycmF5U2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICBqb2luZWQ6IGZhbHNlLFxuICAgICAgICBmaWx0ZXJGbjogKGtleSwgdmFsdWUsIHsgbWF0Y2hlZEJ5LCBwYXJlbnRzIH0pID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBtYXRjaGVkQnkuc29tZSgobSkgPT4gZmlsdGVyQ2JzW21dLmZuKGtleSwgdmFsdWUsIHBhcmVudHMsIGNvbnRleHQpID09PSB0cnVlKTtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSBmYWxzZSkge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0ga2V5Lmxlbmd0aCA9PT0gMSA/IGlucHV0IDogcGFyZW50c1swXTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhcmVudCkpIHtcbiAgICAgICAgICAgICAgcGFyZW50LnNwbGljZShrZXlba2V5Lmxlbmd0aCAtIDFdLCAxKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGRlbGV0ZSBwYXJlbnRba2V5W2tleS5sZW5ndGggLSAxXV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH0pKGlucHV0KTtcbiAgICAgIGNvbnN0IHNvcnRSZXdyaXRlciA9IChpbnB1dCwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBsb29rdXBzID0gW107XG4gICAgICAgIHJldHVybiBvYmplY3RTY2FuKE9iamVjdC5rZXlzKHNvcnRDYnMpLCB7XG4gICAgICAgICAgdXNlQXJyYXlTZWxlY3RvcjogZmFsc2UsXG4gICAgICAgICAgam9pbmVkOiBmYWxzZSxcbiAgICAgICAgICBmaWx0ZXJGbjogKGtleSwgdmFsdWUsIHsgbWF0Y2hlZEJ5LCBwYXJlbnRzIH0pID0+IHtcbiAgICAgICAgICAgIGFzc2VydChBcnJheS5pc0FycmF5KHBhcmVudHNbMF0pLCAnU29ydCBtdXN0IGJlIG9uIFwiQXJyYXlcIiB0eXBlLicpO1xuICAgICAgICAgICAgaWYgKGxvb2t1cHNba2V5Lmxlbmd0aCAtIDFdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgbG9va3Vwc1trZXkubGVuZ3RoIC0gMV0gPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsb29rdXAgPSBsb29rdXBzW2tleS5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGxvb2t1cC5zZXQodmFsdWUsIHNvcnRDYnNbbWF0Y2hlZEJ5WzBdXS5mbihrZXksIHZhbHVlLCBwYXJlbnRzLCBjb250ZXh0KSk7XG4gICAgICAgICAgICBpZiAoa2V5W2tleS5sZW5ndGggLSAxXSA9PT0gMCkge1xuICAgICAgICAgICAgICBwYXJlbnRzWzBdLnNvcnQoKGEsIGIpID0+IHNvcnRGbihsb29rdXAuZ2V0KGEpLCBsb29rdXAuZ2V0KGIpKSk7XG4gICAgICAgICAgICAgIGNvbnN0IGxpbWl0cyA9IHNvcnRDYnNbbWF0Y2hlZEJ5WzBdXS5wbHVnaW5zXG4gICAgICAgICAgICAgICAgLmZpbHRlcigocCkgPT4gcC5saW1pdCAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIC5tYXAoKHApID0+IHAubGltaXQoeyBjb250ZXh0IH0pKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGwpID0+IGwgIT09IHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgIGlmIChsaW1pdHMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgYXNzZXJ0KGxpbWl0cy5ldmVyeSgobCkgPT4gTnVtYmVyLmlzSW50ZWdlcihsKSAmJiBsID49IDApKTtcbiAgICAgICAgICAgICAgICBwYXJlbnRzWzBdLnNwbGljZShNYXRoLm1pbiguLi5saW1pdHMpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBsb29rdXBzLnNwbGljZShrZXkubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pKGlucHV0KTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZpZWxkc1RvUmVxdWVzdCxcbiAgICAgICAgcmV3cml0ZTogKGlucHV0LCBjb250ZXh0ID0ge30pID0+IHtcbiAgICAgICAgICBhc3NlcnQoY29udGV4dCBpbnN0YW5jZW9mIE9iamVjdCAmJiAhQXJyYXkuaXNBcnJheShjb250ZXh0KSk7XG4gICAgICAgICAgaW5qZWN0UmV3cml0ZXIoaW5wdXQsIGNvbnRleHQpO1xuICAgICAgICAgIGZpbHRlclJld3JpdGVyKGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgICBzb3J0UmV3cml0ZXIoaW5wdXQsIGNvbnRleHQpO1xuICAgICAgICAgIG9iamVjdEZpZWxkcy5yZXRhaW4oaW5wdXQsIGZpZWxkcyk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9O1xufTtcbiJdfQ==
{
"name": "object-rewrite",
"version": "3.2.23",
"version": "4.0.0",
"description": "Rewrite Object(s) in place using plugins.",

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

"lodash.set": "4.3.2",
"object-fields": "1.3.31",
"object-fields": "1.3.32",
"object-scan": "11.0.3"

@@ -22,3 +22,3 @@ },

"@blackflux/eslint-plugin-rules": "1.3.27",
"@blackflux/robo-config-plugin": "3.1.0",
"@blackflux/robo-config-plugin": "3.1.1",
"babel-eslint": "10.1.0",

@@ -33,3 +33,3 @@ "chai": "4.2.0",

"eslint-plugin-mocha": "6.3.0",
"js-gardener": "2.0.145",
"js-gardener": "2.0.146",
"lodash.get": "4.4.2",

@@ -36,0 +36,0 @@ "nyc": "15.0.0",

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