{"version":3,"sources":["jsdelivr-header.js","/npm/babel-plugin-transform-react-remove-prop-types@0.4.24/lib/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,OAAO,eAAe,QAAS,aAAc,CAC3C,OAAO,IAET,QAAQ,QAAU,SAElB,IAAI,uBAAyB,uBAAuB,QAAQ,4BAExD,sBAAwB,uBAAuB,QAAQ,2BAEvD,QAAU,uBAAuB,QAAQ,aAE7C,SAAS,uBAAuB,GAAO,OAAO,GAAO,EAAI,WAAa,EAAM,CAAE,QAAS,EAAO,CAE9F,SAAS,cAAc,GAAU,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,CAAE,IAAI,EAAyB,MAAhB,UAAU,GAAa,UAAU,GAAK,CAAC,EAAO,EAAU,OAAO,KAAK,GAAqD,mBAAjC,OAAO,wBAAwC,EAAU,EAAQ,OAAO,OAAO,sBAAsB,GAAQ,QAAO,SAAU,GAAO,OAAO,OAAO,yBAAyB,EAAQ,GAAK,UAAY,MAAO,EAAQ,SAAQ,SAAU,GAAO,gBAAgB,EAAQ,EAAK,EAAO,GAAO,GAAI,CAAE,OAAO,CAAQ,CAEhe,SAAS,gBAAgB,EAAK,EAAK,GAAiK,OAApJ,KAAO,EAAO,OAAO,eAAe,EAAK,EAAK,CAAE,MAAO,EAAO,YAAY,EAAM,cAAc,EAAM,UAAU,IAAkB,EAAI,GAAO,EAAgB,CAAK,CAEhN,SAAS,iBAAiB,EAAM,GAC9B,IAAI,EAAO,EAAK,KACZ,EAAW,EAAc,kBAE7B,SAAI,EAAK,eAAe,qBAAsB,EAAK,eAAe,6BAI9D,GAAuB,cAAd,EAAK,MAAsC,kBAAd,EAAK,UAI3C,GAAQ,GAAY,EAAS,KAAK,EAAK,OAK7C,CAEA,SAAS,aAAa,EAAY,EAAO,GACvC,IAAK,EAAW,KACd,OAAO,EAGT,IAAI,GAAS,EAEb,GAAI,iBAAiB,EAAY,GAC/B,GAAS,OACJ,GAAI,EAAW,KAAK,KAAM,CAE/B,IAAI,EAAY,EAAW,KAAK,KAC5B,EAAU,EAAM,WAAW,GAE/B,GAAK,EAKC,iBAFoB,EAAQ,KAAK,IAAI,cAED,KACtC,GAAS,QALX,GAAS,CAQb,CAEA,OAAO,CACT,CAEA,SAAS,aAAa,EAAM,GAC1B,OAAI,IAAS,GAIT,EAAK,OAAS,EAAK,OAIf,MAAM,KAAK,GAAM,MAAK,SAAU,GACtC,OAAQ,EAAK,IAAI,EACnB,GACF,CAEA,SAAS,+BAA+B,GAItC,IAII,EAJA,EAAS,EAAK,YAAW,SAAU,GACrC,OAAQ,EAAE,oBACZ,IAUA,GANa,mBAHF,EAAO,KAAK,OAMrB,EAAmB,EAAO,IAAI,WAG3B,GAA8C,qBAA1B,EAAiB,KAExC,OAAO,KAMT,KAA6C,qBAAtC,EAAiB,KAAK,OAAO,MAClC,EAAmB,EAAiB,IAAI,UAG1C,OAAO,EAAiB,IAAI,SAC9B,CAEA,SAAS,SAAS,GAChB,IAAI,EAAW,EAAI,SACf,EAAQ,EAAI,MACZ,EAAW,EAAI,SACf,EAAoB,IAAI,IACxB,EAAe,IAAI,QACnB,EAA2B,CAC7B,WAAY,SAAoB,GAC9B,GAAyB,qBAArB,EAAK,OAAO,MAWS,mBAArB,EAAK,OAAO,MAA8B,EAAK,OAAO,MAAQ,EAAK,OAAQ,EAAK,OAAO,YAM3F,EAAkB,IAAI,EAAK,KAAK,UAjBhC,CAEE,IAAI,EAAO,+BAA+B,GAEtC,GACF,EAAkB,IAAI,EAAK,KAAK,KAIpC,CASF,GAEF,MAAO,CACL,QAAS,CACP,QAAS,SAAiB,EAAa,GACrC,IAAI,EACA,EAGF,EADE,EAAM,KAAK,gBACK,IAAI,OAAO,EAAM,KAAK,gBAAgB,KAAK,KAAM,UAEjD,EAIlB,EADE,EAAM,KAAK,kBACO,IAAI,OAAO,EAAM,KAAK,kBAAkB,KAAK,WAE7C,EAGtB,IAAI,EAAgB,CAClB,WAAY,oCAAoC,OAAO,KAAK,OAC5D,mBAAoB,EAAS,qHAAwH,CACnJ,mBAAoB,WAEtB,aAAc,SAAsB,GAClC,IAAI,EAAO,EAAK,KACZ,EAAQ,EAAK,MAEb,GADU,UAAU,OAAS,QAAsB,IAAjB,UAAU,GAAmB,UAAU,GAAK,CAAC,GACzD,GACtB,OAAqB,IAAhB,EAAyB,uBAAyB,EACvD,EAAQ,EAAS,WAAW,uFAA0F,CACxH,mBAAoB,kBADV,CAET,CACD,MAAO,IAGT,OAAQ,GACN,IAAK,qBACH,OAAO,EAAM,mBAAmB,EAAM,GAExC,IAAK,uBACH,OAAO,EAAM,qBAAqB,IAAK,EAAM,GAE/C,QACE,MAAM,IAAI,MAAM,8BAA8B,OAAO,IAE3D,EACA,KAAM,EAAM,KAAK,MAAQ,SACzB,gBAAiB,EACjB,MAAO,EACP,aAAc,EAAM,KAAK,eAAgB,EACzC,WAAY,EAAM,KAAK,qBAAuB,IAAI,OAAO,cACzD,kBAAmB,EACnB,qBAAsB,EAAM,KAAK,sBAAwB,oBAG3D,GAAI,EAAM,KAAK,QAAS,CACtB,IAAI,EAAe,EACf,EAAkB,EAAM,KAAK,QAAQ,KAAI,SAAU,GACrD,IAAI,EAAmC,iBAAf,EAA0B,EAAa,EAAW,GAEhD,iBAAf,IACT,EAAa,KAAO,cAAc,CAAC,EAAG,EAAa,KAAM,EAAW,KAGtE,IAAI,EAAS,QAAQ,GAMrB,MAJsB,mBAAX,IACT,EAAS,EAAO,SAGX,EAAO,GAAK,OACrB,IACA,EAAS,EAAY,OAAQ,EAAS,SAAS,MAAM,GAAkB,EAAY,MAAO,EAAc,EAAY,WACtH,CAGA,EAAY,SAAS,CACnB,eAAgB,CACd,KAAM,SAAc,GAClB,IAAI,EAAO,EAAK,KAEZ,EAAK,UAA8B,cAAlB,EAAK,IAAI,MAIjB,EAAK,YAAW,SAAU,GACrC,MAAyB,mBAArB,EAAY,OAIT,EAAY,IAAI,UAAU,KAAK,OAAS,EAAc,sBAAwB,EAAY,IAAI,UAAU,KAAK,UAA6D,gBAAjD,EAAY,IAAI,UAAU,KAAK,SAAS,KAC1K,MAGE,EAAK,SAAS,GACd,EAAa,IAAI,IACjB,EAAI,QAAQ,SAAS,EAAM,EAAe,CACxC,KAAM,gBAGZ,GAGF,cAAe,SAAuB,GACpC,IAAI,EAAO,EAAK,KACZ,EAAQ,EAAK,MAEjB,GAAsB,cAAlB,EAAK,IAAI,KAAsB,CACjC,IAAI,EAAuB,EAAM,KAE7B,aAAa,EAAqB,IAAI,cAAe,EAAO,KAC9D,EAAK,SAAS,GACd,EAAa,IAAI,IACjB,EAAI,QAAQ,SAAS,EAAM,EAAe,CACxC,KAAM,eACN,qBAAsB,IAG5B,CACF,EACA,qBAAsB,SAA8B,GAClD,IAAI,EAAO,EAAK,KACZ,EAAQ,EAAK,MAEjB,IAAI,EAAK,KAAK,UAAa,EAAK,KAAK,UAAwC,cAA5B,EAAK,KAAK,SAAS,KAApE,CAMA,IAFmB,EAAI,uBAAuB,SAAS,EAAK,KAAK,MAQ/D,OALA,EAAK,SAAS,GACd,EAAa,IAAI,QACjB,EAAI,QAAQ,SAAS,EAAM,EAAe,CACxC,KAAM,WAKV,IAAI,EAAY,EAAK,KAAK,OAAO,KAC7B,EAAU,EAAM,WAAW,GAE/B,GAAK,EAIL,GAAI,EAAQ,KAAK,qBAGX,aAFa,EAAQ,KAAK,IAAI,cAEL,EAAO,KAClC,EAAK,SAAS,GACd,EAAa,IAAI,IACjB,EAAI,QAAQ,SAAS,EAAM,EAAe,CACxC,KAAM,iBAGD,EAAI,sBAAsB,SAAS,EAAQ,QACpD,EAAK,SAAS,GACd,EAAa,IAAI,IACjB,EAAI,QAAQ,SAAS,EAAM,EAAe,CACxC,KAAM,WAlCV,CAqCF,IAwDF,IAtDA,IAAI,EAAqB,EACrB,EAA+B,CACjC,mBAAoB,SAA4B,GAE9C,GAA8B,YAA1B,EAAK,MAAM,MAAM,OAIjB,CAAC,gBAAiB,gBAAgB,SAAS,EAAK,KAAK,GAAG,MAA5D,CAUA,IAAI,EAAO,EAAK,KAAK,GAAG,KAExB,GAAK,EAAkB,IAAI,GAIC,EAAK,MAAM,WAAW,GACP,eAKK,MAAK,SAAU,GAI7D,OAHY,EAAc,MAAK,SAAU,GACvC,OAAO,EAAa,IAAI,EAC1B,GAEF,IAKE,GAAsB,GAIxB,EAAa,IAAI,GACjB,EAAkB,OAAO,GACzB,EAAK,IAAI,QAAQ,SAAS,IAC1B,EAAI,QAAQ,SAAS,EAAM,EAAe,CACxC,KAAM,eAhCR,CAkCF,GAEE,EAAwB,IAAI,KAExB,aAAa,EAAmB,IAA0B,EAAkB,KAAO,GAAK,EAAqB,EAAkB,MACrI,EAAwB,IAAI,IAAI,GAChC,EAAqB,EACrB,EAAY,MAAM,QAClB,EAAY,SAAS,GAGvB,GAAI,EAAc,aAAc,CAC9B,GAA2B,WAAvB,EAAc,KAkChB,MAAM,IAAI,MAAM,gHAjChB,EAAY,MAAM,QAClB,EAAY,SAAS,CACnB,kBAAmB,SAA2B,GAC5C,IAAI,EAAa,EAAK,KAClB,EAAS,EAAW,OACpB,EAAa,EAAW,WAChB,EAAc,UAAU,MAAK,SAAU,GACjD,OAAI,aAAmB,OACd,EAAQ,KAAK,EAAO,OAGtB,EAAO,QAAU,CAC1B,MAMyB,EAAW,MAAK,SAAU,GACjD,IAAI,EAAyB,EAAU,MAAM,KAK7C,OAH6B,EAAK,MAAM,WAAW,GACP,eAEtB,OAAS,CACjC,KAGE,EAAK,SAET,GAKN,CACF,GAGN","file":"/npm/babel-plugin-transform-react-remove-prop-types@0.4.24/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/babel-plugin-transform-react-remove-prop-types@0.4.24/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = _default;\n\nvar _isAnnotatedForRemoval = _interopRequireDefault(require(\"./isAnnotatedForRemoval\"));\n\nvar _isStatelessComponent = _interopRequireDefault(require(\"./isStatelessComponent\"));\n\nvar _remove = _interopRequireDefault(require(\"./remove\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction isPathReactClass(path, globalOptions) {\n  var node = path.node;\n  var matchers = globalOptions.classNameMatchers;\n\n  if (path.matchesPattern('React.Component') || path.matchesPattern('React.PureComponent')) {\n    return true;\n  }\n\n  if (node && (node.name === 'Component' || node.name === 'PureComponent')) {\n    return true;\n  }\n\n  if (node && matchers && matchers.test(node.name)) {\n    return true;\n  }\n\n  return false;\n}\n\nfunction isReactClass(superClass, scope, globalOptions) {\n  if (!superClass.node) {\n    return false;\n  }\n\n  var answer = false;\n\n  if (isPathReactClass(superClass, globalOptions)) {\n    answer = true;\n  } else if (superClass.node.name) {\n    // Check for inheritance\n    var className = superClass.node.name;\n    var binding = scope.getBinding(className);\n\n    if (!binding) {\n      answer = false;\n    } else {\n      var bindingSuperClass = binding.path.get('superClass');\n\n      if (isPathReactClass(bindingSuperClass, globalOptions)) {\n        answer = true;\n      }\n    }\n  }\n\n  return answer;\n}\n\nfunction areSetsEqual(set1, set2) {\n  if (set1 === set2) {\n    return true;\n  }\n\n  if (set1.size !== set2.size) {\n    return false;\n  }\n\n  return !Array.from(set1).some(function (item) {\n    return !set2.has(item);\n  });\n}\n\nfunction memberExpressionRootIdentifier(path) {\n  // Traverse up to the parent before the topmost member expression, and then\n  // traverse back down to find the topmost identifier. It seems like there\n  // might be a better way to do this.\n  var parent = path.findParent(function (p) {\n    return !p.isMemberExpression();\n  });\n  var type = parent.node.type;\n  var memberExpression;\n\n  if (type === 'ObjectProperty') {\n    // The topmost MemberExpression's parent is an object property, so the\n    // topmost MemberExpression should be the value.\n    memberExpression = parent.get('value');\n  }\n\n  if (!memberExpression || memberExpression.type !== 'MemberExpression') {\n    // This case is currently unhandled by this plugin.\n    return null;\n  } // We have a topmost MemberExpression now, so we want to traverse down the\n  // left half untli we no longer see MemberExpressions. This node will give us\n  // our leftmost identifier.\n\n\n  while (memberExpression.node.object.type === 'MemberExpression') {\n    memberExpression = memberExpression.get('object');\n  }\n\n  return memberExpression.get('object');\n}\n\nfunction _default(api) {\n  var template = api.template,\n      types = api.types,\n      traverse = api.traverse;\n  var nestedIdentifiers = new Set();\n  var removedPaths = new WeakSet();\n  var collectNestedIdentifiers = {\n    Identifier: function Identifier(path) {\n      if (path.parent.type === 'MemberExpression') {\n        // foo.bar\n        var root = memberExpressionRootIdentifier(path);\n\n        if (root) {\n          nestedIdentifiers.add(root.node.name);\n        }\n\n        return;\n      }\n\n      if (path.parent.type === 'ObjectProperty' && (path.parent.key === path.node || path.parent.shorthand)) {\n        // { foo: 'bar' }\n        // { foo }\n        return;\n      }\n\n      nestedIdentifiers.add(path.node.name);\n    }\n  };\n  return {\n    visitor: {\n      Program: function Program(programPath, state) {\n        var ignoreFilenames;\n        var classNameMatchers;\n\n        if (state.opts.ignoreFilenames) {\n          ignoreFilenames = new RegExp(state.opts.ignoreFilenames.join('|'), 'i');\n        } else {\n          ignoreFilenames = undefined;\n        }\n\n        if (state.opts.classNameMatchers) {\n          classNameMatchers = new RegExp(state.opts.classNameMatchers.join('|'));\n        } else {\n          classNameMatchers = undefined;\n        }\n\n        var globalOptions = {\n          visitedKey: \"transform-react-remove-prop-types\".concat(Date.now()),\n          unsafeWrapTemplate: template(\"\\n              if (process.env.NODE_ENV !== \\\"production\\\") {\\n                NODE;\\n              }\\n            \", {\n            placeholderPattern: /^NODE$/\n          }),\n          wrapTemplate: function wrapTemplate(_ref) {\n            var LEFT = _ref.LEFT,\n                RIGHT = _ref.RIGHT;\n            var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n            var _options$as = options.as,\n                as = _options$as === void 0 ? 'assignmentExpression' : _options$as;\n            var right = template.expression(\"\\n                process.env.NODE_ENV !== \\\"production\\\" ? RIGHT : {}\\n              \", {\n              placeholderPattern: /^(LEFT|RIGHT)$/\n            })({\n              RIGHT: RIGHT\n            });\n\n            switch (as) {\n              case 'variableDeclarator':\n                return types.variableDeclarator(LEFT, right);\n\n              case 'assignmentExpression':\n                return types.assignmentExpression('=', LEFT, right);\n\n              default:\n                throw new Error(\"unrecognized template type \".concat(as));\n            }\n          },\n          mode: state.opts.mode || 'remove',\n          ignoreFilenames: ignoreFilenames,\n          types: types,\n          removeImport: state.opts.removeImport || false,\n          libraries: (state.opts.additionalLibraries || []).concat('prop-types'),\n          classNameMatchers: classNameMatchers,\n          createReactClassName: state.opts.createReactClassName || 'createReactClass'\n        };\n\n        if (state.opts.plugins) {\n          var pluginsState = state;\n          var pluginsVisitors = state.opts.plugins.map(function (pluginOpts) {\n            var pluginName = typeof pluginOpts === 'string' ? pluginOpts : pluginOpts[0];\n\n            if (typeof pluginOpts !== 'string') {\n              pluginsState.opts = _objectSpread({}, pluginsState.opts, pluginOpts[1]);\n            }\n\n            var plugin = require(pluginName);\n\n            if (typeof plugin !== 'function') {\n              plugin = plugin.default;\n            }\n\n            return plugin(api).visitor;\n          });\n          traverse(programPath.parent, traverse.visitors.merge(pluginsVisitors), programPath.scope, pluginsState, programPath.parentPath);\n        } // On program start, do an explicit traversal up front for this plugin.\n\n\n        programPath.traverse({\n          ObjectProperty: {\n            exit: function exit(path) {\n              var node = path.node;\n\n              if (node.computed || node.key.name !== 'propTypes') {\n                return;\n              }\n\n              var parent = path.findParent(function (currentNode) {\n                if (currentNode.type !== 'CallExpression') {\n                  return false;\n                }\n\n                return currentNode.get('callee').node.name === globalOptions.createReactClassName || currentNode.get('callee').node.property && currentNode.get('callee').node.property.name === 'createClass';\n              });\n\n              if (parent) {\n                path.traverse(collectNestedIdentifiers);\n                removedPaths.add(path);\n                (0, _remove.default)(path, globalOptions, {\n                  type: 'createClass'\n                });\n              }\n            }\n          },\n          // Here to support stage-1 transform-class-properties.\n          ClassProperty: function ClassProperty(path) {\n            var node = path.node,\n                scope = path.scope;\n\n            if (node.key.name === 'propTypes') {\n              var pathClassDeclaration = scope.path;\n\n              if (isReactClass(pathClassDeclaration.get('superClass'), scope, globalOptions)) {\n                path.traverse(collectNestedIdentifiers);\n                removedPaths.add(path);\n                (0, _remove.default)(path, globalOptions, {\n                  type: 'class static',\n                  pathClassDeclaration: pathClassDeclaration\n                });\n              }\n            }\n          },\n          AssignmentExpression: function AssignmentExpression(path) {\n            var node = path.node,\n                scope = path.scope;\n\n            if (node.left.computed || !node.left.property || node.left.property.name !== 'propTypes') {\n              return;\n            }\n\n            var forceRemoval = (0, _isAnnotatedForRemoval.default)(path.node.left);\n\n            if (forceRemoval) {\n              path.traverse(collectNestedIdentifiers);\n              removedPaths.add(path);\n              (0, _remove.default)(path, globalOptions, {\n                type: 'assign'\n              });\n              return;\n            }\n\n            var className = node.left.object.name;\n            var binding = scope.getBinding(className);\n\n            if (!binding) {\n              return;\n            }\n\n            if (binding.path.isClassDeclaration()) {\n              var superClass = binding.path.get('superClass');\n\n              if (isReactClass(superClass, scope, globalOptions)) {\n                path.traverse(collectNestedIdentifiers);\n                removedPaths.add(path);\n                (0, _remove.default)(path, globalOptions, {\n                  type: 'assign'\n                });\n              }\n            } else if ((0, _isStatelessComponent.default)(binding.path)) {\n              path.traverse(collectNestedIdentifiers);\n              removedPaths.add(path);\n              (0, _remove.default)(path, globalOptions, {\n                type: 'assign'\n              });\n            }\n          }\n        });\n        var skippedIdentifiers = 0;\n        var removeNewlyUnusedIdentifiers = {\n          VariableDeclarator: function VariableDeclarator(path) {\n            // Only consider the top level scope.\n            if (path.scope.block.type !== 'Program') {\n              return;\n            }\n\n            if (['ObjectPattern', 'ArrayPattern'].includes(path.node.id.type)) {\n              // Object or Array destructuring, so we will want to capture all\n              // the names created by the destructuring. This currently doesn't\n              // work, but would be good to improve. All of the names for\n              // ObjectPattern can be collected like:\n              //\n              //   path.node.id.properties.map(prop => prop.value.name);\n              return;\n            }\n\n            var name = path.node.id.name;\n\n            if (!nestedIdentifiers.has(name)) {\n              return;\n            }\n\n            var _path$scope$getBindin = path.scope.getBinding(name),\n                referencePaths = _path$scope$getBindin.referencePaths; // Count the number of referencePaths that are not in the\n            // removedPaths Set. We need to do this in order to support the wrap\n            // option, which doesn't actually remove the references.\n\n\n            var hasRemainingReferencePaths = referencePaths.some(function (referencePath) {\n              var found = referencePath.find(function (path2) {\n                return removedPaths.has(path2);\n              });\n              return !found;\n            });\n\n            if (hasRemainingReferencePaths) {\n              // There are still references to this identifier, so we need to\n              // skip over it for now.\n              skippedIdentifiers += 1;\n              return;\n            }\n\n            removedPaths.add(path);\n            nestedIdentifiers.delete(name);\n            path.get('init').traverse(collectNestedIdentifiers);\n            (0, _remove.default)(path, globalOptions, {\n              type: 'declarator'\n            });\n          }\n        };\n        var lastNestedIdentifiers = new Set();\n\n        while (!areSetsEqual(nestedIdentifiers, lastNestedIdentifiers) && nestedIdentifiers.size > 0 && skippedIdentifiers < nestedIdentifiers.size) {\n          lastNestedIdentifiers = new Set(nestedIdentifiers);\n          skippedIdentifiers = 0;\n          programPath.scope.crawl();\n          programPath.traverse(removeNewlyUnusedIdentifiers);\n        }\n\n        if (globalOptions.removeImport) {\n          if (globalOptions.mode === 'remove') {\n            programPath.scope.crawl();\n            programPath.traverse({\n              ImportDeclaration: function ImportDeclaration(path) {\n                var _path$node = path.node,\n                    source = _path$node.source,\n                    specifiers = _path$node.specifiers;\n                var found = globalOptions.libraries.some(function (library) {\n                  if (library instanceof RegExp) {\n                    return library.test(source.value);\n                  }\n\n                  return source.value === library;\n                });\n\n                if (!found) {\n                  return;\n                }\n\n                var haveUsedSpecifiers = specifiers.some(function (specifier) {\n                  var importedIdentifierName = specifier.local.name;\n\n                  var _path$scope$getBindin2 = path.scope.getBinding(importedIdentifierName),\n                      referencePaths = _path$scope$getBindin2.referencePaths;\n\n                  return referencePaths.length > 0;\n                });\n\n                if (!haveUsedSpecifiers) {\n                  path.remove();\n                }\n              }\n            });\n          } else {\n            throw new Error('transform-react-remove-prop-type: removeImport = true and mode != \"remove\" can not be used at the same time.');\n          }\n        }\n      }\n    }\n  };\n}"]}