{"version":3,"sources":["../../src/rules/requireParam.js"],"names":["report","utils","functionParameterNames","getFunctionParameterNames","jsdocParameterNames","getJsdocParameterNames","hasTag","classHasTag","isOverrideAllowedWithoutParam","isImplementsAllowedWithoutParam","isAugmentsExtendsAllowedWithoutParam","_","some","functionParameterName","index","jsdocParameterName","getPreferredTagName"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA;eACe,2BAAa,gBAGtB;AAAA,MAFJA,MAEI,QAFJA,MAEI;AAAA,MADJC,KACI,QADJA,KACI;AACJ,MAAMC,sBAAsB,GAAGD,KAAK,CAACE,yBAAN,EAA/B;AACA,MAAMC,mBAAmB,GAAGH,KAAK,CAACI,sBAAN,EAA5B,CAFI,CAIJ;;AACA,MAAIJ,KAAK,CAACK,MAAN,CAAa,YAAb,CAAJ,EAAgC;AAC9B;AACD,GAPG,CASJ;AACA;;;AACA,MAAI,CAACL,KAAK,CAACK,MAAN,CAAa,UAAb,KAA4BL,KAAK,CAACM,WAAN,CAAkB,UAAlB,CAA7B,KAA+DN,KAAK,CAACO,6BAAN,EAAnE,EAA0G;AACxG;AACD,GAbG,CAeJ;AACA;;;AACA,MAAI,CAACP,KAAK,CAACK,MAAN,CAAa,YAAb,KAA8BL,KAAK,CAACM,WAAN,CAAkB,YAAlB,CAA/B,KAAmEN,KAAK,CAACQ,+BAAN,EAAvE,EAAgH;AAC9G;AACD,GAnBG,CAqBJ;AACA;;;AACA,MAAI,CAACR,KAAK,CAACK,MAAN,CAAa,UAAb,KAA4BL,KAAK,CAACK,MAAN,CAAa,SAAb,CAA5B,IACHL,KAAK,CAACM,WAAN,CAAkB,UAAlB,CADG,IAC8BN,KAAK,CAACM,WAAN,CAAkB,SAAlB,CAD/B,KACgEN,KAAK,CAACS,oCAAN,EADpE,EACkH;AAChH;AACD;;AAEDC,kBAAEC,IAAF,CAAOV,sBAAP,EAA+B,UAACW,qBAAD,EAAwBC,KAAxB,EAAkC;AAC/D,QAAMC,kBAAkB,GAAGX,mBAAmB,CAACU,KAAD,CAA9C;;AAEA,QAAI,CAACC,kBAAL,EAAyB;AACvBf,MAAAA,MAAM,CAAC,oBAAoBC,KAAK,CAACe,mBAAN,CAA0B,OAA1B,CAApB,GAAyD,IAAzD,GAAgEH,qBAAhE,GAAwF,gBAAzF,CAAN;AAEA,aAAO,IAAP;AACD;;AAED,WAAO,KAAP;AACD,GAVD;AAWD,CA1Cc,C","sourcesContent":["import _ from 'lodash';\nimport iterateJsdoc from '../iterateJsdoc';\n\n// eslint-disable-next-line complexity\nexport default iterateJsdoc(({\n report,\n utils\n}) => {\n const functionParameterNames = utils.getFunctionParameterNames();\n const jsdocParameterNames = utils.getJsdocParameterNames();\n\n // inheritdoc implies that all documentation is inherited; see http://usejsdoc.org/tags-inheritdoc.html\n if (utils.hasTag('inheritdoc')) {\n return;\n }\n\n // When settings.jsdoc.allowOverrideWithoutParam is true, override implies that all documentation is inherited.\n // See https://github.com/gajus/eslint-plugin-jsdoc/issues/73\n if ((utils.hasTag('override') || utils.classHasTag('override')) && utils.isOverrideAllowedWithoutParam()) {\n return;\n }\n\n // When settings.jsdoc.allowImplementsWithoutParam is true, implements implies that all documentation is inherited.\n // See https://github.com/gajus/eslint-plugin-jsdoc/issues/100\n if ((utils.hasTag('implements') || utils.classHasTag('implements')) && utils.isImplementsAllowedWithoutParam()) {\n return;\n }\n\n // When settings.jsdoc.allowAugmentsExtendsWithoutParam is true, augments or extends implies that all documentation is inherited.\n // See https://github.com/gajus/eslint-plugin-jsdoc/issues/100\n if ((utils.hasTag('augments') || utils.hasTag('extends') ||\n utils.classHasTag('augments') || utils.classHasTag('extends')) && utils.isAugmentsExtendsAllowedWithoutParam()) {\n return;\n }\n\n _.some(functionParameterNames, (functionParameterName, index) => {\n const jsdocParameterName = jsdocParameterNames[index];\n\n if (!jsdocParameterName) {\n report('Missing JSDoc @' + utils.getPreferredTagName('param') + ' \"' + functionParameterName + '\" declaration.');\n\n return true;\n }\n\n return false;\n });\n});\n"],"file":"requireParam.js"}