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

enzyme-adapter-react-14

Package Overview
Dependencies
Maintainers
6
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

enzyme-adapter-react-14 - npm Package Compare versions

Comparing version 1.4.0 to 1.4.1

4

build/ReactFourteenAdapter.js

@@ -147,3 +147,3 @@ 'use strict';

context: context
}, ref && { ref: ref });
}, ref && { refProp: ref });
var ReactWrapperComponent = (0, _enzymeAdapterUtils.createMountWrapper)(el, (0, _object2['default'])({}, options, { adapter: adapter }));

@@ -462,3 +462,3 @@ var wrappedEl = _react2['default'].createElement(ReactWrapperComponent, wrapperProps);

module.exports = ReactFourteenAdapter;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9SZWFjdEZvdXJ0ZWVuQWRhcHRlci5qcyJdLCJuYW1lcyI6WyJ0eXBlVG9Ob2RlVHlwZSIsInR5cGUiLCJwcm90b3R5cGUiLCJyZW5kZXIiLCJpbnN0YW5jZVRvVHJlZSIsImluc3QiLCJlbCIsIl9jdXJyZW50RWxlbWVudCIsIl90YWciLCJjaGlsZHJlbiIsIl9yZW5kZXJlZENoaWxkcmVuIiwicHJvcHMiLCJub2RlVHlwZSIsImtleSIsInJlZiIsImluc3RhbmNlIiwiUmVhY3RET00iLCJmaW5kRE9NTm9kZSIsImdldFB1YmxpY0luc3RhbmNlIiwicmVuZGVyZWQiLCJtYXAiLCJfcmVuZGVyZWRDb21wb25lbnQiLCJfaW5zdGFuY2UiLCJFcnJvciIsIlJlYWN0Rm91cnRlZW5BZGFwdGVyIiwibGlmZWN5Y2xlcyIsIm9wdGlvbnMiLCJzdXBwb3J0UHJldkNvbnRleHRBcmd1bWVudE9mQ29tcG9uZW50RGlkVXBkYXRlIiwibGVnYWN5Q29udGV4dE1vZGUiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2Q29udGV4dCIsImdldENoaWxkQ29udGV4dCIsImNhbGxlZEJ5UmVuZGVyZXIiLCJkb21Ob2RlIiwiYXR0YWNoVG8iLCJnbG9iYWwiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJhZGFwdGVyIiwiY29udGV4dCIsImNhbGxiYWNrIiwid3JhcHBlclByb3BzIiwiQ29tcG9uZW50Iiwid3JhcHBpbmdDb21wb25lbnRQcm9wcyIsIlJlYWN0V3JhcHBlckNvbXBvbmVudCIsIndyYXBwZWRFbCIsIlJlYWN0Iiwic2V0Q2hpbGRQcm9wcyIsInVubW91bnQiLCJ1bm1vdW50Q29tcG9uZW50QXROb2RlIiwiZ2V0Tm9kZSIsImlzQ3VzdG9tQ29tcG9uZW50IiwiX3JlYWN0SW50ZXJuYWxJbnN0YW5jZSIsInNpbXVsYXRlRXZlbnQiLCJub2RlIiwiZXZlbnQiLCJtb2NrIiwibWFwcGVkRXZlbnQiLCJldmVudEZuIiwiVGVzdFV0aWxzIiwiU2ltdWxhdGUiLCJUeXBlRXJyb3IiLCJiYXRjaGVkVXBkYXRlcyIsImZuIiwidW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMiLCJnZXRXcmFwcGluZ0NvbXBvbmVudFJlbmRlcmVyIiwidG9UcmVlIiwiZ2V0TW91bnRXcmFwcGVySW5zdGFuY2UiLCJyZW5kZXJlciIsImNyZWF0ZVJlbmRlcmVyIiwiaXNET00iLCJjYWNoZWROb2RlIiwib3V0cHV0IiwiZ2V0UmVuZGVyT3V0cHV0IiwiYXJncyIsImhhbmRsZXIiLCJjb250ZXh0VHlwZXMiLCJjaGlsZENvbnRleHRUeXBlcyIsIkNvbnRleHRXcmFwcGVyIiwiUmVhY3RET01TZXJ2ZXIiLCJyZW5kZXJUb1N0YXRpY01hcmt1cCIsIm1vZGUiLCJFbnp5bWVBZGFwdGVyIiwiTU9ERVMiLCJNT1VOVCIsImNyZWF0ZU1vdW50UmVuZGVyZXIiLCJTSEFMTE9XIiwiY3JlYXRlU2hhbGxvd1JlbmRlcmVyIiwiU1RSSU5HIiwiY3JlYXRlU3RyaW5nUmVuZGVyZXIiLCJlbGVtZW50Iiwib2JqZWN0IiwiY29tcG9uZW50IiwiUm9vdEZpbmRlciIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUE7O0FBRUE7Ozs7Ozs7QUFKQTs7OztBQUNBOzs7O0FBRUE7Ozs7QUFFQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7OztBQWtCQSxTQUFTQSxjQUFULENBQXdCQyxJQUF4QixFQUE4QjtBQUM1QixNQUFJLE9BQU9BLElBQVAsS0FBZ0IsVUFBcEIsRUFBZ0M7QUFDOUIsUUFBSUEsS0FBS0MsU0FBTCxJQUFrQixPQUFPRCxLQUFLQyxTQUFMLENBQWVDLE1BQXRCLEtBQWlDLFVBQXZELEVBQW1FO0FBQ2pFLGFBQU8sT0FBUDtBQUNEO0FBQ0QsV0FBTyxVQUFQO0FBQ0Q7QUFDRCxTQUFPLE1BQVA7QUFDRDs7QUFFRCxTQUFTQyxjQUFULENBQXdCQyxJQUF4QixFQUE4QjtBQUM1QixNQUFJLENBQUNBLElBQUQsSUFBUyxRQUFPQSxJQUFQLHlDQUFP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TTtBQUNuQixlQUFPdEMsc0JBQVNDLFdBQVQsQ0FBcUJxQyxLQUFLdkMsUUFBMUIsQ0FBUDtBQUNEOzs7Ozs7O2lDQUVpQnVDLEksRUFBTTtBQUN0QixlQUFPLDJDQUFrQkEsSUFBbEIsQ0FBUDtBQUNEOzs7Ozs7OzhCQUVjb0MsTyxFQUFTO0FBQ3RCLGVBQU8sd0JBQVVBLE9BQVYsQ0FBUDtBQUNEOzs7Ozs7O2tDQUVrQkMsTSxFQUFRO0FBQ3pCLGVBQU8saUNBQW1CQSxNQUFuQixDQUFQO0FBQ0Q7Ozs7Ozs7aUNBRWlCQyxTLEVBQVc7QUFDM0IsZUFBTyxPQUFPQSxTQUFQLEtBQXFCLFVBQTVCO0FBQ0Q7Ozs7Ozs7K0JBRXNCO0FBQ3JCLGVBQU85QyxtQkFBTVQsYUFBTixxQ0FBUDtBQUNEOzs7Ozs7O3lDQUV5QmlCLEksRUFBTTVCLE8sRUFBUztBQUN2QyxlQUFPO0FBQ0xtRSxvREFESztBQUVMdkMsZ0JBQU0sbURBQTBCUixtQkFBTVQsYUFBaEMsRUFBK0NpQixJQUEvQyxFQUFxRDVCLE9BQXJEO0FBRkQsU0FBUDtBQUlEOzs7Ozs7O0VBbk5nQ3dELHFCOztBQXNObkNZLE9BQU9DLE9BQVAsR0FBaUJ2RSxvQkFBakIiLCJmaWxlIjoiUmVhY3RGb3VydGVlbkFkYXB0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVucmVzb2x2ZWQsIGltcG9ydC9leHRlbnNpb25zXG5pbXBvcnQgUmVhY3RET01TZXJ2ZXIgZnJvbSAncmVhY3QtZG9tL3NlcnZlcic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVucmVzb2x2ZWQsIGltcG9ydC9leHRlbnNpb25zXG5pbXBvcnQgVGVzdFV0aWxzIGZyb20gJ3JlYWN0LWFkZG9ucy10ZXN0LXV0aWxzJztcbmltcG9ydCB2YWx1ZXMgZnJvbSAnb2JqZWN0LnZhbHVlcyc7XG5pbXBvcnQgeyBpc0VsZW1lbnQsIGlzVmFsaWRFbGVtZW50VHlwZSB9IGZyb20gJ3JlYWN0LWlzJztcbmltcG9ydCB7IEVuenltZUFkYXB0ZXIgfSBmcm9tICdlbnp5bWUnO1xuaW1wb3J0IHtcbiAgZGlzcGxheU5hbWVPZk5vZGUsXG4gIGVsZW1lbnRUb1RyZWUsXG4gIG1hcE5hdGl2ZUV2ZW50TmFtZXMsXG4gIHByb3BGcm9tRXZlbnQsXG4gIHdpdGhTZXRTdGF0ZUFsbG93ZWQsXG4gIGFzc2VydERvbUF2YWlsYWJsZSxcbiAgY3JlYXRlUmVuZGVyV3JhcHBlcixcbiAgY3JlYXRlTW91bnRXcmFwcGVyLFxuICBwcm9wc1dpdGhLZXlzQW5kUmVmLFxuICBlbnN1cmVLZXlPclVuZGVmaW5lZCxcbiAgd3JhcCxcbiAgUm9vdEZpbmRlcixcbiAgZ2V0Tm9kZUZyb21Sb290RmluZGVyLFxuICB3cmFwV2l0aFdyYXBwaW5nQ29tcG9uZW50LFxuICBnZXRXcmFwcGluZ0NvbXBvbmVudE1vdW50UmVuZGVyZXIsXG59IGZyb20gJ2VuenltZS1hZGFwdGVyLXV0aWxzJztcblxuZnVuY3Rpb24gdHlwZVRvTm9kZVR5cGUodHlwZSkge1xuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAodHlwZS5wcm90b3R5cGUgJiYgdHlwZW9mIHR5cGUucHJvdG90eXBlLnJlbmRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuICdjbGFzcyc7XG4gICAgfVxuICAgIHJldHVybiAnZnVuY3Rpb24nO1xuICB9XG4gIHJldHVybiAnaG9zdCc7XG59XG5cbmZ1bmN0aW9uIGluc3RhbmNlVG9UcmVlKGluc3QpIHtcbiAgaWYgKCFpbnN0IHx8IHR5cGVvZiBpbnN0ICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBpbnN0O1xuICB9XG4gIGNvbnN0IGVsID0gaW5zdC5fY3VycmVudEVsZW1lbnQ7XG4gIGlmICghZWwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBpZiAodHlwZW9mIGVsICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBlbDtcbiAgfVxuICBpZiAoaW5zdC5fdGFnKSB7XG4gICAgaWYgKHR5cGVvZiBlbCAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBlbDtcbiAgICB9XG4gICAgY29uc3QgY2hpbGRyZW4gPSBpbnN0Ll9yZW5kZXJlZENoaWxkcmVuIHx8IHsgJy4wJzogZWwucHJvcHMuY2hpbGRyZW4gfTtcbiAgICByZXR1cm4ge1xuICAgICAgbm9kZVR5cGU6ICdob3N0JyxcbiAgICAgIHR5cGU6IGVsLnR5cGUsXG4gICAgICBwcm9wczogZWwucHJvcHMsXG4gICAgICBrZXk6IGVuc3VyZUtleU9yVW5kZWZpbmVkKGVsLmtleSksXG4gICAgICByZWY6IGVsLnJlZixcbiAgICAgIGluc3RhbmNlOiBSZWFjdERPTS5maW5kRE9NTm9kZShpbnN0LmdldFB1YmxpY0luc3RhbmNlKCkpIHx8IG51bGwsXG4gICAgICByZW5kZXJlZDogdmFsdWVzKGNoaWxkcmVuKS5tYXAoaW5zdGFuY2VUb1RyZWUpLFxuICAgIH07XG4gIH1cbiAgaWYgKGluc3QuX3JlbmRlcmVkQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5vZGVUeXBlOiB0eXBlVG9Ob2RlVHlwZShlbC50eXBlKSxcbiAgICAgIHR5cGU6IGVsLnR5cGUsXG4gICAgICBwcm9wczogZWwucHJvcHMsXG4gICAgICBrZXk6IGVuc3VyZUtleU9yVW5kZWZpbmVkKGVsLmtleSksXG4gICAgICByZWY6IGVsLnJlZixcbiAgICAgIGluc3RhbmNlOiBpbnN0Ll9pbnN0YW5jZSB8fCBudWxsLFxuICAgICAgcmVuZGVyZWQ6IGluc3RhbmNlVG9UcmVlKGluc3QuX3JlbmRlcmVkQ29tcG9uZW50KSxcbiAgICB9O1xuICB9XG4gIHRocm93IG5ldyBFcnJvcignRW56eW1lIEludGVybmFsIEVycm9yOiB1bmtub3duIGluc3RhbmNlIGVuY291bnRlcmVkJyk7XG59XG5cbmNsYXNzIFJlYWN0Rm91cnRlZW5BZGFwdGVyIGV4dGVuZHMgRW56eW1lQWRhcHRlciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBjb25zdCB7IGxpZmVjeWNsZXMgfSA9IHRoaXMub3B0aW9ucztcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBzdXBwb3J0UHJldkNvbnRleHRBcmd1bWVudE9mQ29tcG9uZW50RGlkVXBkYXRlOiB0cnVlLCAvLyBUT0RPOiByZW1vdmUsIHNlbXZlci1tYWpvclxuICAgICAgbGVnYWN5Q29udGV4dE1vZGU6ICdwYXJlbnQnLFxuICAgICAgbGlmZWN5Y2xlczoge1xuICAgICAgICAuLi5saWZlY3ljbGVzLFxuICAgICAgICBjb21wb25lbnREaWRVcGRhdGU6IHtcbiAgICAgICAgICBwcmV2Q29udGV4dDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0Q2hpbGRDb250ZXh0OiB7XG4gICAgICAgICAgY2FsbGVkQnlSZW5kZXJlcjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNyZWF0ZU1vdW50UmVuZGVyZXIob3B0aW9ucykge1xuICAgIGFzc2VydERvbUF2YWlsYWJsZSgnbW91bnQnKTtcbiAgICBjb25zdCBkb21Ob2RlID0gb3B0aW9ucy5hdHRhY2hUbyB8fCBnbG9iYWwuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgbGV0IGluc3RhbmNlID0gbnVsbDtcbiAgICBjb25zdCBhZGFwdGVyID0gdGhpcztcbiAgICByZXR1cm4ge1xuICAgICAgcmVuZGVyKGVsLCBjb250ZXh0LCBjYWxsYmFjaykge1xuICAgICAgICBpZiAoaW5zdGFuY2UgPT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCB7IHR5cGUsIHByb3BzLCByZWYgfSA9IGVsO1xuICAgICAgICAgIGNvbnN0IHdyYXBwZXJQcm9wcyA9IHtcbiAgICAgICAgICAgIENvbXBvbmVudDogdHlwZSxcbiAgICAgICAgICAgIHdyYXBwaW5nQ29tcG9uZW50UHJvcHM6IG9wdGlvbnMud3JhcHBpbmdDb21wb25lbnRQcm9wcyxcbiAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIC4uLihyZWYgJiYgeyByZWYgfSksXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBSZWFjdFdyYXBwZXJDb21wb25lbnQgPSBjcmVhdGVNb3VudFdyYXBwZXIoZWwsIHsgLi4ub3B0aW9ucywgYWRhcHRlciB9KTtcbiAgICAgICAgICBjb25zdCB3cmFwcGVkRWwgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0V3JhcHBlckNvbXBvbmVudCwgd3JhcHBlclByb3BzKTtcbiAgICAgICAgICBpbnN0YW5jZSA9IFJlYWN0RE9NLnJlbmRlcih3cmFwcGVkRWwsIGRvbU5vZGUpO1xuICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGluc3RhbmNlLnNldENoaWxkUHJvcHMoZWwucHJvcHMsIGNvbnRleHQsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVubW91bnQoKSB7XG4gICAgICAgIFJlYWN0RE9NLnVubW91bnRDb21wb25lbnRBdE5vZGUoZG9tTm9kZSk7XG4gICAgICAgIGluc3RhbmNlID0gbnVsbDtcbiAgICAgIH0sXG4gICAgICBnZXROb2RlKCkge1xuICAgICAgICBpZiAoIWluc3RhbmNlKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldE5vZGVGcm9tUm9vdEZpbmRlcihcbiAgICAgICAgICBhZGFwdGVyLmlzQ3VzdG9tQ29tcG9uZW50LFxuICAgICAgICAgIGluc3RhbmNlVG9UcmVlKGluc3RhbmNlLl9yZWFjdEludGVybmFsSW5zdGFuY2UpLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgc2ltdWxhdGVFdmVudChub2RlLCBldmVudCwgbW9jaykge1xuICAgICAgICBjb25zdCBtYXBwZWRFdmVudCA9IG1hcE5hdGl2ZUV2ZW50TmFtZXMoZXZlbnQpO1xuICAgICAgICBjb25zdCBldmVudEZuID0gVGVzdFV0aWxzLlNpbXVsYXRlW21hcHBlZEV2ZW50XTtcbiAgICAgICAgaWYgKCFldmVudEZuKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgUmVhY3RXcmFwcGVyOjpzaW11bGF0ZSgpIGV2ZW50ICcke2V2ZW50fScgZG9lcyBub3QgZXhpc3RgKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tZmluZC1kb20tbm9kZVxuICAgICAgICBldmVudEZuKFJlYWN0RE9NLmZpbmRET01Ob2RlKG5vZGUuaW5zdGFuY2UpLCBtb2NrKTtcbiAgICAgIH0sXG4gICAgICBiYXRjaGVkVXBkYXRlcyhmbikge1xuICAgICAgICByZXR1cm4gUmVhY3RET00udW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMoZm4pO1xuICAgICAgfSxcbiAgICAgIGdldFdyYXBwaW5nQ29tcG9uZW50UmVuZGVyZXIoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4udGhpcyxcbiAgICAgICAgICAuLi5nZXRXcmFwcGluZ0NvbXBvbmVudE1vdW50UmVuZGVyZXIoe1xuICAgICAgICAgICAgdG9UcmVlOiBpbnN0ID0+IGluc3RhbmNlVG9UcmVlKGluc3QuX3JlYWN0SW50ZXJuYWxJbnN0YW5jZSksXG4gICAgICAgICAgICBnZXRNb3VudFdyYXBwZXJJbnN0YW5jZTogKCkgPT4gaW5zdGFuY2UsXG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBjcmVhdGVTaGFsbG93UmVuZGVyZXIoLyogb3B0aW9ucyAqLykge1xuICAgIGNvbnN0IHJlbmRlcmVyID0gVGVzdFV0aWxzLmNyZWF0ZVJlbmRlcmVyKCk7XG4gICAgbGV0IGlzRE9NID0gZmFsc2U7XG4gICAgbGV0IGNhY2hlZE5vZGUgPSBudWxsO1xuICAgIHJldHVybiB7XG4gICAgICByZW5kZXIoZWwsIGNvbnRleHQpIHtcbiAgICAgICAgY2FjaGVkTm9kZSA9IGVsO1xuICAgICAgICAvKiBlc2xpbnQgY29uc2lzdGVudC1yZXR1cm46IDAgKi9cbiAgICAgICAgaWYgKHR5cGVvZiBlbC50eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGlzRE9NID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpc0RPTSA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiB3aXRoU2V0U3RhdGVBbGxvd2VkKCgpID0+IHJlbmRlcmVyLnJlbmRlcihlbCwgY29udGV4dCkpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdW5tb3VudCgpIHtcbiAgICAgICAgcmVuZGVyZXIudW5tb3VudCgpO1xuICAgICAgfSxcbiAgICAgIGdldE5vZGUoKSB7XG4gICAgICAgIGlmIChpc0RPTSkge1xuICAgICAgICAgIHJldHVybiBlbGVtZW50VG9UcmVlKGNhY2hlZE5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHJlbmRlcmVyLmdldFJlbmRlck91dHB1dCgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5vZGVUeXBlOiB0eXBlVG9Ob2RlVHlwZShjYWNoZWROb2RlLnR5cGUpLFxuICAgICAgICAgIHR5cGU6IGNhY2hlZE5vZGUudHlwZSxcbiAgICAgICAgICBwcm9wczogY2FjaGVkTm9kZS5wcm9wcyxcbiAgICAgICAgICBrZXk6IGVuc3VyZUtleU9yVW5kZWZpbmVkKGNhY2hlZE5vZGUua2V5KSxcbiAgICAgICAgICByZWY6IGNhY2hlZE5vZGUucmVmLFxuICAgICAgICAgIGluc3RhbmNlOiByZW5kZXJlci5faW5zdGFuY2UuX2luc3RhbmNlLFxuICAgICAgICAgIHJlbmRlcmVkOiBlbGVtZW50VG9UcmVlKG91dHB1dCksXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgc2ltdWxhdGVFdmVudChub2RlLCBldmVudCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gbm9kZS5wcm9wc1twcm9wRnJvbUV2ZW50KGV2ZW50KV07XG4gICAgICAgIGlmIChoYW5kbGVyKSB7XG4gICAgICAgICAgd2l0aFNldFN0YXRlQWxsb3dlZCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBUT0RPKGxtcik6IGNyZWF0ZS91c2Ugc3ludGhldGljIGV2ZW50c1xuICAgICAgICAgICAgLy8gVE9ETyhsbXIpOiBlbXVsYXRlIFJlYWN0J3MgZXZlbnQgcHJvcGFnYXRpb25cbiAgICAgICAgICAgIFJlYWN0RE9NLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzKCgpID0+IHtcbiAgICAgICAgICAgICAgaGFuZGxlciguLi5hcmdzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgYmF0Y2hlZFVwZGF0ZXMoZm4pIHtcbiAgICAgICAgcmV0dXJuIHdpdGhTZXRTdGF0ZUFsbG93ZWQoKCkgPT4gUmVhY3RET00udW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMoZm4pKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNyZWF0ZVN0cmluZ1JlbmRlcmVyKG9wdGlvbnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVuZGVyKGVsLCBjb250ZXh0KSB7XG4gICAgICAgIGlmIChvcHRpb25zLmNvbnRleHQgJiYgKGVsLnR5cGUuY29udGV4dFR5cGVzIHx8IG9wdGlvbnMuY2hpbGRDb250ZXh0VHlwZXMpKSB7XG4gICAgICAgICAgY29uc3QgY2hpbGRDb250ZXh0VHlwZXMgPSB7XG4gICAgICAgICAgICAuLi4oZWwudHlwZS5jb250ZXh0VHlwZXMgfHwge30pLFxuICAgICAgICAgICAgLi4ub3B0aW9ucy5jaGlsZENvbnRleHRUeXBlcyxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IENvbnRleHRXcmFwcGVyID0gY3JlYXRlUmVuZGVyV3JhcHBlcihlbCwgY29udGV4dCwgY2hpbGRDb250ZXh0VHlwZXMpO1xuICAgICAgICAgIHJldHVybiBSZWFjdERPTVNlcnZlci5yZW5kZXJUb1N0YXRpY01hcmt1cChSZWFjdC5jcmVhdGVFbGVtZW50KENvbnRleHRXcmFwcGVyKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0RE9NU2VydmVyLnJlbmRlclRvU3RhdGljTWFya3VwKGVsKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8vIFByb3ZpZGVkIGEgYmFnIG9mIG9wdGlvbnMsIHJldHVybiBhbiBgRW56eW1lUmVuZGVyZXJgLiBTb21lIG9wdGlvbnMgY2FuIGJlIGltcGxlbWVudGF0aW9uXG4gIC8vIHNwZWNpZmljLCBsaWtlIGBhdHRhY2hgIGV0Yy4gZm9yIFJlYWN0LCBidXQgbm90IHBhcnQgb2YgdGhpcyBpbnRlcmZhY2UgZXhwbGljaXRseS5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXMsIG5vLXVudXNlZC12YXJzXG4gIGNyZWF0ZVJlbmRlcmVyKG9wdGlvbnMpIHtcbiAgICBzd2l0Y2ggKG9wdGlvbnMubW9kZSkge1xuICAgICAgY2FzZSBFbnp5bWVBZGFwdGVyLk1PREVTLk1PVU5UOiByZXR1cm4gdGhpcy5jcmVhdGVNb3VudFJlbmRlcmVyKG9wdGlvbnMpO1xuICAgICAgY2FzZSBFbnp5bWVBZGFwdGVyLk1PREVTLlNIQUxMT1c6IHJldHVybiB0aGlzLmNyZWF0ZVNoYWxsb3dSZW5kZXJlcihvcHRpb25zKTtcbiAgICAgIGNhc2UgRW56eW1lQWRhcHRlci5NT0RFUy5TVFJJTkc6IHJldHVybiB0aGlzLmNyZWF0ZVN0cmluZ1JlbmRlcmVyKG9wdGlvbnMpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbnp5bWUgSW50ZXJuYWwgRXJyb3I6IFVucmVjb2duaXplZCBtb2RlOiAke29wdGlvbnMubW9kZX1gKTtcbiAgICB9XG4gIH1cblxuICB3cmFwKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gd3JhcChlbGVtZW50KTtcbiAgfVxuXG4gIC8vIGNvbnZlcnRzIGFuIFJTVE5vZGUgdG8gdGhlIGNvcnJlc3BvbmRpbmcgSlNYIFByYWdtYSBFbGVtZW50LiBUaGlzIHdpbGwgYmUgbmVlZGVkXG4gIC8vIGluIG9yZGVyIHRvIGltcGxlbWVudCB0aGUgYFdyYXBwZXIubW91bnQoKWAgYW5kIGBXcmFwcGVyLnNoYWxsb3coKWAgbWV0aG9kcywgYnV0IHNob3VsZFxuICAvLyBiZSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGZvciBwZW9wbGUgdG8gaW1wbGVtZW50LlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpcywgbm8tdW51c2VkLXZhcnNcbiAgbm9kZVRvRWxlbWVudChub2RlKSB7XG4gICAgaWYgKCFub2RlIHx8IHR5cGVvZiBub2RlICE9PSAnb2JqZWN0JykgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQobm9kZS50eXBlLCBwcm9wc1dpdGhLZXlzQW5kUmVmKG5vZGUpKTtcbiAgfVxuXG4gIGVsZW1lbnRUb05vZGUoZWxlbWVudCkge1xuICAgIHJldHVybiBlbGVtZW50VG9UcmVlKGVsZW1lbnQpO1xuICB9XG5cbiAgbm9kZVRvSG9zdE5vZGUobm9kZSkge1xuICAgIHJldHVybiBSZWFjdERPTS5maW5kRE9NTm9kZShub2RlLmluc3RhbmNlKTtcbiAgfVxuXG4gIGRpc3BsYXlOYW1lT2ZOb2RlKG5vZGUpIHtcbiAgICByZXR1cm4gZGlzcGxheU5hbWVPZk5vZGUobm9kZSk7XG4gIH1cblxuICBpc1ZhbGlkRWxlbWVudChlbGVtZW50KSB7XG4gICAgcmV0dXJuIGlzRWxlbWVudChlbGVtZW50KTtcbiAgfVxuXG4gIGlzVmFsaWRFbGVtZW50VHlwZShvYmplY3QpIHtcbiAgICByZXR1cm4gaXNWYWxpZEVsZW1lbnRUeXBlKG9iamVjdCk7XG4gIH1cblxuICBpc0N1c3RvbUNvbXBvbmVudChjb21wb25lbnQpIHtcbiAgICByZXR1cm4gdHlwZW9mIGNvbXBvbmVudCA9PT0gJ2Z1bmN0aW9uJztcbiAgfVxuXG4gIGNyZWF0ZUVsZW1lbnQoLi4uYXJncykge1xuICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KC4uLmFyZ3MpO1xuICB9XG5cbiAgd3JhcFdpdGhXcmFwcGluZ0NvbXBvbmVudChub2RlLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFJvb3RGaW5kZXIsXG4gICAgICBub2RlOiB3cmFwV2l0aFdyYXBwaW5nQ29tcG9uZW50KFJlYWN0LmNyZWF0ZUVsZW1lbnQsIG5vZGUsIG9wdGlvbnMpLFxuICAgIH07XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdEZvdXJ0ZWVuQWRhcHRlcjtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9SZWFjdEZvdXJ0ZWVuQWRhcHRlci5qcyJdLCJuYW1lcyI6WyJ0eXBlVG9Ob2RlVHlwZSIsInR5cGUiLCJwcm90b3R5cGUiLCJyZW5kZXIiLCJpbnN0YW5jZVRvVHJlZSIsImluc3QiLCJlbCIsIl9jdXJyZW50RWxlbWVudCIsIl90YWciLCJjaGlsZHJlbiIsIl9yZW5kZXJlZENoaWxkcmVuIiwicHJvcHMiLCJub2RlVHlwZSIsImtleSIsInJlZiIsImluc3RhbmNlIiwiUmVhY3RET00iLCJmaW5kRE9NTm9kZSIsImdldFB1YmxpY0luc3RhbmNlIiwicmVuZGVyZWQiLCJtYXAiLCJfcmVuZGVyZWRDb21wb25lbnQiLCJfaW5zdGFuY2UiLCJFcnJvciIsIlJlYWN0Rm91cnRlZW5BZGFwdGVyIiwibGlmZWN5Y2xlcyIsIm9wdGlvbnMiLCJzdXBwb3J0UHJldkNvbnRleHRBcmd1bWVudE9mQ29tcG9uZW50RGlkVXBkYXRlIiwibGVnYWN5Q29udGV4dE1vZGUiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2Q29udGV4dCIsImdldENoaWxkQ29udGV4dCIsImNhbGxlZEJ5UmVuZGVyZXIiLCJkb21Ob2RlIiwiYXR0YWNoVG8iLCJnbG9iYWwiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJhZGFwdGVyIiwiY29udGV4dCIsImNhbGxiYWNrIiwid3JhcHBlclByb3BzIiwiQ29tcG9uZW50Iiwid3JhcHBpbmdDb21wb25lbnRQcm9wcyIsInJlZlByb3AiLCJSZWFjdFdyYXBwZXJDb21wb25lbnQiLCJ3cmFwcGVkRWwiLCJSZWFjdCIsInNldENoaWxkUHJvcHMiLCJ1bm1vdW50IiwidW5tb3VudENvbXBvbmVudEF0Tm9kZSIsImdldE5vZGUiLCJpc0N1c3RvbUNvbXBvbmVudCIsIl9yZWFjdEludGVybmFsSW5zdGFuY2UiLCJzaW11bGF0ZUV2ZW50Iiwibm9kZSIsImV2ZW50IiwibW9jayIsIm1hcHBlZEV2ZW50IiwiZXZlbnRGbiIsIlRlc3RVdGlscyIsIlNpbXVsYXRlIiwiVHlwZUVycm9yIiwiYmF0Y2hlZFVwZGF0ZXMiLCJmbiIsInVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzIiwiZ2V0V3JhcHBpbmdDb21wb25lbnRSZW5kZXJlciIsInRvVHJlZSIsImdldE1vdW50V3JhcHBlckluc3RhbmNlIiwicmVuZGVyZXIiLCJjcmVhdGVSZW5kZXJlciIsImlzRE9NIiwiY2FjaGVkTm9kZSIsIm91dHB1dCIsImdldFJlbmRlck91dHB1dCIsImFyZ3MiLCJoYW5kbGVyIiwiY29udGV4dFR5cGVzIiwiY2hpbGRDb250ZXh0VHlwZXMiLCJDb250ZXh0V3JhcHBlciIsIlJlYWN0RE9NU2VydmVyIiwicmVuZGVyVG9TdGF0aWNNYXJrdXAiLCJtb2RlIiwiRW56eW1lQWRhcHRlciIsIk1PREVTIiwiTU9VTlQiLCJjcmVhdGVNb3VudFJlbmRlcmVyIiwiU0hBTExPVyIsImNyZWF0ZVNoYWxsb3dSZW5kZXJlciIsIlNUUklORyIsImNyZWF0ZVN0cmluZ1JlbmRlcmVyIiwiZWxlbWVudCIsIm9iamVjdCIsImNvbXBvbmVudCIsIlJvb3RGaW5kZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7OztBQUVBOztBQUVBOzs7Ozs7O0FBSkE7Ozs7QUFDQTs7OztBQUVBOzs7O0FBRUE7Ozs7QUFDQTs7OztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7QUFrQkEsU0FBU0EsY0FBVCxDQUF3QkMsSUFBeEIsRUFBOEI7QUFDNUIsTUFBSSxPQUFPQSxJQUFQLEtBQWdCLFVBQXBCLEVBQWdDO0FBQzlCLFFBQUlBLEtBQUtDLFNBQUwsSUFBa0IsT0FBT0QsS0FBS0MsU0FBTCxDQUFlQyxNQUF0QixLQUFpQyxVQUF2RCxFQUFtRTtBQUNqRSxhQUFPLE9BQVA7QUFDRDtBQUNELFdBQU8sVUFBUDtBQUNEO0FBQ0QsU0FBTyxNQUFQO0FBQ0Q7O0FBRUQsU0FBU0MsY0FBVCxDQUF3QkMsSUFBeEIsRUFBOEI7QUFDNUIsTUFBSSxDQUFDQSxJQUFELElBQVMsUUFBT0Es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LENBQVA7QUFDRDs7Ozs7Ozs4QkFFY3BDLEksRUFBTTtBQUNuQixlQUFPdkMsc0JBQVNDLFdBQVQsQ0FBcUJzQyxLQUFLeEMsUUFBMUIsQ0FBUDtBQUNEOzs7Ozs7O2lDQUVpQndDLEksRUFBTTtBQUN0QixlQUFPLDJDQUFrQkEsSUFBbEIsQ0FBUDtBQUNEOzs7Ozs7OzhCQUVjb0MsTyxFQUFTO0FBQ3RCLGVBQU8sd0JBQVVBLE9BQVYsQ0FBUDtBQUNEOzs7Ozs7O2tDQUVrQkMsTSxFQUFRO0FBQ3pCLGVBQU8saUNBQW1CQSxNQUFuQixDQUFQO0FBQ0Q7Ozs7Ozs7aUNBRWlCQyxTLEVBQVc7QUFDM0IsZUFBTyxPQUFPQSxTQUFQLEtBQXFCLFVBQTVCO0FBQ0Q7Ozs7Ozs7K0JBRXNCO0FBQ3JCLGVBQU85QyxtQkFBTVYsYUFBTixxQ0FBUDtBQUNEOzs7Ozs7O3lDQUV5QmtCLEksRUFBTTdCLE8sRUFBUztBQUN2QyxlQUFPO0FBQ0xvRSxvREFESztBQUVMdkMsZ0JBQU0sbURBQTBCUixtQkFBTVYsYUFBaEMsRUFBK0NrQixJQUEvQyxFQUFxRDdCLE9BQXJEO0FBRkQsU0FBUDtBQUlEOzs7Ozs7O0VBbk5nQ3lELHFCOztBQXNObkNZLE9BQU9DLE9BQVAsR0FBaUJ4RSxvQkFBakIiLCJmaWxlIjoiUmVhY3RGb3VydGVlbkFkYXB0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVucmVzb2x2ZWQsIGltcG9ydC9leHRlbnNpb25zXG5pbXBvcnQgUmVhY3RET01TZXJ2ZXIgZnJvbSAncmVhY3QtZG9tL3NlcnZlcic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVucmVzb2x2ZWQsIGltcG9ydC9leHRlbnNpb25zXG5pbXBvcnQgVGVzdFV0aWxzIGZyb20gJ3JlYWN0LWFkZG9ucy10ZXN0LXV0aWxzJztcbmltcG9ydCB2YWx1ZXMgZnJvbSAnb2JqZWN0LnZhbHVlcyc7XG5pbXBvcnQgeyBpc0VsZW1lbnQsIGlzVmFsaWRFbGVtZW50VHlwZSB9IGZyb20gJ3JlYWN0LWlzJztcbmltcG9ydCB7IEVuenltZUFkYXB0ZXIgfSBmcm9tICdlbnp5bWUnO1xuaW1wb3J0IHtcbiAgZGlzcGxheU5hbWVPZk5vZGUsXG4gIGVsZW1lbnRUb1RyZWUsXG4gIG1hcE5hdGl2ZUV2ZW50TmFtZXMsXG4gIHByb3BGcm9tRXZlbnQsXG4gIHdpdGhTZXRTdGF0ZUFsbG93ZWQsXG4gIGFzc2VydERvbUF2YWlsYWJsZSxcbiAgY3JlYXRlUmVuZGVyV3JhcHBlcixcbiAgY3JlYXRlTW91bnRXcmFwcGVyLFxuICBwcm9wc1dpdGhLZXlzQW5kUmVmLFxuICBlbnN1cmVLZXlPclVuZGVmaW5lZCxcbiAgd3JhcCxcbiAgUm9vdEZpbmRlcixcbiAgZ2V0Tm9kZUZyb21Sb290RmluZGVyLFxuICB3cmFwV2l0aFdyYXBwaW5nQ29tcG9uZW50LFxuICBnZXRXcmFwcGluZ0NvbXBvbmVudE1vdW50UmVuZGVyZXIsXG59IGZyb20gJ2VuenltZS1hZGFwdGVyLXV0aWxzJztcblxuZnVuY3Rpb24gdHlwZVRvTm9kZVR5cGUodHlwZSkge1xuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAodHlwZS5wcm90b3R5cGUgJiYgdHlwZW9mIHR5cGUucHJvdG90eXBlLnJlbmRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuICdjbGFzcyc7XG4gICAgfVxuICAgIHJldHVybiAnZnVuY3Rpb24nO1xuICB9XG4gIHJldHVybiAnaG9zdCc7XG59XG5cbmZ1bmN0aW9uIGluc3RhbmNlVG9UcmVlKGluc3QpIHtcbiAgaWYgKCFpbnN0IHx8IHR5cGVvZiBpbnN0ICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBpbnN0O1xuICB9XG4gIGNvbnN0IGVsID0gaW5zdC5fY3VycmVudEVsZW1lbnQ7XG4gIGlmICghZWwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBpZiAodHlwZW9mIGVsICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBlbDtcbiAgfVxuICBpZiAoaW5zdC5fdGFnKSB7XG4gICAgaWYgKHR5cGVvZiBlbCAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBlbDtcbiAgICB9XG4gICAgY29uc3QgY2hpbGRyZW4gPSBpbnN0Ll9yZW5kZXJlZENoaWxkcmVuIHx8IHsgJy4wJzogZWwucHJvcHMuY2hpbGRyZW4gfTtcbiAgICByZXR1cm4ge1xuICAgICAgbm9kZVR5cGU6ICdob3N0JyxcbiAgICAgIHR5cGU6IGVsLnR5cGUsXG4gICAgICBwcm9wczogZWwucHJvcHMsXG4gICAgICBrZXk6IGVuc3VyZUtleU9yVW5kZWZpbmVkKGVsLmtleSksXG4gICAgICByZWY6IGVsLnJlZixcbiAgICAgIGluc3RhbmNlOiBSZWFjdERPTS5maW5kRE9NTm9kZShpbnN0LmdldFB1YmxpY0luc3RhbmNlKCkpIHx8IG51bGwsXG4gICAgICByZW5kZXJlZDogdmFsdWVzKGNoaWxkcmVuKS5tYXAoaW5zdGFuY2VUb1RyZWUpLFxuICAgIH07XG4gIH1cbiAgaWYgKGluc3QuX3JlbmRlcmVkQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5vZGVUeXBlOiB0eXBlVG9Ob2RlVHlwZShlbC50eXBlKSxcbiAgICAgIHR5cGU6IGVsLnR5cGUsXG4gICAgICBwcm9wczogZWwucHJvcHMsXG4gICAgICBrZXk6IGVuc3VyZUtleU9yVW5kZWZpbmVkKGVsLmtleSksXG4gICAgICByZWY6IGVsLnJlZixcbiAgICAgIGluc3RhbmNlOiBpbnN0Ll9pbnN0YW5jZSB8fCBudWxsLFxuICAgICAgcmVuZGVyZWQ6IGluc3RhbmNlVG9UcmVlKGluc3QuX3JlbmRlcmVkQ29tcG9uZW50KSxcbiAgICB9O1xuICB9XG4gIHRocm93IG5ldyBFcnJvcignRW56eW1lIEludGVybmFsIEVycm9yOiB1bmtub3duIGluc3RhbmNlIGVuY291bnRlcmVkJyk7XG59XG5cbmNsYXNzIFJlYWN0Rm91cnRlZW5BZGFwdGVyIGV4dGVuZHMgRW56eW1lQWRhcHRlciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBjb25zdCB7IGxpZmVjeWNsZXMgfSA9IHRoaXMub3B0aW9ucztcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBzdXBwb3J0UHJldkNvbnRleHRBcmd1bWVudE9mQ29tcG9uZW50RGlkVXBkYXRlOiB0cnVlLCAvLyBUT0RPOiByZW1vdmUsIHNlbXZlci1tYWpvclxuICAgICAgbGVnYWN5Q29udGV4dE1vZGU6ICdwYXJlbnQnLFxuICAgICAgbGlmZWN5Y2xlczoge1xuICAgICAgICAuLi5saWZlY3ljbGVzLFxuICAgICAgICBjb21wb25lbnREaWRVcGRhdGU6IHtcbiAgICAgICAgICBwcmV2Q29udGV4dDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0Q2hpbGRDb250ZXh0OiB7XG4gICAgICAgICAgY2FsbGVkQnlSZW5kZXJlcjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNyZWF0ZU1vdW50UmVuZGVyZXIob3B0aW9ucykge1xuICAgIGFzc2VydERvbUF2YWlsYWJsZSgnbW91bnQnKTtcbiAgICBjb25zdCBkb21Ob2RlID0gb3B0aW9ucy5hdHRhY2hUbyB8fCBnbG9iYWwuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgbGV0IGluc3RhbmNlID0gbnVsbDtcbiAgICBjb25zdCBhZGFwdGVyID0gdGhpcztcbiAgICByZXR1cm4ge1xuICAgICAgcmVuZGVyKGVsLCBjb250ZXh0LCBjYWxsYmFjaykge1xuICAgICAgICBpZiAoaW5zdGFuY2UgPT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCB7IHR5cGUsIHByb3BzLCByZWYgfSA9IGVsO1xuICAgICAgICAgIGNvbnN0IHdyYXBwZXJQcm9wcyA9IHtcbiAgICAgICAgICAgIENvbXBvbmVudDogdHlwZSxcbiAgICAgICAgICAgIHdyYXBwaW5nQ29tcG9uZW50UHJvcHM6IG9wdGlvbnMud3JhcHBpbmdDb21wb25lbnRQcm9wcyxcbiAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIC4uLihyZWYgJiYgeyByZWZQcm9wOiByZWYgfSksXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBSZWFjdFdyYXBwZXJDb21wb25lbnQgPSBjcmVhdGVNb3VudFdyYXBwZXIoZWwsIHsgLi4ub3B0aW9ucywgYWRhcHRlciB9KTtcbiAgICAgICAgICBjb25zdCB3cmFwcGVkRWwgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0V3JhcHBlckNvbXBvbmVudCwgd3JhcHBlclByb3BzKTtcbiAgICAgICAgICBpbnN0YW5jZSA9IFJlYWN0RE9NLnJlbmRlcih3cmFwcGVkRWwsIGRvbU5vZGUpO1xuICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGluc3RhbmNlLnNldENoaWxkUHJvcHMoZWwucHJvcHMsIGNvbnRleHQsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVubW91bnQoKSB7XG4gICAgICAgIFJlYWN0RE9NLnVubW91bnRDb21wb25lbnRBdE5vZGUoZG9tTm9kZSk7XG4gICAgICAgIGluc3RhbmNlID0gbnVsbDtcbiAgICAgIH0sXG4gICAgICBnZXROb2RlKCkge1xuICAgICAgICBpZiAoIWluc3RhbmNlKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldE5vZGVGcm9tUm9vdEZpbmRlcihcbiAgICAgICAgICBhZGFwdGVyLmlzQ3VzdG9tQ29tcG9uZW50LFxuICAgICAgICAgIGluc3RhbmNlVG9UcmVlKGluc3RhbmNlLl9yZWFjdEludGVybmFsSW5zdGFuY2UpLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgc2ltdWxhdGVFdmVudChub2RlLCBldmVudCwgbW9jaykge1xuICAgICAgICBjb25zdCBtYXBwZWRFdmVudCA9IG1hcE5hdGl2ZUV2ZW50TmFtZXMoZXZlbnQpO1xuICAgICAgICBjb25zdCBldmVudEZuID0gVGVzdFV0aWxzLlNpbXVsYXRlW21hcHBlZEV2ZW50XTtcbiAgICAgICAgaWYgKCFldmVudEZuKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgUmVhY3RXcmFwcGVyOjpzaW11bGF0ZSgpIGV2ZW50ICcke2V2ZW50fScgZG9lcyBub3QgZXhpc3RgKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tZmluZC1kb20tbm9kZVxuICAgICAgICBldmVudEZuKFJlYWN0RE9NLmZpbmRET01Ob2RlKG5vZGUuaW5zdGFuY2UpLCBtb2NrKTtcbiAgICAgIH0sXG4gICAgICBiYXRjaGVkVXBkYXRlcyhmbikge1xuICAgICAgICByZXR1cm4gUmVhY3RET00udW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMoZm4pO1xuICAgICAgfSxcbiAgICAgIGdldFdyYXBwaW5nQ29tcG9uZW50UmVuZGVyZXIoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4udGhpcyxcbiAgICAgICAgICAuLi5nZXRXcmFwcGluZ0NvbXBvbmVudE1vdW50UmVuZGVyZXIoe1xuICAgICAgICAgICAgdG9UcmVlOiAoaW5zdCkgPT4gaW5zdGFuY2VUb1RyZWUoaW5zdC5fcmVhY3RJbnRlcm5hbEluc3RhbmNlKSxcbiAgICAgICAgICAgIGdldE1vdW50V3JhcHBlckluc3RhbmNlOiAoKSA9PiBpbnN0YW5jZSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNyZWF0ZVNoYWxsb3dSZW5kZXJlcigvKiBvcHRpb25zICovKSB7XG4gICAgY29uc3QgcmVuZGVyZXIgPSBUZXN0VXRpbHMuY3JlYXRlUmVuZGVyZXIoKTtcbiAgICBsZXQgaXNET00gPSBmYWxzZTtcbiAgICBsZXQgY2FjaGVkTm9kZSA9IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlbmRlcihlbCwgY29udGV4dCkge1xuICAgICAgICBjYWNoZWROb2RlID0gZWw7XG4gICAgICAgIC8qIGVzbGludCBjb25zaXN0ZW50LXJldHVybjogMCAqL1xuICAgICAgICBpZiAodHlwZW9mIGVsLnR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgaXNET00gPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzRE9NID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuIHdpdGhTZXRTdGF0ZUFsbG93ZWQoKCkgPT4gcmVuZGVyZXIucmVuZGVyKGVsLCBjb250ZXh0KSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1bm1vdW50KCkge1xuICAgICAgICByZW5kZXJlci51bm1vdW50KCk7XG4gICAgICB9LFxuICAgICAgZ2V0Tm9kZSgpIHtcbiAgICAgICAgaWYgKGlzRE9NKSB7XG4gICAgICAgICAgcmV0dXJuIGVsZW1lbnRUb1RyZWUoY2FjaGVkTm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gcmVuZGVyZXIuZ2V0UmVuZGVyT3V0cHV0KCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbm9kZVR5cGU6IHR5cGVUb05vZGVUeXBlKGNhY2hlZE5vZGUudHlwZSksXG4gICAgICAgICAgdHlwZTogY2FjaGVkTm9kZS50eXBlLFxuICAgICAgICAgIHByb3BzOiBjYWNoZWROb2RlLnByb3BzLFxuICAgICAgICAgIGtleTogZW5zdXJlS2V5T3JVbmRlZmluZWQoY2FjaGVkTm9kZS5rZXkpLFxuICAgICAgICAgIHJlZjogY2FjaGVkTm9kZS5yZWYsXG4gICAgICAgICAgaW5zdGFuY2U6IHJlbmRlcmVyLl9pbnN0YW5jZS5faW5zdGFuY2UsXG4gICAgICAgICAgcmVuZGVyZWQ6IGVsZW1lbnRUb1RyZWUob3V0cHV0KSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgICBzaW11bGF0ZUV2ZW50KG5vZGUsIGV2ZW50LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSBub2RlLnByb3BzW3Byb3BGcm9tRXZlbnQoZXZlbnQpXTtcbiAgICAgICAgaWYgKGhhbmRsZXIpIHtcbiAgICAgICAgICB3aXRoU2V0U3RhdGVBbGxvd2VkKCgpID0+IHtcbiAgICAgICAgICAgIC8vIFRPRE8obG1yKTogY3JlYXRlL3VzZSBzeW50aGV0aWMgZXZlbnRzXG4gICAgICAgICAgICAvLyBUT0RPKGxtcik6IGVtdWxhdGUgUmVhY3QncyBldmVudCBwcm9wYWdhdGlvblxuICAgICAgICAgICAgUmVhY3RET00udW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMoKCkgPT4ge1xuICAgICAgICAgICAgICBoYW5kbGVyKC4uLmFyZ3MpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBiYXRjaGVkVXBkYXRlcyhmbikge1xuICAgICAgICByZXR1cm4gd2l0aFNldFN0YXRlQWxsb3dlZCgoKSA9PiBSZWFjdERPTS51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyhmbikpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgY3JlYXRlU3RyaW5nUmVuZGVyZXIob3B0aW9ucykge1xuICAgIHJldHVybiB7XG4gICAgICByZW5kZXIoZWwsIGNvbnRleHQpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuY29udGV4dCAmJiAoZWwudHlwZS5jb250ZXh0VHlwZXMgfHwgb3B0aW9ucy5jaGlsZENvbnRleHRUeXBlcykpIHtcbiAgICAgICAgICBjb25zdCBjaGlsZENvbnRleHRUeXBlcyA9IHtcbiAgICAgICAgICAgIC4uLihlbC50eXBlLmNvbnRleHRUeXBlcyB8fCB7fSksXG4gICAgICAgICAgICAuLi5vcHRpb25zLmNoaWxkQ29udGV4dFR5cGVzLFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgQ29udGV4dFdyYXBwZXIgPSBjcmVhdGVSZW5kZXJXcmFwcGVyKGVsLCBjb250ZXh0LCBjaGlsZENvbnRleHRUeXBlcyk7XG4gICAgICAgICAgcmV0dXJuIFJlYWN0RE9NU2VydmVyLnJlbmRlclRvU3RhdGljTWFya3VwKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udGV4dFdyYXBwZXIpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUmVhY3RET01TZXJ2ZXIucmVuZGVyVG9TdGF0aWNNYXJrdXAoZWwpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8gUHJvdmlkZWQgYSBiYWcgb2Ygb3B0aW9ucywgcmV0dXJuIGFuIGBFbnp5bWVSZW5kZXJlcmAuIFNvbWUgb3B0aW9ucyBjYW4gYmUgaW1wbGVtZW50YXRpb25cbiAgLy8gc3BlY2lmaWMsIGxpa2UgYGF0dGFjaGAgZXRjLiBmb3IgUmVhY3QsIGJ1dCBub3QgcGFydCBvZiB0aGlzIGludGVyZmFjZSBleHBsaWNpdGx5LlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpcywgbm8tdW51c2VkLXZhcnNcbiAgY3JlYXRlUmVuZGVyZXIob3B0aW9ucykge1xuICAgIHN3aXRjaCAob3B0aW9ucy5tb2RlKSB7XG4gICAgICBjYXNlIEVuenltZUFkYXB0ZXIuTU9ERVMuTU9VTlQ6IHJldHVybiB0aGlzLmNyZWF0ZU1vdW50UmVuZGVyZXIob3B0aW9ucyk7XG4gICAgICBjYXNlIEVuenltZUFkYXB0ZXIuTU9ERVMuU0hBTExPVzogcmV0dXJuIHRoaXMuY3JlYXRlU2hhbGxvd1JlbmRlcmVyKG9wdGlvbnMpO1xuICAgICAgY2FzZSBFbnp5bWVBZGFwdGVyLk1PREVTLlNUUklORzogcmV0dXJuIHRoaXMuY3JlYXRlU3RyaW5nUmVuZGVyZXIob3B0aW9ucyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVuenltZSBJbnRlcm5hbCBFcnJvcjogVW5yZWNvZ25pemVkIG1vZGU6ICR7b3B0aW9ucy5tb2RlfWApO1xuICAgIH1cbiAgfVxuXG4gIHdyYXAoZWxlbWVudCkge1xuICAgIHJldHVybiB3cmFwKGVsZW1lbnQpO1xuICB9XG5cbiAgLy8gY29udmVydHMgYW4gUlNUTm9kZSB0byB0aGUgY29ycmVzcG9uZGluZyBKU1ggUHJhZ21hIEVsZW1lbnQuIFRoaXMgd2lsbCBiZSBuZWVkZWRcbiAgLy8gaW4gb3JkZXIgdG8gaW1wbGVtZW50IHRoZSBgV3JhcHBlci5tb3VudCgpYCBhbmQgYFdyYXBwZXIuc2hhbGxvdygpYCBtZXRob2RzLCBidXQgc2hvdWxkXG4gIC8vIGJlIHByZXR0eSBzdHJhaWdodGZvcndhcmQgZm9yIHBlb3BsZSB0byBpbXBsZW1lbnQuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzLCBuby11bnVzZWQtdmFyc1xuICBub2RlVG9FbGVtZW50KG5vZGUpIHtcbiAgICBpZiAoIW5vZGUgfHwgdHlwZW9mIG5vZGUgIT09ICdvYmplY3QnKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChub2RlLnR5cGUsIHByb3BzV2l0aEtleXNBbmRSZWYobm9kZSkpO1xuICB9XG5cbiAgZWxlbWVudFRvTm9kZShlbGVtZW50KSB7XG4gICAgcmV0dXJuIGVsZW1lbnRUb1RyZWUoZWxlbWVudCk7XG4gIH1cblxuICBub2RlVG9Ib3N0Tm9kZShub2RlKSB7XG4gICAgcmV0dXJuIFJlYWN0RE9NLmZpbmRET01Ob2RlKG5vZGUuaW5zdGFuY2UpO1xuICB9XG5cbiAgZGlzcGxheU5hbWVPZk5vZGUobm9kZSkge1xuICAgIHJldHVybiBkaXNwbGF5TmFtZU9mTm9kZShub2RlKTtcbiAgfVxuXG4gIGlzVmFsaWRFbGVtZW50KGVsZW1lbnQpIHtcbiAgICByZXR1cm4gaXNFbGVtZW50KGVsZW1lbnQpO1xuICB9XG5cbiAgaXNWYWxpZEVsZW1lbnRUeXBlKG9iamVjdCkge1xuICAgIHJldHVybiBpc1ZhbGlkRWxlbWVudFR5cGUob2JqZWN0KTtcbiAgfVxuXG4gIGlzQ3VzdG9tQ29tcG9uZW50KGNvbXBvbmVudCkge1xuICAgIHJldHVybiB0eXBlb2YgY29tcG9uZW50ID09PSAnZnVuY3Rpb24nO1xuICB9XG5cbiAgY3JlYXRlRWxlbWVudCguLi5hcmdzKSB7XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoLi4uYXJncyk7XG4gIH1cblxuICB3cmFwV2l0aFdyYXBwaW5nQ29tcG9uZW50KG5vZGUsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgUm9vdEZpbmRlcixcbiAgICAgIG5vZGU6IHdyYXBXaXRoV3JhcHBpbmdDb21wb25lbnQoUmVhY3QuY3JlYXRlRWxlbWVudCwgbm9kZSwgb3B0aW9ucyksXG4gICAgfTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0Rm91cnRlZW5BZGFwdGVyO1xuIl19
//# sourceMappingURL=ReactFourteenAdapter.js.map
{
"name": "enzyme-adapter-react-14",
"version": "1.4.0",
"version": "1.4.1",
"description": "JavaScript Testing utilities for React",
"homepage": "http://airbnb.io/enzyme/",
"homepage": "https://airbnb.io/enzyme/",
"main": "build",

@@ -38,7 +38,7 @@ "scripts": {

"dependencies": {
"enzyme-adapter-utils": "^1.10.1",
"enzyme-adapter-utils": "^1.12.1",
"object.assign": "^4.1.0",
"object.values": "^1.1.0",
"prop-types": "^15.7.2",
"react-is": "^16.8.6"
"react-is": "^16.10.2"
},

@@ -56,11 +56,11 @@ "peerDependencies": {

"enzyme": "^3.0.0",
"eslint": "^5.16.0",
"eslint-config-airbnb": "^17.1.0",
"eslint-plugin-import": "^2.16.0",
"eslint-plugin-jsx-a11y": "^6.2.1",
"eslint-plugin-react": "^7.12.4",
"eslint": "^6.5.1",
"eslint-config-airbnb": "^18.0.1",
"eslint-plugin-import": "^2.18.2",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-react": "^7.16.0",
"in-publish": "^2.0.0",
"rimraf": "^2.6.3",
"safe-publish-latest": "^1.1.2"
"rimraf": "^2.7.1",
"safe-publish-latest": "^1.1.3"
}
}

@@ -6,3 +6,3 @@ Enzyme

[![npm Version](https://img.shields.io/npm/v/enzyme.svg)](https://www.npmjs.com/package/enzyme) [![License](https://img.shields.io/npm/l/enzyme.svg)](https://www.npmjs.com/package/enzyme) [![Build Status](https://travis-ci.org/airbnb/enzyme.svg)](https://travis-ci.org/airbnb/enzyme) [![Coverage Status](https://coveralls.io/repos/airbnb/enzyme/badge.svg?branch=master&service=github)](https://coveralls.io/github/airbnb/enzyme?branch=master)
[![npm Version](https://img.shields.io/npm/v/enzyme.svg)](https://www.npmjs.com/package/enzyme) [![License](https://img.shields.io/npm/l/enzyme.svg)](https://github.com/airbnb/enzyme/blob/master/LICENSE.md) [![Build Status](https://travis-ci.org/airbnb/enzyme.svg)](https://travis-ci.org/airbnb/enzyme) [![Coverage Status](https://coveralls.io/repos/airbnb/enzyme/badge.svg?branch=master&service=github)](https://coveralls.io/github/airbnb/enzyme?branch=master)

@@ -72,3 +72,3 @@

| --- | --- | --- |
| [`preact-enzyme-adapter`](https://github.com/aweary/preact-enzyme-adapater) | [`preact`](https://github.com/developit/preact) | (work in progress) |
| [`enzyme-adapter-preact-pure`](https://github.com/preactjs/enzyme-adapter-preact-pure) | [`preact`](https://github.com/developit/preact) | (stable) |
|[`enzyme-adapter-inferno`](https://github.com/bbc/enzyme-adapter-inferno)|[`inferno`](https://github.com/infernojs/inferno)|(work in progress)|

@@ -224,3 +224,32 @@

### React Hooks support
Enzyme supports [react hooks](https://reactjs.org/docs/hooks-intro.html) with some limitations in [`.shallow()`](https://airbnb.io/enzyme/docs/api/shallow.html) due to upstream issues in React's shallow renderer:
* `useEffect()` and `useLayoutEffect()` don't get called in the React shallow renderer. [Related issue](https://github.com/facebook/react/issues/15275)
* `useCallback()` doesn't memoize callback in React shallow renderer. [Related issue](https://github.com/facebook/react/issues/15774)
#### [`ReactTestUtils.act()`](https://reactjs.org/docs/test-utils.html#act) wrap
If you're using React 16.8+ and `.mount()`, Enzyme will wrap apis including [`.simulate()`](https://airbnb.io/enzyme/docs/api/ReactWrapper/simulate.html), [`.setProps()`](https://airbnb.io/enzyme/docs/api/ReactWrapper/setProps.html), [`.setContext()`](https://airbnb.io/enzyme/docs/api/ReactWrapper/setContext.html), [`.invoke()`](https://airbnb.io/enzyme/docs/api/ReactWrapper/invoke.html) with [`ReactTestUtils.act()`](https://reactjs.org/docs/test-utils.html#act) so you don't need to manually wrap it.
A common pattern to trigger handlers with `.act()` and assert is:
```javascript
const wrapper = mount(<SomeComponent />);
act(() => wrapper.prop('handler')());
wrapper.update();
expect(/* ... */);
```
We cannot wrap the result of `.prop()` (or `.props()`) with `.act()` in Enzyme internally since it will break the equality of the returned value.
However, you could use `.invoke()` to simplify the code:
```javascript
const wrapper = mount(<SomeComponent />);
wrapper.invoke('handler')();
expect(/* ... */);
```
### Future

@@ -227,0 +256,0 @@

@@ -113,3 +113,3 @@ import React from 'react';

context,
...(ref && { ref }),
...(ref && { refProp: ref }),
};

@@ -156,3 +156,3 @@ const ReactWrapperComponent = createMountWrapper(el, { ...options, adapter });

...getWrappingComponentMountRenderer({
toTree: inst => instanceToTree(inst._reactInternalInstance),
toTree: (inst) => instanceToTree(inst._reactInternalInstance),
getMountWrapperInstance: () => instance,

@@ -159,0 +159,0 @@ }),

Sorry, the diff of this file is not supported yet

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