New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

react-form

Package Overview
Dependencies
Maintainers
1
Versions
122
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-form - npm Package Compare versions

Comparing version 1.2.2 to 1.2.3

8

lib/form.js

@@ -266,5 +266,2 @@ 'use strict';

if (_utils2.default.get(nestedErrors, path)) {
return undefined;
}
if (_utils2.default.isObject(value)) {

@@ -280,2 +277,5 @@ return _utils2.default.mapValues(value, function (d, i) {

}
if (_utils2.default.get(nestedErrors, path)) {
return undefined;
}
return value;

@@ -285,2 +285,2 @@ };

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtLmpzIl0sIm5hbWVzIjpbIm5vb3AiLCJyZW9wIiwiZCIsIkZvcm1EZWZhdWx0UHJvcHMiLCJsb2FkU3RhdGUiLCJkZWZhdWx0VmFsdWVzIiwicHJlVmFsaWRhdGUiLCJ2YWxpZGF0ZSIsIm9uVmFsaWRhdGlvbkZhaWwiLCJvbkNoYW5nZSIsInNhdmVTdGF0ZSIsIndpbGxVbm1vdW50IiwicHJlU3VibWl0Iiwib25TdWJtaXQiLCJwb3N0U3VibWl0IiwiY29tcG9uZW50IiwiY3JlYXRlQ2xhc3MiLCJkaXNwbGF5TmFtZSIsImNoaWxkQ29udGV4dFR5cGVzIiwiZm9ybUFQSSIsIlByb3BUeXBlcyIsIm9iamVjdCIsImdldENoaWxkQ29udGV4dCIsImdldEFQSSIsImdldERlZmF1bHRQcm9wcyIsImdldEluaXRpYWxTdGF0ZSIsInByb3BzIiwidmFsdWVzIiwibWVyZ2VkVmFsdWVzIiwiY2xvbmUiLCJ0b3VjaGVkIiwiZXJyb3JzIiwibmVzdGVkRXJyb3JzIiwiY29tcG9uZW50V2lsbE1vdW50IiwiZW1pdENoYW5nZSIsInN0YXRlIiwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyIsInNldEZvcm1TdGF0ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50Iiwic2V0QWxsVmFsdWVzIiwibm9Ub3VjaCIsInNldFZhbHVlIiwiZmllbGQiLCJ2YWx1ZSIsInNldCIsImdldFZhbHVlIiwiZmFsbGJhY2siLCJ2YWwiLCJnZXQiLCJzZXROZXN0ZWRFcnJvciIsImdldEVycm9yIiwic2V0VG91Y2hlZCIsImdldFRvdWNoZWQiLCJkaXJ0eSIsImFkZFZhbHVlIiwicmVtb3ZlVmFsdWUiLCJpbmRleCIsImZpZWxkVmFsdWUiLCJzbGljZSIsInN3YXBWYWx1ZXMiLCJkZXN0SW5kZXgiLCJmaWVsZFZhbHVlcyIsInNldEFsbFRvdWNoZWQiLCJyZXNldEZvcm0iLCJzdWJtaXRGb3JtIiwiZSIsInByZXZlbnREZWZhdWx0IiwicHJlU3VibWl0VmFsdWVzIiwibmV3U3RhdGUiLCJzaWxlbnQiLCJzZXRTdGF0ZSIsImluaXRpYWwiLCJyZW1vdmVOZXN0ZWRFcnJvclZhbHVlcyIsImNsZWFuRXJyb3JzIiwicmVuZGVyIiwiY2hpbGRyZW4iLCJyZXN0IiwicmVzb2x2ZWRDaGlsZCIsIlJvb3RFbCIsImVyciIsImlzT2JqZWN0IiwicmVzb2x2ZWQiLCJtYXBWYWx1ZXMiLCJmb3VuZCIsInBpY2tCeSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJpc0FycmF5IiwibWFwIiwiZmluZCIsInJlY3Vyc2UiLCJwYXRoIiwiaSIsImtleSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLE9BQU8sU0FBUEEsSUFBTyxHQUFNLENBQUUsQ0FBckI7QUFDQSxJQUFNQyxPQUFPLFNBQVBBLElBQU87QUFBQSxTQUFLQyxDQUFMO0FBQUEsQ0FBYjs7QUFFTyxJQUFNQyw4Q0FBbUI7QUFDOUJDLGFBQVdKLElBRG1CO0FBRTlCSyxpQkFBZSxFQUZlO0FBRzlCQyxlQUFhTCxJQUhpQjtBQUk5Qk0sWUFBVTtBQUFBLFdBQU0sSUFBTjtBQUFBLEdBSm9CO0FBSzlCQyxvQkFBa0JSLElBTFk7QUFNOUJTLFlBQVVULElBTm9CO0FBTzlCVSxhQUFXVixJQVBtQjtBQVE5QlcsZUFBYVgsSUFSaUI7QUFTOUJZLGFBQVdYLElBVG1CO0FBVTlCWSxZQUFVYixJQVZvQjtBQVc5QmMsY0FBWWQsSUFYa0I7QUFZOUJlLGFBQVc7QUFabUIsQ0FBekI7O2tCQWVRLGdCQUFNQyxXQUFOLENBQWtCO0FBQy9CQyxlQUFhLE1BRGtCO0FBRS9CQyxxQkFBbUI7QUFDakJDLGFBQVMsZ0JBQU1DLFNBQU4sQ0FBZ0JDO0FBRFIsR0FGWTtBQUsvQkMsaUJBTCtCLDZCQUtaO0FBQ2pCLFdBQU87QUFDTEgsZUFBUyxLQUFLSSxNQUFMO0FBREosS0FBUDtBQUdELEdBVDhCOztBQVUvQjtBQUNBQyxpQkFYK0IsNkJBV1o7QUFDakIsV0FBT3JCLGdCQUFQ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LENBQUQsRUFBSTZGLEdBQUosRUFBWTtBQUMzQixlQUFPSCxRQUFRMUYsQ0FBUiwrQkFBZTJGLElBQWYsSUFBcUJFLEdBQXJCLEdBQVA7QUFDRCxPQUZNLENBQVA7QUFHRDtBQUNELFdBQU9wRCxLQUFQO0FBQ0QsR0FmRDtBQWdCQSxTQUFPaUQsUUFBUWpELEtBQVIsQ0FBUDtBQUNEIiwiZmlsZSI6ImZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgXyBmcm9tICcuL3V0aWxzJ1xuXG5jb25zdCBub29wID0gKCkgPT4ge31cbmNvbnN0IHJlb3AgPSBkID0+IGRcblxuZXhwb3J0IGNvbnN0IEZvcm1EZWZhdWx0UHJvcHMgPSB7XG4gIGxvYWRTdGF0ZTogbm9vcCxcbiAgZGVmYXVsdFZhbHVlczoge30sXG4gIHByZVZhbGlkYXRlOiByZW9wLFxuICB2YWxpZGF0ZTogKCkgPT4gbnVsbCxcbiAgb25WYWxpZGF0aW9uRmFpbDogbm9vcCxcbiAgb25DaGFuZ2U6IG5vb3AsXG4gIHNhdmVTdGF0ZTogbm9vcCxcbiAgd2lsbFVubW91bnQ6IG5vb3AsXG4gIHByZVN1Ym1pdDogcmVvcCxcbiAgb25TdWJtaXQ6IG5vb3AsXG4gIHBvc3RTdWJtaXQ6IG5vb3AsXG4gIGNvbXBvbmVudDogJ2Rpdidcbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICBkaXNwbGF5TmFtZTogJ0Zvcm0nLFxuICBjaGlsZENvbnRleHRUeXBlczoge1xuICAgIGZvcm1BUEk6IFJlYWN0LlByb3BUeXBlcy5vYmplY3RcbiAgfSxcbiAgZ2V0Q2hpbGRDb250ZXh0ICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZm9ybUFQSTogdGhpcy5nZXRBUEkoKVxuICAgIH1cbiAgfSxcbiAgLy8gTGlmZWN5Y2xlXG4gIGdldERlZmF1bHRQcm9wcyAoKSB7XG4gICAgcmV0dXJuIEZvcm1EZWZhdWx0UHJvcHNcbiAgfSxcbiAgZ2V0SW5pdGlhbFN0YXRlICgpIHtcbiAgICBjb25zdCB7XG4gICAgICBkZWZhdWx0VmFsdWVzLFxuICAgICAgdmFsdWVzLFxuICAgICAgbG9hZFN0YXRlXG4gICAgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBtZXJnZWRWYWx1ZXMgPSB7XG4gICAgICAuLi5fLmNsb25lKGRlZmF1bHRWYWx1ZXMpLFxuICAgICAgLi4uXy5jbG9uZSh2YWx1ZXMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGxvYWRTdGF0ZSh0aGlzLnByb3BzLCB0aGlzKSB8fCB7XG4gICAgICB2YWx1ZXM6IG1lcmdlZFZhbHVlcyxcbiAgICAgIHRvdWNoZWQ6IHt9LFxuICAgICAgZXJyb3JzOiB0aGlzLnZhbGlkYXRlKG1lcmdlZFZhbHVlcyksXG4gICAgICBuZXN0ZWRFcnJvcnM6IHt9XG4gICAgfVxuICB9LFxuICBjb21wb25lbnRXaWxsTW91bnQgKCkge1xuICAgIHRoaXMuZW1pdENoYW5nZSh0aGlzLnN0YXRlLCB0cnVlKVxuICB9LFxuICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIChwcm9wcykge1xuICAgIGlmIChwcm9wcy52YWx1ZXMgPT09IHRoaXMucHJvcHMudmFsdWVzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLnNldEZvcm1TdGF0ZSh7XG4gICAgICB2YWx1ZXM6IF8uY2xvbmUocHJvcHMudmFsdWVzKSB8fCB7fVxuICAgIH0sIHRydWUpXG4gIH0sXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50ICgpIHtcbiAgICB0aGlzLnByb3BzLndpbGxVbm1vdW50KHRoaXMuc3RhdGUsIHRoaXMucHJvcHMsIHRoaXMpXG4gIH0sXG5cbiAgLy8gQVBJXG4gIHNldEFsbFZhbHVlcyAodmFsdWVzLCBub1RvdWNoKSB7XG4gICAgaWYgKG5vVG91Y2gpIHtcbiAgICAgIHJldHVybiB0aGlzLnNldEZvcm1TdGF0ZSh7dmFsdWVzfSlcbiAgICB9XG4gICAgdGhpcy5zZXRGb3JtU3RhdGUoe3ZhbHVlcywgdG91Y2hlZDoge319KVxuICB9LFxuICBzZXRWYWx1ZSAoZmllbGQsIHZhbHVlLCBub1RvdWNoKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlXG4gICAgY29uc3QgdmFsdWVzID0gXy5zZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgdmFsdWUpXG4gICAgLy8gQWxzbyBzZXQgdG91Y2hlZCBzaW5jZSB0aGUgdmFsdWUgaXMgY2hhbmdpbmdcbiAgICBpZiAobm9Ub3VjaCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2V0Rm9ybVN0YXRlKHt2YWx1ZXN9KVxuICAgIH1cbiAgICBjb25zdCB0b3VjaGVkID0gXy5zZXQoc3RhdGUudG91Y2hlZCwgZmllbGQpXG4gICAgdGhpcy5zZXRGb3JtU3RhdGUoe3ZhbHVlcywgdG91Y2hlZH0pXG4gIH0sXG4gIGdldFZhbHVlIChmaWVsZCwgZmFsbGJhY2spIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVcbiAgICBjb25zdCB2YWwgPSBfLmdldChzdGF0ZS52YWx1ZXMsIGZpZWxkKVxuICAgIHJldHVybiB0eXBlb2YgdmFsICE9PSAndW5kZWZpbmVkJyA/IHZhbCA6IGZhbGxiYWNrXG4gIH0sXG4gIHNldE5lc3RlZEVycm9yIChmaWVsZCwgdmFsdWUgPSB0cnVlKSB7XG4gICAgY29uc3QgbmVzdGVkRXJyb3JzID0gXy5zZXQodGhpcy5zdGF0ZS5uZXN0ZWRFcnJvcnMsIGZpZWxkLCB2YWx1ZSlcbiAgICB0aGlzLnNldEZvcm1TdGF0ZSh7bmVzdGVkRXJyb3JzfSlcbiAgfSxcbiAgZ2V0RXJyb3IgKGZpZWxkKSB7XG4gICAgcmV0dXJuIF8uZ2V0KHRoaXMuc3RhdGUuZXJyb3JzLCBmaWVsZClcbiAgfSxcbiAgc2V0VG91Y2hlZCAoZmllbGQsIHZhbHVlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRvdWNoZWQgPSBfLnNldCh0aGlzLnN0YXRlLnRvdWNoZWQsIGZpZWxkLCB2YWx1ZSlcbiAgICB0aGlzLnNldEZvcm1TdGF0ZSh7dG91Y2hlZH0pXG4gIH0sXG4gIGdldFRvdWNoZWQgKGZpZWxkKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlXG4gICAgaWYgKHRoaXMuc3RhdGUuZGlydHkgPT09IHRydWUgfHwgdGhpcy5wcm9wcy50b3VjaGVkID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gXy5nZXQoc3RhdGUudG91Y2hlZCwgZmllbGQpXG4gIH0sXG4gIGFkZFZhbHVlIChmaWVsZCwgdmFsdWUpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVcbiAgICBjb25zdCB2YWx1ZXMgPSBfLnNldChzdGF0ZS52YWx1ZXMsIGZpZWxkLCBbXG4gICAgICAuLi5fLmdldChzdGF0ZS52YWx1ZXMsIGZpZWxkLCBbXSksXG4gICAgICB2YWx1ZVxuICAgIF0pXG4gICAgdGhpcy5zZXRGb3JtU3RhdGUoe3ZhbHVlc30pXG4gIH0sXG4gIHJlbW92ZVZhbHVlIChmaWVsZCwgaW5kZXgpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVcbiAgICBjb25zdCBmaWVsZFZhbHVlID0gXy5nZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW10pXG4gICAgY29uc3QgdmFsdWVzID0gXy5zZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW1xuICAgICAgLi4uZmllbGRWYWx1ZS5zbGljZSgwLCBpbmRleCksXG4gICAgICAuLi5maWVsZFZhbHVlLnNsaWNlKGluZGV4ICsgMSlcbiAgICBdKVxuICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHt2YWx1ZXN9KVxuICB9LFxuICBzd2FwVmFsdWVzIChmaWVsZCwgaW5kZXgsIGRlc3RJbmRleCkge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVxuICAgIGNvbnN0IGZpZWxkVmFsdWVzID0gXy5nZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW10pXG4gICAgY29uc3QgdmFsdWVzID0gXy5zZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW1xuICAgICAgLi4uZmllbGRWYWx1ZXMuc2xpY2UoMCwgaW5kZXgpLFxuICAgICAgZmllbGRWYWx1ZXNbZGVzdEluZGV4XSxcbiAgICAgIC4uLmZpZWxkVmFsdWVzLnNsaWNlKGluZGV4ICsgMSwgZGVzdEluZGV4KSxcbiAgICAgIGZpZWxkVmFsdWVzW2luZGV4XSxcbiAgICAgIC4uLmZpZWxkVmFsdWVzLnNsaWNlKGRlc3RJbmRleCArIDEpXG4gICAgXSlcbiAgICB0aGlzLnNldEZvcm1TdGF0ZSh7dmFsdWVzfSlcbiAgfSxcbiAgc2V0QWxsVG91Y2hlZCAoZGlydHkgPSB0cnVlLCBzdGF0ZSkge1xuICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZGlydHk6ICEhZGlydHlcbiAgICB9KVxuICB9LFxuICByZXNldEZvcm0gKCkge1xuICAgIHJldHVybiB0aGlzLnNldEZvcm1TdGF0ZSh0aGlzLmdldEluaXRpYWxTdGF0ZSgpKVxuICB9LFxuICBzdWJtaXRGb3JtIChlKSB7XG4gICAgZSAmJiBlLnByZXZlbnREZWZhdWx0ICYmIGUucHJldmVudERlZmF1bHQoZSlcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVcbiAgICBjb25zdCBlcnJvcnMgPSB0aGlzLnZhbGlkYXRlKHN0YXRlLnZhbHVlcywgc3RhdGUsIHRoaXMucHJvcHMpXG4gICAgaWYgKGVycm9ycykge1xuICAgICAgaWYgKCFzdGF0ZS5kaXJ0eSkge1xuICAgICAgICB0aGlzLnNldEFsbFRvdWNoZWQodHJ1ZSwge2Vycm9yc30pXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vblZhbGlkYXRpb25GYWlsKHN0YXRlLnZhbHVlcywgc3RhdGUsIHRoaXMucHJvcHMsIHRoaXMpXG4gICAgfVxuICAgIGNvbnN0IHByZVN1Ym1pdFZhbHVlcyA9IHRoaXMucHJvcHMucHJlU3VibWl0KHN0YXRlLnZhbHVlcywgc3RhdGUsIHRoaXMucHJvcHMsIHRoaXMpXG4gICAgdGhpcy5wcm9wcy5vblN1Ym1pdChwcmVTdWJtaXRWYWx1ZXMsIHN0YXRlLCB0aGlzLnByb3BzLCB0aGlzKVxuICAgIHRoaXMucHJvcHMucG9zdFN1Ym1pdChwcmVTdWJtaXRWYWx1ZXMsIHN0YXRlLCB0aGlzLnByb3BzLCB0aGlzKVxuICB9LFxuXG4gIC8vIFV0aWxzXG4gIGdldEFQSSAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNldEFsbFZhbHVlczogdGhpcy5zZXRBbGxWYWx1ZXMsXG4gICAgICBzZXRWYWx1ZTogdGhpcy5zZXRWYWx1ZSxcbiAgICAgIGdldFZhbHVlOiB0aGlzLmdldFZhbHVlLFxuICAgICAgc2V0TmVzdGVkRXJyb3I6IHRoaXMuc2V0TmVzdGVkRXJyb3IsXG4gICAgICBnZXRFcnJvcjogdGhpcy5nZXRFcnJvcixcbiAgICAgIHNldFRvdWNoZWQ6IHRoaXMuc2V0VG91Y2hlZCxcbiAgICAgIGdldFRvdWNoZWQ6IHRoaXMuZ2V0VG91Y2hlZCxcbiAgICAgIGFkZFZhbHVlOiB0aGlzLmFkZFZhbHVlLFxuICAgICAgcmVtb3ZlVmFsdWU6IHRoaXMucmVtb3ZlVmFsdWUsXG4gICAgICBzd2FwVmFsdWVzOiB0aGlzLnN3YXBWYWx1ZXMsXG4gICAgICBzZXRBbGxUb3VjaGVkOiB0aGlzLnNldEFsbFRvdWNoZWQsXG4gICAgICByZXNldEZvcm06IHRoaXMucmVzZXRGb3JtLFxuICAgICAgc3VibWl0Rm9ybTogdGhpcy5zdWJtaXRGb3JtXG4gICAgfVxuICB9LFxuICBzZXRGb3JtU3RhdGUgKG5ld1N0YXRlLCBzaWxlbnQpIHtcbiAgICBpZiAobmV3U3RhdGUgJiYgbmV3U3RhdGUudmFsdWVzICYmICFuZXdTdGF0ZS5lcnJvcnMpIHtcbiAgICAgIG5ld1N0YXRlLnZhbHVlcyA9IHRoaXMucHJvcHMucHJlVmFsaWRhdGUobmV3U3RhdGUudmFsdWVzLCBuZXdTdGF0ZSwgdGhpcy5wcm9wcywgdGhpcylcbiAgICAgIG5ld1N0YXRlLmVycm9ycyA9IHRoaXMudmFsaWRhdGUobmV3U3RhdGUudmFsdWVzLCBuZXdTdGF0ZSwgdGhpcy5wcm9wcylcbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0ZShuZXdTdGF0ZSwgKCkgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5zYXZlU3RhdGUodGhpcy5zdGF0ZSwgdGhpcy5wcm9wcywgdGhpcylcbiAgICAgIGlmICghc2lsZW50KSB7XG4gICAgICAgIHRoaXMuZW1pdENoYW5nZSh0aGlzLnN0YXRlLCB0aGlzLnByb3BzKVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGVtaXRDaGFuZ2UgKHN0YXRlLCBpbml0aWFsKSB7XG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZShzdGF0ZSwgdGhpcy5wcm9wcywgaW5pdGlhbCwgdGhpcylcbiAgfSxcbiAgdmFsaWRhdGUgKHZhbHVlcywgc3RhdGUsIHByb3BzKSB7XG4gICAgY29uc3QgZXJyb3JzID0gdGhpcy5wcm9wcy52YWxpZGF0ZShcbiAgICAgIHJlbW92ZU5lc3RlZEVycm9yVmFsdWVzKHZhbHVlcywgdGhpcy5zdGF0ZSA/IHRoaXMuc3RhdGUubmVzdGVkRXJyb3JzIDoge30pLFxuICAgICAgc3RhdGUsXG4gICAgICBwcm9wcyxcbiAgICAgIHRoaXNcbiAgICApXG4gICAgcmV0dXJuIGNsZWFuRXJyb3JzKGVycm9ycylcbiAgfSxcbiAgLy8gUmVuZGVyXG4gIHJlbmRlciAoKSB7XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgIC4uLnRoaXMuZ2V0QVBJKClcbiAgICB9XG4gICAgY29uc3QgeyBjb21wb25lbnQsIGNoaWxkcmVuLCAuLi5yZXN0IH0gPSBwcm9wc1xuICAgIGNvbnN0IHJlc29sdmVkQ2hpbGQgPSB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicgPyBjaGlsZHJlbihyZXN0KSA6IGNoaWxkcmVuXG4gICAgY29uc3QgUm9vdEVsID0gY29tcG9uZW50XG4gICAgaWYgKCFSb290RWwpIHtcbiAgICAgIHJldHVybiByZXNvbHZlZENoaWxkXG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8Um9vdEVsIGNsYXNzTmFtZT0nUmVhY3RGb3JtJz57cmVzb2x2ZWRDaGlsZH08L1Jvb3RFbD5cbiAgICApXG4gIH1cbn0pXG5cbi8vIFV0aWxzXG5cbmZ1bmN0aW9uIGNsZWFuRXJyb3JzIChlcnIpIHtcbiAgaWYgKF8uaXNPYmplY3QoZXJyKSkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gXy5tYXBWYWx1ZXMoZXJyLCBjbGVhbkVycm9ycylcbiAgICBjb25zdCBmb3VuZCA9IF8ucGlja0J5KHJlc29sdmVkLCBkID0+IGQpXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGZvdW5kKS5sZW5ndGggPyByZXNvbHZlZCA6IHVuZGVmaW5lZFxuICB9XG4gIGlmIChfLmlzQXJyYXkoZXJyKSkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gZXJyLm1hcChjbGVhbkVycm9ycylcbiAgICBjb25zdCBmb3VuZCA9IHJlc29sdmVkLmZpbmQoZCA9PiBkKVxuICAgIHJldHVybiBmb3VuZCA/IHJlc29sdmVkIDogdW5kZWZpbmVkXG4gIH1cbiAgcmV0dXJuIGVyclxufVxuXG5mdW5jdGlvbiByZW1vdmVOZXN0ZWRFcnJvclZhbHVlcyAodmFsdWUsIG5lc3RlZEVycm9ycykge1xuICBjb25zdCByZWN1cnNlID0gKHZhbHVlLCBwYXRoID0gW10pID0+IHtcbiAgICBpZiAoXy5nZXQobmVzdGVkRXJyb3JzLCBwYXRoKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbiAgICBpZiAoXy5pc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBfLm1hcFZhbHVlcyh2YWx1ZSwgKGQsIGkpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlY3Vyc2UoZCwgWy4uLnBhdGgsIGldKVxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKF8uaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoKGQsIGtleSkgPT4ge1xuICAgICAgICByZXR1cm4gcmVjdXJzZShkLCBbLi4ucGF0aCwga2V5XSlcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiB2YWx1ZVxuICB9XG4gIHJldHVybiByZWN1cnNlKHZhbHVlKVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtLmpzIl0sIm5hbWVzIjpbIm5vb3AiLCJyZW9wIiwiZCIsIkZvcm1EZWZhdWx0UHJvcHMiLCJsb2FkU3RhdGUiLCJkZWZhdWx0VmFsdWVzIiwicHJlVmFsaWRhdGUiLCJ2YWxpZGF0ZSIsIm9uVmFsaWRhdGlvbkZhaWwiLCJvbkNoYW5nZSIsInNhdmVTdGF0ZSIsIndpbGxVbm1vdW50IiwicHJlU3VibWl0Iiwib25TdWJtaXQiLCJwb3N0U3VibWl0IiwiY29tcG9uZW50IiwiY3JlYXRlQ2xhc3MiLCJkaXNwbGF5TmFtZSIsImNoaWxkQ29udGV4dFR5cGVzIiwiZm9ybUFQSSIsIlByb3BUeXBlcyIsIm9iamVjdCIsImdldENoaWxkQ29udGV4dCIsImdldEFQSSIsImdldERlZmF1bHRQcm9wcyIsImdldEluaXRpYWxTdGF0ZSIsInByb3BzIiwidmFsdWVzIiwibWVyZ2VkVmFsdWVzIiwiY2xvbmUiLCJ0b3VjaGVkIiwiZXJyb3JzIiwibmVzdGVkRXJyb3JzIiwiY29tcG9uZW50V2lsbE1vdW50IiwiZW1pdENoYW5nZSIsInN0YXRlIiwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyIsInNldEZvcm1TdGF0ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50Iiwic2V0QWxsVmFsdWVzIiwibm9Ub3VjaCIsInNldFZhbHVlIiwiZmllbGQiLCJ2YWx1ZSIsInNldCIsImdldFZhbHVlIiwiZmFsbGJhY2siLCJ2YWwiLCJnZXQiLCJzZXROZXN0ZWRFcnJvciIsImdldEVycm9yIiwic2V0VG91Y2hlZCIsImdldFRvdWNoZWQiLCJkaXJ0eSIsImFkZFZhbHVlIiwicmVtb3ZlVmFsdWUiLCJpbmRleCIsImZpZWxkVmFsdWUiLCJzbGljZSIsInN3YXBWYWx1ZXMiLCJkZXN0SW5kZXgiLCJmaWVsZFZhbHVlcyIsInNldEFsbFRvdWNoZWQiLCJyZXNldEZvcm0iLCJzdWJtaXRGb3JtIiwiZSIsInByZXZlbnREZWZhdWx0IiwicHJlU3VibWl0VmFsdWVzIiwibmV3U3RhdGUiLCJzaWxlbnQiLCJzZXRTdGF0ZSIsImluaXRpYWwiLCJyZW1vdmVOZXN0ZWRFcnJvclZhbHVlcyIsImNsZWFuRXJyb3JzIiwicmVuZGVyIiwiY2hpbGRyZW4iLCJyZXN0IiwicmVzb2x2ZWRDaGlsZCIsIlJvb3RFbCIsImVyciIsImlzT2JqZWN0IiwicmVzb2x2ZWQiLCJtYXBWYWx1ZXMiLCJmb3VuZCIsInBpY2tCeSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJpc0FycmF5IiwibWFwIiwiZmluZCIsInJlY3Vyc2UiLCJwYXRoIiwiaSIsImtleSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLE9BQU8sU0FBUEEsSUFBTyxHQUFNLENBQUUsQ0FBckI7QUFDQSxJQUFNQyxPQUFPLFNBQVBBLElBQU87QUFBQSxTQUFLQyxDQUFMO0FBQUEsQ0FBYjs7QUFFTyxJQUFNQyw4Q0FBbUI7QUFDOUJDLGFBQVdKLElBRG1CO0FBRTlCSyxpQkFBZSxFQUZlO0FBRzlCQyxlQUFhTCxJQUhpQjtBQUk5Qk0sWUFBVTtBQUFBLFdBQU0sSUFBTjtBQUFBLEdBSm9CO0FBSzlCQyxvQkFBa0JSLElBTFk7QUFNOUJTLFlBQVVULElBTm9CO0FBTzlCVSxhQUFXVixJQVBtQjtBQVE5QlcsZUFBYVgsSUFSaUI7QUFTOUJZLGFBQVdYLElBVG1CO0FBVTlCWSxZQUFVYixJQVZvQjtBQVc5QmMsY0FBWWQsSUFYa0I7QUFZOUJlLGFBQVc7QUFabUIsQ0FBekI7O2tCQWVRLGdCQUFNQyxXQUFOLENBQWtCO0FBQy9CQyxlQUFhLE1BRGtCO0FBRS9CQyxxQkFBbUI7QUFDakJDLGFBQVMsZ0JBQU1DLFNBQU4sQ0FBZ0JDO0FBRFIsR0FGWTtBQUsvQkMsaUJBTCtCLDZCQUtaO0FBQ2pCLFdBQU87QUFDTEgsZUFBUyxLQUFLSSxNQUFMO0FBREosS0FBUDtBQUdELEdBVDhCOztBQVUvQjtBQUNBQyxpQkFYK0IsNkJBV1o7QUFDakIsV0FBT3JCLGdCQUFQ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LE9BRk0sQ0FBUDtBQUdEO0FBQ0QsUUFBSSxnQkFBRS9DLEdBQUYsQ0FBTWhCLFlBQU4sRUFBb0I2RCxJQUFwQixDQUFKLEVBQStCO0FBQzdCLGFBQU9MLFNBQVA7QUFDRDtBQUNELFdBQU83QyxLQUFQO0FBQ0QsR0FmRDtBQWdCQSxTQUFPaUQsUUFBUWpELEtBQVIsQ0FBUDtBQUNEIiwiZmlsZSI6ImZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgXyBmcm9tICcuL3V0aWxzJ1xuXG5jb25zdCBub29wID0gKCkgPT4ge31cbmNvbnN0IHJlb3AgPSBkID0+IGRcblxuZXhwb3J0IGNvbnN0IEZvcm1EZWZhdWx0UHJvcHMgPSB7XG4gIGxvYWRTdGF0ZTogbm9vcCxcbiAgZGVmYXVsdFZhbHVlczoge30sXG4gIHByZVZhbGlkYXRlOiByZW9wLFxuICB2YWxpZGF0ZTogKCkgPT4gbnVsbCxcbiAgb25WYWxpZGF0aW9uRmFpbDogbm9vcCxcbiAgb25DaGFuZ2U6IG5vb3AsXG4gIHNhdmVTdGF0ZTogbm9vcCxcbiAgd2lsbFVubW91bnQ6IG5vb3AsXG4gIHByZVN1Ym1pdDogcmVvcCxcbiAgb25TdWJtaXQ6IG5vb3AsXG4gIHBvc3RTdWJtaXQ6IG5vb3AsXG4gIGNvbXBvbmVudDogJ2Rpdidcbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICBkaXNwbGF5TmFtZTogJ0Zvcm0nLFxuICBjaGlsZENvbnRleHRUeXBlczoge1xuICAgIGZvcm1BUEk6IFJlYWN0LlByb3BUeXBlcy5vYmplY3RcbiAgfSxcbiAgZ2V0Q2hpbGRDb250ZXh0ICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZm9ybUFQSTogdGhpcy5nZXRBUEkoKVxuICAgIH1cbiAgfSxcbiAgLy8gTGlmZWN5Y2xlXG4gIGdldERlZmF1bHRQcm9wcyAoKSB7XG4gICAgcmV0dXJuIEZvcm1EZWZhdWx0UHJvcHNcbiAgfSxcbiAgZ2V0SW5pdGlhbFN0YXRlICgpIHtcbiAgICBjb25zdCB7XG4gICAgICBkZWZhdWx0VmFsdWVzLFxuICAgICAgdmFsdWVzLFxuICAgICAgbG9hZFN0YXRlXG4gICAgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBtZXJnZWRWYWx1ZXMgPSB7XG4gICAgICAuLi5fLmNsb25lKGRlZmF1bHRWYWx1ZXMpLFxuICAgICAgLi4uXy5jbG9uZSh2YWx1ZXMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGxvYWRTdGF0ZSh0aGlzLnByb3BzLCB0aGlzKSB8fCB7XG4gICAgICB2YWx1ZXM6IG1lcmdlZFZhbHVlcyxcbiAgICAgIHRvdWNoZWQ6IHt9LFxuICAgICAgZXJyb3JzOiB0aGlzLnZhbGlkYXRlKG1lcmdlZFZhbHVlcyksXG4gICAgICBuZXN0ZWRFcnJvcnM6IHt9XG4gICAgfVxuICB9LFxuICBjb21wb25lbnRXaWxsTW91bnQgKCkge1xuICAgIHRoaXMuZW1pdENoYW5nZSh0aGlzLnN0YXRlLCB0cnVlKVxuICB9LFxuICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIChwcm9wcykge1xuICAgIGlmIChwcm9wcy52YWx1ZXMgPT09IHRoaXMucHJvcHMudmFsdWVzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLnNldEZvcm1TdGF0ZSh7XG4gICAgICB2YWx1ZXM6IF8uY2xvbmUocHJvcHMudmFsdWVzKSB8fCB7fVxuICAgIH0sIHRydWUpXG4gIH0sXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50ICgpIHtcbiAgICB0aGlzLnByb3BzLndpbGxVbm1vdW50KHRoaXMuc3RhdGUsIHRoaXMucHJvcHMsIHRoaXMpXG4gIH0sXG5cbiAgLy8gQVBJXG4gIHNldEFsbFZhbHVlcyAodmFsdWVzLCBub1RvdWNoKSB7XG4gICAgaWYgKG5vVG91Y2gpIHtcbiAgICAgIHJldHVybiB0aGlzLnNldEZvcm1TdGF0ZSh7dmFsdWVzfSlcbiAgICB9XG4gICAgdGhpcy5zZXRGb3JtU3RhdGUoe3ZhbHVlcywgdG91Y2hlZDoge319KVxuICB9LFxuICBzZXRWYWx1ZSAoZmllbGQsIHZhbHVlLCBub1RvdWNoKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlXG4gICAgY29uc3QgdmFsdWVzID0gXy5zZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgdmFsdWUpXG4gICAgLy8gQWxzbyBzZXQgdG91Y2hlZCBzaW5jZSB0aGUgdmFsdWUgaXMgY2hhbmdpbmdcbiAgICBpZiAobm9Ub3VjaCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2V0Rm9ybVN0YXRlKHt2YWx1ZXN9KVxuICAgIH1cbiAgICBjb25zdCB0b3VjaGVkID0gXy5zZXQoc3RhdGUudG91Y2hlZCwgZmllbGQpXG4gICAgdGhpcy5zZXRGb3JtU3RhdGUoe3ZhbHVlcywgdG91Y2hlZH0pXG4gIH0sXG4gIGdldFZhbHVlIChmaWVsZCwgZmFsbGJhY2spIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVcbiAgICBjb25zdCB2YWwgPSBfLmdldChzdGF0ZS52YWx1ZXMsIGZpZWxkKVxuICAgIHJldHVybiB0eXBlb2YgdmFsICE9PSAndW5kZWZpbmVkJyA/IHZhbCA6IGZhbGxiYWNrXG4gIH0sXG4gIHNldE5lc3RlZEVycm9yIChmaWVsZCwgdmFsdWUgPSB0cnVlKSB7XG4gICAgY29uc3QgbmVzdGVkRXJyb3JzID0gXy5zZXQodGhpcy5zdGF0ZS5uZXN0ZWRFcnJvcnMsIGZpZWxkLCB2YWx1ZSlcbiAgICB0aGlzLnNldEZvcm1TdGF0ZSh7bmVzdGVkRXJyb3JzfSlcbiAgfSxcbiAgZ2V0RXJyb3IgKGZpZWxkKSB7XG4gICAgcmV0dXJuIF8uZ2V0KHRoaXMuc3RhdGUuZXJyb3JzLCBmaWVsZClcbiAgfSxcbiAgc2V0VG91Y2hlZCAoZmllbGQsIHZhbHVlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRvdWNoZWQgPSBfLnNldCh0aGlzLnN0YXRlLnRvdWNoZWQsIGZpZWxkLCB2YWx1ZSlcbiAgICB0aGlzLnNldEZvcm1TdGF0ZSh7dG91Y2hlZH0pXG4gIH0sXG4gIGdldFRvdWNoZWQgKGZpZWxkKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlXG4gICAgaWYgKHRoaXMuc3RhdGUuZGlydHkgPT09IHRydWUgfHwgdGhpcy5wcm9wcy50b3VjaGVkID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gXy5nZXQoc3RhdGUudG91Y2hlZCwgZmllbGQpXG4gIH0sXG4gIGFkZFZhbHVlIChmaWVsZCwgdmFsdWUpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVcbiAgICBjb25zdCB2YWx1ZXMgPSBfLnNldChzdGF0ZS52YWx1ZXMsIGZpZWxkLCBbXG4gICAgICAuLi5fLmdldChzdGF0ZS52YWx1ZXMsIGZpZWxkLCBbXSksXG4gICAgICB2YWx1ZVxuICAgIF0pXG4gICAgdGhpcy5zZXRGb3JtU3RhdGUoe3ZhbHVlc30pXG4gIH0sXG4gIHJlbW92ZVZhbHVlIChmaWVsZCwgaW5kZXgpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVcbiAgICBjb25zdCBmaWVsZFZhbHVlID0gXy5nZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW10pXG4gICAgY29uc3QgdmFsdWVzID0gXy5zZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW1xuICAgICAgLi4uZmllbGRWYWx1ZS5zbGljZSgwLCBpbmRleCksXG4gICAgICAuLi5maWVsZFZhbHVlLnNsaWNlKGluZGV4ICsgMSlcbiAgICBdKVxuICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHt2YWx1ZXN9KVxuICB9LFxuICBzd2FwVmFsdWVzIChmaWVsZCwgaW5kZXgsIGRlc3RJbmRleCkge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVxuICAgIGNvbnN0IGZpZWxkVmFsdWVzID0gXy5nZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW10pXG4gICAgY29uc3QgdmFsdWVzID0gXy5zZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW1xuICAgICAgLi4uZmllbGRWYWx1ZXMuc2xpY2UoMCwgaW5kZXgpLFxuICAgICAgZmllbGRWYWx1ZXNbZGVzdEluZGV4XSxcbiAgICAgIC4uLmZpZWxkVmFsdWVzLnNsaWNlKGluZGV4ICsgMSwgZGVzdEluZGV4KSxcbiAgICAgIGZpZWxkVmFsdWVzW2luZGV4XSxcbiAgICAgIC4uLmZpZWxkVmFsdWVzLnNsaWNlKGRlc3RJbmRleCArIDEpXG4gICAgXSlcbiAgICB0aGlzLnNldEZvcm1TdGF0ZSh7dmFsdWVzfSlcbiAgfSxcbiAgc2V0QWxsVG91Y2hlZCAoZGlydHkgPSB0cnVlLCBzdGF0ZSkge1xuICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZGlydHk6ICEhZGlydHlcbiAgICB9KVxuICB9LFxuICByZXNldEZvcm0gKCkge1xuICAgIHJldHVybiB0aGlzLnNldEZvcm1TdGF0ZSh0aGlzLmdldEluaXRpYWxTdGF0ZSgpKVxuICB9LFxuICBzdWJtaXRGb3JtIChlKSB7XG4gICAgZSAmJiBlLnByZXZlbnREZWZhdWx0ICYmIGUucHJldmVudERlZmF1bHQoZSlcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVcbiAgICBjb25zdCBlcnJvcnMgPSB0aGlzLnZhbGlkYXRlKHN0YXRlLnZhbHVlcywgc3RhdGUsIHRoaXMucHJvcHMpXG4gICAgaWYgKGVycm9ycykge1xuICAgICAgaWYgKCFzdGF0ZS5kaXJ0eSkge1xuICAgICAgICB0aGlzLnNldEFsbFRvdWNoZWQodHJ1ZSwge2Vycm9yc30pXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vblZhbGlkYXRpb25GYWlsKHN0YXRlLnZhbHVlcywgc3RhdGUsIHRoaXMucHJvcHMsIHRoaXMpXG4gICAgfVxuICAgIGNvbnN0IHByZVN1Ym1pdFZhbHVlcyA9IHRoaXMucHJvcHMucHJlU3VibWl0KHN0YXRlLnZhbHVlcywgc3RhdGUsIHRoaXMucHJvcHMsIHRoaXMpXG4gICAgdGhpcy5wcm9wcy5vblN1Ym1pdChwcmVTdWJtaXRWYWx1ZXMsIHN0YXRlLCB0aGlzLnByb3BzLCB0aGlzKVxuICAgIHRoaXMucHJvcHMucG9zdFN1Ym1pdChwcmVTdWJtaXRWYWx1ZXMsIHN0YXRlLCB0aGlzLnByb3BzLCB0aGlzKVxuICB9LFxuXG4gIC8vIFV0aWxzXG4gIGdldEFQSSAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNldEFsbFZhbHVlczogdGhpcy5zZXRBbGxWYWx1ZXMsXG4gICAgICBzZXRWYWx1ZTogdGhpcy5zZXRWYWx1ZSxcbiAgICAgIGdldFZhbHVlOiB0aGlzLmdldFZhbHVlLFxuICAgICAgc2V0TmVzdGVkRXJyb3I6IHRoaXMuc2V0TmVzdGVkRXJyb3IsXG4gICAgICBnZXRFcnJvcjogdGhpcy5nZXRFcnJvcixcbiAgICAgIHNldFRvdWNoZWQ6IHRoaXMuc2V0VG91Y2hlZCxcbiAgICAgIGdldFRvdWNoZWQ6IHRoaXMuZ2V0VG91Y2hlZCxcbiAgICAgIGFkZFZhbHVlOiB0aGlzLmFkZFZhbHVlLFxuICAgICAgcmVtb3ZlVmFsdWU6IHRoaXMucmVtb3ZlVmFsdWUsXG4gICAgICBzd2FwVmFsdWVzOiB0aGlzLnN3YXBWYWx1ZXMsXG4gICAgICBzZXRBbGxUb3VjaGVkOiB0aGlzLnNldEFsbFRvdWNoZWQsXG4gICAgICByZXNldEZvcm06IHRoaXMucmVzZXRGb3JtLFxuICAgICAgc3VibWl0Rm9ybTogdGhpcy5zdWJtaXRGb3JtXG4gICAgfVxuICB9LFxuICBzZXRGb3JtU3RhdGUgKG5ld1N0YXRlLCBzaWxlbnQpIHtcbiAgICBpZiAobmV3U3RhdGUgJiYgbmV3U3RhdGUudmFsdWVzICYmICFuZXdTdGF0ZS5lcnJvcnMpIHtcbiAgICAgIG5ld1N0YXRlLnZhbHVlcyA9IHRoaXMucHJvcHMucHJlVmFsaWRhdGUobmV3U3RhdGUudmFsdWVzLCBuZXdTdGF0ZSwgdGhpcy5wcm9wcywgdGhpcylcbiAgICAgIG5ld1N0YXRlLmVycm9ycyA9IHRoaXMudmFsaWRhdGUobmV3U3RhdGUudmFsdWVzLCBuZXdTdGF0ZSwgdGhpcy5wcm9wcylcbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0ZShuZXdTdGF0ZSwgKCkgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5zYXZlU3RhdGUodGhpcy5zdGF0ZSwgdGhpcy5wcm9wcywgdGhpcylcbiAgICAgIGlmICghc2lsZW50KSB7XG4gICAgICAgIHRoaXMuZW1pdENoYW5nZSh0aGlzLnN0YXRlLCB0aGlzLnByb3BzKVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGVtaXRDaGFuZ2UgKHN0YXRlLCBpbml0aWFsKSB7XG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZShzdGF0ZSwgdGhpcy5wcm9wcywgaW5pdGlhbCwgdGhpcylcbiAgfSxcbiAgdmFsaWRhdGUgKHZhbHVlcywgc3RhdGUsIHByb3BzKSB7XG4gICAgY29uc3QgZXJyb3JzID0gdGhpcy5wcm9wcy52YWxpZGF0ZShcbiAgICAgIHJlbW92ZU5lc3RlZEVycm9yVmFsdWVzKHZhbHVlcywgdGhpcy5zdGF0ZSA/IHRoaXMuc3RhdGUubmVzdGVkRXJyb3JzIDoge30pLFxuICAgICAgc3RhdGUsXG4gICAgICBwcm9wcyxcbiAgICAgIHRoaXNcbiAgICApXG4gICAgcmV0dXJuIGNsZWFuRXJyb3JzKGVycm9ycylcbiAgfSxcbiAgLy8gUmVuZGVyXG4gIHJlbmRlciAoKSB7XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgIC4uLnRoaXMuZ2V0QVBJKClcbiAgICB9XG4gICAgY29uc3QgeyBjb21wb25lbnQsIGNoaWxkcmVuLCAuLi5yZXN0IH0gPSBwcm9wc1xuICAgIGNvbnN0IHJlc29sdmVkQ2hpbGQgPSB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicgPyBjaGlsZHJlbihyZXN0KSA6IGNoaWxkcmVuXG4gICAgY29uc3QgUm9vdEVsID0gY29tcG9uZW50XG4gICAgaWYgKCFSb290RWwpIHtcbiAgICAgIHJldHVybiByZXNvbHZlZENoaWxkXG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8Um9vdEVsIGNsYXNzTmFtZT0nUmVhY3RGb3JtJz57cmVzb2x2ZWRDaGlsZH08L1Jvb3RFbD5cbiAgICApXG4gIH1cbn0pXG5cbi8vIFV0aWxzXG5cbmZ1bmN0aW9uIGNsZWFuRXJyb3JzIChlcnIpIHtcbiAgaWYgKF8uaXNPYmplY3QoZXJyKSkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gXy5tYXBWYWx1ZXMoZXJyLCBjbGVhbkVycm9ycylcbiAgICBjb25zdCBmb3VuZCA9IF8ucGlja0J5KHJlc29sdmVkLCBkID0+IGQpXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGZvdW5kKS5sZW5ndGggPyByZXNvbHZlZCA6IHVuZGVmaW5lZFxuICB9XG4gIGlmIChfLmlzQXJyYXkoZXJyKSkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gZXJyLm1hcChjbGVhbkVycm9ycylcbiAgICBjb25zdCBmb3VuZCA9IHJlc29sdmVkLmZpbmQoZCA9PiBkKVxuICAgIHJldHVybiBmb3VuZCA/IHJlc29sdmVkIDogdW5kZWZpbmVkXG4gIH1cbiAgcmV0dXJuIGVyclxufVxuXG5mdW5jdGlvbiByZW1vdmVOZXN0ZWRFcnJvclZhbHVlcyAodmFsdWUsIG5lc3RlZEVycm9ycykge1xuICBjb25zdCByZWN1cnNlID0gKHZhbHVlLCBwYXRoID0gW10pID0+IHtcbiAgICBpZiAoXy5pc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBfLm1hcFZhbHVlcyh2YWx1ZSwgKGQsIGkpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlY3Vyc2UoZCwgWy4uLnBhdGgsIGldKVxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKF8uaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoKGQsIGtleSkgPT4ge1xuICAgICAgICByZXR1cm4gcmVjdXJzZShkLCBbLi4ucGF0aCwga2V5XSlcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmIChfLmdldChuZXN0ZWRFcnJvcnMsIHBhdGgpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuICAgIHJldHVybiB2YWx1ZVxuICB9XG4gIHJldHVybiByZWN1cnNlKHZhbHVlKVxufVxuIl19
{
"name": "react-form",
"version": "1.2.2",
"version": "1.2.3",
"description": "React Form is a lightweight framework and utility for building powerful forms in React applications.",

@@ -5,0 +5,0 @@ "license": "MIT",

(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.reactForm = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
"use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _objectWithoutProperties(t,e){var s={};for(var r in t)e.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(t,r)&&(s[r]=t[r]);return s}function _toConsumableArray(t){if(Array.isArray(t)){for(var e=0,s=Array(t.length);e<t.length;e++)s[e]=t[e];return s}return Array.from(t)}function cleanErrors(t){if(_utils2.default.isObject(t)){var e=_utils2.default.mapValues(t,cleanErrors),s=_utils2.default.pickBy(e,function(t){return t});return Object.keys(s).length?e:void 0}if(_utils2.default.isArray(t)){var r=t.map(cleanErrors),o=r.find(function(t){return t});return o?r:void 0}return t}function removeNestedErrorValues(t,e){var s=function t(s){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!_utils2.default.get(e,r))return _utils2.default.isObject(s)?_utils2.default.mapValues(s,function(e,s){return t(e,[].concat(_toConsumableArray(r),[s]))}):_utils2.default.isArray(s)?s.map(function(e,s){return t(e,[].concat(_toConsumableArray(r),[s]))}):s};return s(t)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.FormDefaultProps=void 0;var _extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var s=arguments[e];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(t[r]=s[r])}return t},_react=require("react"),_react2=_interopRequireDefault(_react),_utils=require("./utils"),_utils2=_interopRequireDefault(_utils),noop=function(){},reop=function(t){return t},FormDefaultProps=exports.FormDefaultProps={loadState:noop,defaultValues:{},preValidate:reop,validate:function(){return null},onValidationFail:noop,onChange:noop,saveState:noop,willUnmount:noop,preSubmit:reop,onSubmit:noop,postSubmit:noop,component:"div"};exports.default=_react2.default.createClass({displayName:"Form",childContextTypes:{formAPI:_react2.default.PropTypes.object},getChildContext:function(){return{formAPI:this.getAPI()}},getDefaultProps:function(){return FormDefaultProps},getInitialState:function(){var t=this.props,e=t.defaultValues,s=t.values,r=t.loadState,o=_extends({},_utils2.default.clone(e),_utils2.default.clone(s));return r(this.props,this)||{values:o,touched:{},errors:this.validate(o),nestedErrors:{}}},componentWillMount:function(){this.emitChange(this.state,!0)},componentWillReceiveProps:function(t){t.values!==this.props.values&&this.setFormState({values:_utils2.default.clone(t.values)||{}},!0)},componentWillUnmount:function(){this.props.willUnmount(this.state,this.props,this)},setAllValues:function(t,e){return e?this.setFormState({values:t}):void this.setFormState({values:t,touched:{}})},setValue:function(t,e,s){var r=this.state,o=_utils2.default.set(r.values,t,e);if(s)return this.setFormState({values:o});var a=_utils2.default.set(r.touched,t);this.setFormState({values:o,touched:a})},getValue:function(t,e){var s=this.state,r=_utils2.default.get(s.values,t);return"undefined"!=typeof r?r:e},setNestedError:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],s=_utils2.default.set(this.state.nestedErrors,t,e);this.setFormState({nestedErrors:s})},getError:function(t){return _utils2.default.get(this.state.errors,t)},setTouched:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],s=_utils2.default.set(this.state.touched,t,e);this.setFormState({touched:s})},getTouched:function(t){var e=this.state;return this.state.dirty===!0||this.props.touched===!0||_utils2.default.get(e.touched,t)},addValue:function(t,e){var s=this.state,r=_utils2.default.set(s.values,t,[].concat(_toConsumableArray(_utils2.default.get(s.values,t,[])),[e]));this.setFormState({values:r})},removeValue:function(t,e){var s=this.state,r=_utils2.default.get(s.values,t,[]),o=_utils2.default.set(s.values,t,[].concat(_toConsumableArray(r.slice(0,e)),_toConsumableArray(r.slice(e+1))));this.setFormState({values:o})},swapValues:function(t,e,s){var r=this.state,o=_utils2.default.get(r.values,t,[]),a=_utils2.default.set(r.values,t,[].concat(_toConsumableArray(o.slice(0,e)),[o[s]],_toConsumableArray(o.slice(e+1,s)),[o[e]],_toConsumableArray(o.slice(s+1))));this.setFormState({values:a})},setAllTouched:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e=arguments[1];this.setFormState(_extends({},e,{dirty:!!t}))},resetForm:function(){return this.setFormState(this.getInitialState())},submitForm:function(t){t&&t.preventDefault&&t.preventDefault(t);var e=this.state,s=this.validate(e.values,e,this.props);if(s)return e.dirty||this.setAllTouched(!0,{errors:s}),this.props.onValidationFail(e.values,e,this.props,this);var r=this.props.preSubmit(e.values,e,this.props,this);this.props.onSubmit(r,e,this.props,this),this.props.postSubmit(r,e,this.props,this)},getAPI:function(){return{setAllValues:this.setAllValues,setValue:this.setValue,getValue:this.getValue,setNestedError:this.setNestedError,getError:this.getError,setTouched:this.setTouched,getTouched:this.getTouched,addValue:this.addValue,removeValue:this.removeValue,swapValues:this.swapValues,setAllTouched:this.setAllTouched,resetForm:this.resetForm,submitForm:this.submitForm}},setFormState:function(t,e){var s=this;t&&t.values&&!t.errors&&(t.values=this.props.preValidate(t.values,t,this.props,this),t.errors=this.validate(t.values,t,this.props)),this.setState(t,function(){s.props.saveState(s.state,s.props,s),e||s.emitChange(s.state,s.props)})},emitChange:function(t,e){this.props.onChange(t,this.props,e,this)},validate:function(t,e,s){var r=this.props.validate(removeNestedErrorValues(t,this.state?this.state.nestedErrors:{}),e,s,this);return cleanErrors(r)},render:function(){var t=_extends({},this.props,this.state,this.getAPI()),e=t.component,s=t.children,r=_objectWithoutProperties(t,["component","children"]),o="function"==typeof s?s(r):s,a=e;return a?_react2.default.createElement(a,{className:"ReactForm"},o):o}});
"use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _objectWithoutProperties(t,e){var s={};for(var r in t)e.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(t,r)&&(s[r]=t[r]);return s}function _toConsumableArray(t){if(Array.isArray(t)){for(var e=0,s=Array(t.length);e<t.length;e++)s[e]=t[e];return s}return Array.from(t)}function cleanErrors(t){if(_utils2.default.isObject(t)){var e=_utils2.default.mapValues(t,cleanErrors),s=_utils2.default.pickBy(e,function(t){return t});return Object.keys(s).length?e:void 0}if(_utils2.default.isArray(t)){var r=t.map(cleanErrors),o=r.find(function(t){return t});return o?r:void 0}return t}function removeNestedErrorValues(t,e){var s=function t(s){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(_utils2.default.isObject(s))return _utils2.default.mapValues(s,function(e,s){return t(e,[].concat(_toConsumableArray(r),[s]))});if(_utils2.default.isArray(s))return s.map(function(e,s){return t(e,[].concat(_toConsumableArray(r),[s]))});if(!_utils2.default.get(e,r))return s};return s(t)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.FormDefaultProps=void 0;var _extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var s=arguments[e];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(t[r]=s[r])}return t},_react=require("react"),_react2=_interopRequireDefault(_react),_utils=require("./utils"),_utils2=_interopRequireDefault(_utils),noop=function(){},reop=function(t){return t},FormDefaultProps=exports.FormDefaultProps={loadState:noop,defaultValues:{},preValidate:reop,validate:function(){return null},onValidationFail:noop,onChange:noop,saveState:noop,willUnmount:noop,preSubmit:reop,onSubmit:noop,postSubmit:noop,component:"div"};exports.default=_react2.default.createClass({displayName:"Form",childContextTypes:{formAPI:_react2.default.PropTypes.object},getChildContext:function(){return{formAPI:this.getAPI()}},getDefaultProps:function(){return FormDefaultProps},getInitialState:function(){var t=this.props,e=t.defaultValues,s=t.values,r=t.loadState,o=_extends({},_utils2.default.clone(e),_utils2.default.clone(s));return r(this.props,this)||{values:o,touched:{},errors:this.validate(o),nestedErrors:{}}},componentWillMount:function(){this.emitChange(this.state,!0)},componentWillReceiveProps:function(t){t.values!==this.props.values&&this.setFormState({values:_utils2.default.clone(t.values)||{}},!0)},componentWillUnmount:function(){this.props.willUnmount(this.state,this.props,this)},setAllValues:function(t,e){return e?this.setFormState({values:t}):void this.setFormState({values:t,touched:{}})},setValue:function(t,e,s){var r=this.state,o=_utils2.default.set(r.values,t,e);if(s)return this.setFormState({values:o});var a=_utils2.default.set(r.touched,t);this.setFormState({values:o,touched:a})},getValue:function(t,e){var s=this.state,r=_utils2.default.get(s.values,t);return"undefined"!=typeof r?r:e},setNestedError:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],s=_utils2.default.set(this.state.nestedErrors,t,e);this.setFormState({nestedErrors:s})},getError:function(t){return _utils2.default.get(this.state.errors,t)},setTouched:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],s=_utils2.default.set(this.state.touched,t,e);this.setFormState({touched:s})},getTouched:function(t){var e=this.state;return this.state.dirty===!0||this.props.touched===!0||_utils2.default.get(e.touched,t)},addValue:function(t,e){var s=this.state,r=_utils2.default.set(s.values,t,[].concat(_toConsumableArray(_utils2.default.get(s.values,t,[])),[e]));this.setFormState({values:r})},removeValue:function(t,e){var s=this.state,r=_utils2.default.get(s.values,t,[]),o=_utils2.default.set(s.values,t,[].concat(_toConsumableArray(r.slice(0,e)),_toConsumableArray(r.slice(e+1))));this.setFormState({values:o})},swapValues:function(t,e,s){var r=this.state,o=_utils2.default.get(r.values,t,[]),a=_utils2.default.set(r.values,t,[].concat(_toConsumableArray(o.slice(0,e)),[o[s]],_toConsumableArray(o.slice(e+1,s)),[o[e]],_toConsumableArray(o.slice(s+1))));this.setFormState({values:a})},setAllTouched:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e=arguments[1];this.setFormState(_extends({},e,{dirty:!!t}))},resetForm:function(){return this.setFormState(this.getInitialState())},submitForm:function(t){t&&t.preventDefault&&t.preventDefault(t);var e=this.state,s=this.validate(e.values,e,this.props);if(s)return e.dirty||this.setAllTouched(!0,{errors:s}),this.props.onValidationFail(e.values,e,this.props,this);var r=this.props.preSubmit(e.values,e,this.props,this);this.props.onSubmit(r,e,this.props,this),this.props.postSubmit(r,e,this.props,this)},getAPI:function(){return{setAllValues:this.setAllValues,setValue:this.setValue,getValue:this.getValue,setNestedError:this.setNestedError,getError:this.getError,setTouched:this.setTouched,getTouched:this.getTouched,addValue:this.addValue,removeValue:this.removeValue,swapValues:this.swapValues,setAllTouched:this.setAllTouched,resetForm:this.resetForm,submitForm:this.submitForm}},setFormState:function(t,e){var s=this;t&&t.values&&!t.errors&&(t.values=this.props.preValidate(t.values,t,this.props,this),t.errors=this.validate(t.values,t,this.props)),this.setState(t,function(){s.props.saveState(s.state,s.props,s),e||s.emitChange(s.state,s.props)})},emitChange:function(t,e){this.props.onChange(t,this.props,e,this)},validate:function(t,e,s){var r=this.props.validate(removeNestedErrorValues(t,this.state?this.state.nestedErrors:{}),e,s,this);return cleanErrors(r)},render:function(){var t=_extends({},this.props,this.state,this.getAPI()),e=t.component,s=t.children,r=_objectWithoutProperties(t,["component","children"]),o="function"==typeof s?s(r):s,a=e;return a?_react2.default.createElement(a,{className:"ReactForm"},o):o}});

@@ -4,0 +4,0 @@ },{"./utils":14,"react":"react"}],2:[function(require,module,exports){

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