projecte_ionic/node_modules/eslint-plugin-jsdoc/dist/rules/requireJsdoc.js.map
2022-02-09 18:30:03 +01:00

1 line
19 KiB
Plaintext
Executable file

{"version":3,"sources":["../../src/rules/requireJsdoc.js"],"names":["OPTIONS_SCHEMA","additionalProperties","properties","checkConstructors","default","type","checkGetters","checkSetters","contexts","items","anyOf","context","inlineCommentBlock","enableFixer","exemptEmptyConstructors","exemptEmptyFunctions","publicOnly","oneOf","ancestorsOnly","cjs","esm","window","require","ArrowFunctionExpression","ClassDeclaration","ClassExpression","FunctionDeclaration","FunctionExpression","MethodDefinition","getOption","baseObject","option","key","_","has","options","getOptions","baseObj","Object","keys","forEach","prop","opt","create","sourceCode","getSourceCode","settings","requireOption","checkJsDoc","node","isFunctionContext","jsDocNode","jsdocUtils","exemptSpeciaMethods","tags","isConstructor","functionParameterNames","getFunctionParameterNames","length","hasReturnValue","fix","fixer","lines","minLines","maxLines","baseNode","decorator","tokenBefore","getTokenBefore","includeComments","indent","getIndent","text","getText","loc","start","column","find","ctxt","insertion","repeat","slice","insertTextBefore","report","end","messageId","Boolean","initModuleExports","initWindow","exported","exportParser","isExported","hasOption","some","getContextObject","enforcedContexts","includes","parent","value","meta","docs","category","description","recommended","url","fixable","messages","missingJsDoc","schema"],"mappings":";;;;;;;AAAA;;AACA;;AAGA;;AACA;;AAGA;;;;AAEA,MAAMA,cAAc,GAAG;AACrBC,EAAAA,oBAAoB,EAAE,KADD;AAErBC,EAAAA,UAAU,EAAE;AACVC,IAAAA,iBAAiB,EAAE;AACjBC,MAAAA,OAAO,EAAE,IADQ;AAEjBC,MAAAA,IAAI,EAAE;AAFW,KADT;AAKVC,IAAAA,YAAY,EAAE;AACZF,MAAAA,OAAO,EAAE,IADG;AAEZC,MAAAA,IAAI,EAAE;AAFM,KALJ;AASVE,IAAAA,YAAY,EAAE;AACZH,MAAAA,OAAO,EAAE,IADG;AAEZC,MAAAA,IAAI,EAAE;AAFM,KATJ;AAaVG,IAAAA,QAAQ,EAAE;AACRC,MAAAA,KAAK,EAAE;AACLC,QAAAA,KAAK,EAAE,CACL;AACEL,UAAAA,IAAI,EAAE;AADR,SADK,EAIL;AACEJ,UAAAA,oBAAoB,EAAE,KADxB;AAEEC,UAAAA,UAAU,EAAE;AACVS,YAAAA,OAAO,EAAE;AACPN,cAAAA,IAAI,EAAE;AADC,aADC;AAIVO,YAAAA,kBAAkB,EAAE;AAClBP,cAAAA,IAAI,EAAE;AADY;AAJV,WAFd;AAUEA,UAAAA,IAAI,EAAE;AAVR,SAJK;AADF,OADC;AAoBRA,MAAAA,IAAI,EAAE;AApBE,KAbA;AAmCVQ,IAAAA,WAAW,EAAE;AACXT,MAAAA,OAAO,EAAE,IADE;AAEXC,MAAAA,IAAI,EAAE;AAFK,KAnCH;AAuCVS,IAAAA,uBAAuB,EAAE;AACvBV,MAAAA,OAAO,EAAE,KADc;AAEvBC,MAAAA,IAAI,EAAE;AAFiB,KAvCf;AA2CVU,IAAAA,oBAAoB,EAAE;AACpBX,MAAAA,OAAO,EAAE,KADW;AAEpBC,MAAAA,IAAI,EAAE;AAFc,KA3CZ;AA+CVW,IAAAA,UAAU,EAAE;AACVC,MAAAA,KAAK,EAAE,CACL;AACEb,QAAAA,OAAO,EAAE,KADX;AAEEC,QAAAA,IAAI,EAAE;AAFR,OADK,EAKL;AACEJ,QAAAA,oBAAoB,EAAE,KADxB;AAEEG,QAAAA,OAAO,EAAE,EAFX;AAGEF,QAAAA,UAAU,EAAE;AACVgB,UAAAA,aAAa,EAAE;AACbb,YAAAA,IAAI,EAAE;AADO,WADL;AAIVc,UAAAA,GAAG,EAAE;AACHd,YAAAA,IAAI,EAAE;AADH,WAJK;AAOVe,UAAAA,GAAG,EAAE;AACHf,YAAAA,IAAI,EAAE;AADH,WAPK;AAUVgB,UAAAA,MAAM,EAAE;AACNhB,YAAAA,IAAI,EAAE;AADA;AAVE,SAHd;AAiBEA,QAAAA,IAAI,EAAE;AAjBR,OALK;AADG,KA/CF;AA0EViB,IAAAA,OAAO,EAAE;AACPrB,MAAAA,oBAAoB,EAAE,KADf;AAEPG,MAAAA,OAAO,EAAE,EAFF;AAGPF,MAAAA,UAAU,EAAE;AACVqB,QAAAA,uBAAuB,EAAE;AACvBnB,UAAAA,OAAO,EAAE,KADc;AAEvBC,UAAAA,IAAI,EAAE;AAFiB,SADf;AAKVmB,QAAAA,gBAAgB,EAAE;AAChBpB,UAAAA,OAAO,EAAE,KADO;AAEhBC,UAAAA,IAAI,EAAE;AAFU,SALR;AASVoB,QAAAA,eAAe,EAAE;AACfrB,UAAAA,OAAO,EAAE,KADM;AAEfC,UAAAA,IAAI,EAAE;AAFS,SATP;AAaVqB,QAAAA,mBAAmB,EAAE;AACnBtB,UAAAA,OAAO,EAAE,IADU;AAEnBC,UAAAA,IAAI,EAAE;AAFa,SAbX;AAiBVsB,QAAAA,kBAAkB,EAAE;AAClBvB,UAAAA,OAAO,EAAE,KADS;AAElBC,UAAAA,IAAI,EAAE;AAFY,SAjBV;AAqBVuB,QAAAA,gBAAgB,EAAE;AAChBxB,UAAAA,OAAO,EAAE,KADO;AAEhBC,UAAAA,IAAI,EAAE;AAFU;AArBR,OAHL;AA6BPA,MAAAA,IAAI,EAAE;AA7BC;AA1EC,GAFS;AA4GrBA,EAAAA,IAAI,EAAE;AA5Ge,CAAvB;;AA+GA,MAAMwB,SAAS,GAAG,CAAClB,OAAD,EAAUmB,UAAV,EAAsBC,MAAtB,EAA8BC,GAA9B,KAAsC;AACtD,MAAI,CAACC,gBAAEC,GAAF,CAAMvB,OAAN,EAAgB,cAAaoB,MAAO,KAAIC,GAAI,GAA5C,CAAL,EAAsD;AACpD,WAAOF,UAAU,CAAC5B,UAAX,CAAsB8B,GAAtB,EAA2B5B,OAAlC;AACD;;AAED,SAAOO,OAAO,CAACwB,OAAR,CAAgB,CAAhB,EAAmBJ,MAAnB,EAA2BC,GAA3B,CAAP;AACD,CAND;;AAQA,MAAMI,UAAU,GAAIzB,OAAD,IAAa;AAC9B,QAAM;AACJK,IAAAA,UADI;AAEJR,IAAAA,QAAQ,GAAG,EAFP;AAGJM,IAAAA,uBAAuB,GAAG,IAHtB;AAIJC,IAAAA,oBAAoB,GAAG,KAJnB;AAKJF,IAAAA,WAAW,GAAG;AALV,MAMFF,OAAO,CAACwB,OAAR,CAAgB,CAAhB,KAAsB,EAN1B;AAQA,SAAO;AACL3B,IAAAA,QADK;AAELK,IAAAA,WAFK;AAGLC,IAAAA,uBAHK;AAILC,IAAAA,oBAJK;AAKLC,IAAAA,UAAU,EAAE,CAAEqB,OAAD,IAAa;AACxB,UAAI,CAACrB,UAAL,EAAiB;AACf,eAAO,KAAP;AACD;;AAED,YAAMd,UAAU,GAAG,EAAnB;AACAoC,MAAAA,MAAM,CAACC,IAAP,CAAYF,OAAO,CAACnC,UAApB,EAAgCsC,OAAhC,CAAyCC,IAAD,IAAU;AAChD,cAAMC,GAAG,GAAGb,SAAS,CAAClB,OAAD,EAAU0B,OAAV,EAAmB,YAAnB,EAAiCI,IAAjC,CAArB;AACAvC,QAAAA,UAAU,CAACuC,IAAD,CAAV,GAAmBC,GAAnB;AACD,OAHD;AAKA,aAAOxC,UAAP;AACD,KAZW,EAYTF,cAAc,CAACE,UAAf,CAA0Bc,UAA1B,CAAqCC,KAArC,CAA2C,CAA3C,CAZS,CALP;AAkBLK,IAAAA,OAAO,EAAE,CAAEe,OAAD,IAAa;AACrB,YAAMnC,UAAU,GAAG,EAAnB;AACAoC,MAAAA,MAAM,CAACC,IAAP,CAAYF,OAAO,CAACnC,UAApB,EAAgCsC,OAAhC,CAAyCC,IAAD,IAAU;AAChD,cAAMC,GAAG,GAAGb,SAAS,CAAClB,OAAD,EAAU0B,OAAV,EAAmB,SAAnB,EAA8BI,IAA9B,CAArB;AACAvC,QAAAA,UAAU,CAACuC,IAAD,CAAV,GAAmBC,GAAnB;AACD,OAHD;AAKA,aAAOxC,UAAP;AACD,KARQ,EAQNF,cAAc,CAACE,UAAf,CAA0BoB,OARpB;AAlBJ,GAAP;AA4BD,CArCD;;eAuCe;AACbqB,EAAAA,MAAM,CAAEhC,OAAF,EAAW;AACf,UAAMiC,UAAU,GAAGjC,OAAO,CAACkC,aAAR,EAAnB;AACA,UAAMC,QAAQ,GAAG,+BAAYnC,OAAZ,CAAjB;;AACA,QAAI,CAACmC,QAAL,EAAe;AACb,aAAO,EAAP;AACD;;AAED,UAAM;AACJxB,MAAAA,OAAO,EAAEyB,aADL;AAEJvC,MAAAA,QAFI;AAGJQ,MAAAA,UAHI;AAGQD,MAAAA,oBAHR;AAG8BD,MAAAA,uBAH9B;AAGuDD,MAAAA;AAHvD,QAIFuB,UAAU,CAACzB,OAAD,CAJd;;AAMA,UAAMqC,UAAU,GAAG,CAACC,IAAD,EAAOC,iBAAP,KAA6B;AAC9C,YAAMC,SAAS,GAAG,sCAAgBP,UAAhB,EAA4BK,IAA5B,EAAkCH,QAAlC,CAAlB;;AAEA,UAAIK,SAAJ,EAAe;AACb;AACD,OAL6C,CAO9C;;;AACA,UAAIC,oBAAWC,mBAAX,CACF;AAACC,QAAAA,IAAI,EAAE;AAAP,OADE,EACUL,IADV,EACgBtC,OADhB,EACyB,CAACX,cAAD,CADzB,CAAJ,EAEG;AACD;AACD;;AAED,WACE;AACAe,MAAAA,oBAAoB,IAAImC,iBAAxB,IAEA;AACApC,MAAAA,uBAAuB,IAAIsC,oBAAWG,aAAX,CAAyBN,IAAzB,CAL7B,EAME;AACA,cAAMO,sBAAsB,GAAGJ,oBAAWK,yBAAX,CAAqCR,IAArC,CAA/B;;AACA,YAAI,CAACO,sBAAsB,CAACE,MAAxB,IAAkC,CAACN,oBAAWO,cAAX,CAA0BV,IAA1B,EAAgCtC,OAAhC,CAAvC,EAAiF;AAC/E;AACD;AACF;;AAED,YAAMiD,GAAG,GAAIC,KAAD,IAAW;AACrB;AACA,cAAMC,KAAK,GAAGhB,QAAQ,CAACiB,QAAT,KAAsB,CAAtB,IAA2BjB,QAAQ,CAACkB,QAAT,IAAqB,CAAhD,GAAoD,CAApD,GAAwDlB,QAAQ,CAACiB,QAA/E;AACA,YAAIE,QAAQ,GAAG,wCAAkBhB,IAAlB,EAAwBL,UAAxB,CAAf;AAEA,YAAIsB,SAAJ;;AACA,WAAG;AACD,gBAAMC,WAAW,GAAGvB,UAAU,CAACwB,cAAX,CAA0BH,QAA1B,EAAoC;AAACI,YAAAA,eAAe,EAAE;AAAlB,WAApC,CAApB;AACAH,UAAAA,SAAS,GAAG,mCAAaC,WAAb,EAA0BvB,UAA1B,CAAZ;;AACA,cAAIsB,SAAJ,EAAe;AACbD,YAAAA,QAAQ,GAAGC,SAAX;AACD;AACF,SAND,QAMSA,SANT;;AAQA,cAAMI,MAAM,GAAGlB,oBAAWmB,SAAX,CAAqB;AAClCC,UAAAA,IAAI,EAAE5B,UAAU,CAAC6B,OAAX,CACJR,QADI,EAEJA,QAAQ,CAACS,GAAT,CAAaC,KAAb,CAAmBC,MAFf;AAD4B,SAArB,CAAf;;AAMA,cAAM;AAAChE,UAAAA;AAAD,YAAuBJ,QAAQ,CAACqE,IAAT,CAAc,CAAC;AAAClE,UAAAA,OAAO,EAAEmE;AAAV,SAAD,KAAqB;AAC9D,iBAAOA,IAAI,KAAK7B,IAAI,CAAC5C,IAArB;AACD,SAF4B,KAEvB,EAFN;AAGA,cAAM0E,SAAS,GAAG,CAACnE,kBAAkB,GACnC,MADmC,GAElC,QAAO0D,MAAO,MAAKA,MAAO,EAFX,IAGb,KAAI,KAAKU,MAAL,CAAYlB,KAAZ,CAAmB,GAAEQ,MAAM,CAACW,KAAP,CAAa,CAAb,EAAgB,CAAC,CAAjB,CAAoB,EAHlD;AAKA,eAAOpB,KAAK,CAACqB,gBAAN,CAAuBjB,QAAvB,EAAiCc,SAAjC,CAAP;AACD,OA7BD;;AA+BA,YAAMI,MAAM,GAAG,MAAM;AACnB,cAAMT,GAAG,GAAG;AACVU,UAAAA,GAAG,EAAEnC,IAAI,CAACyB,GAAL,CAASC,KAAT,GAAiB,CADZ;AAEVA,UAAAA,KAAK,EAAE1B,IAAI,CAACyB,GAAL,CAASC;AAFN,SAAZ;AAIAhE,QAAAA,OAAO,CAACwE,MAAR,CAAe;AACbvB,UAAAA,GAAG,EAAE/C,WAAW,GAAG+C,GAAH,GAAS,IADZ;AAEbc,UAAAA,GAFa;AAGbW,UAAAA,SAAS,EAAE,cAHE;AAIbpC,UAAAA;AAJa,SAAf;AAMD,OAXD;;AAaA,UAAIjC,UAAJ,EAAgB;AAAA;;AACd,cAAM0B,GAAG,GAAG;AACVxB,UAAAA,aAAa,EAAEoE,OAAO,0BAACtE,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEE,aAAb,yEAA8B,KAA9B,CADZ;AAEVE,UAAAA,GAAG,EAAEkE,OAAO,oBAACtE,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEI,GAAb,6DAAoB,IAApB,CAFF;AAGVmE,UAAAA,iBAAiB,EAAED,OAAO,oBAACtE,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEG,GAAb,6DAAoB,IAApB,CAHhB;AAIVqE,UAAAA,UAAU,EAAEF,OAAO,uBAACtE,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEK,MAAb,mEAAuB,KAAvB;AAJT,SAAZ;;AAMA,cAAMoE,QAAQ,GAAGC,sBAAaC,UAAb,CAAwB1C,IAAxB,EAA8BL,UAA9B,EAA0CF,GAA1C,CAAjB;;AAEA,YAAI+C,QAAJ,EAAc;AACZN,UAAAA,MAAM;AACP;AACF,OAZD,MAYO;AACLA,QAAAA,MAAM;AACP;AACF,KAtFD;;AAwFA,UAAMS,SAAS,GAAInD,IAAD,IAAU;AAC1B,aAAOM,aAAa,CAACN,IAAD,CAAb,IAAuBjC,QAAQ,CAACqF,IAAT,CAAef,IAAD,IAAU;AACpD,eAAO,OAAOA,IAAP,KAAgB,QAAhB,GAA2BA,IAAI,CAACnE,OAAL,KAAiB8B,IAA5C,GAAmDqC,IAAI,KAAKrC,IAAnE;AACD,OAF6B,CAA9B;AAGD,KAJD;;AAMA,WAAO,EACL,GAAGW,oBAAW0C,gBAAX,CAA4B1C,oBAAW2C,gBAAX,CAA4BpF,OAA5B,EAAqC,EAArC,CAA5B,EAAsEqC,UAAtE,CADE;;AAELzB,MAAAA,uBAAuB,CAAE0B,IAAF,EAAQ;AAC7B,YAAI,CAAC2C,SAAS,CAAC,yBAAD,CAAd,EAA2C;AACzC;AACD;;AAED,YACE,CAAC,oBAAD,EAAuB,sBAAvB,EAA+C,0BAA/C,EAA2EI,QAA3E,CAAoF/C,IAAI,CAACgD,MAAL,CAAY5F,IAAhG,KACA,CAAC,UAAD,EAAa,gBAAb,EAA+B,eAA/B,EAAgD2F,QAAhD,CAAyD/C,IAAI,CAACgD,MAAL,CAAY5F,IAArE,KAA8E4C,IAAI,KAAKA,IAAI,CAACgD,MAAL,CAAYC,KAFrG,EAGE;AACAlD,UAAAA,UAAU,CAACC,IAAD,EAAO,IAAP,CAAV;AACD;AACF,OAbI;;AAeLzB,MAAAA,gBAAgB,CAAEyB,IAAF,EAAQ;AACtB,YAAI,CAAC2C,SAAS,CAAC,kBAAD,CAAd,EAAoC;AAClC;AACD;;AAED5C,QAAAA,UAAU,CAACC,IAAD,CAAV;AACD,OArBI;;AAuBLxB,MAAAA,eAAe,CAAEwB,IAAF,EAAQ;AACrB,YAAI,CAAC2C,SAAS,CAAC,iBAAD,CAAd,EAAmC;AACjC;AACD;;AAED5C,QAAAA,UAAU,CAACC,IAAD,CAAV;AACD,OA7BI;;AA+BLvB,MAAAA,mBAAmB,CAAEuB,IAAF,EAAQ;AACzB,YAAI,CAAC2C,SAAS,CAAC,qBAAD,CAAd,EAAuC;AACrC;AACD;;AAED5C,QAAAA,UAAU,CAACC,IAAD,EAAO,IAAP,CAAV;AACD,OArCI;;AAuCLtB,MAAAA,kBAAkB,CAAEsB,IAAF,EAAQ;AACxB,YAAI2C,SAAS,CAAC,kBAAD,CAAT,IAAiC3C,IAAI,CAACgD,MAAL,CAAY5F,IAAZ,KAAqB,kBAA1D,EAA8E;AAC5E2C,UAAAA,UAAU,CAACC,IAAD,EAAO,IAAP,CAAV;AAEA;AACD;;AAED,YAAI,CAAC2C,SAAS,CAAC,oBAAD,CAAd,EAAsC;AACpC;AACD;;AAED,YACE,CAAC,oBAAD,EAAuB,sBAAvB,EAA+C,0BAA/C,EAA2EI,QAA3E,CAAoF/C,IAAI,CAACgD,MAAL,CAAY5F,IAAhG,KACA,CAAC,UAAD,EAAa,gBAAb,EAA+B,eAA/B,EAAgD2F,QAAhD,CAAyD/C,IAAI,CAACgD,MAAL,CAAY5F,IAArE,KAA8E4C,IAAI,KAAKA,IAAI,CAACgD,MAAL,CAAYC,KAFrG,EAGE;AACAlD,UAAAA,UAAU,CAACC,IAAD,EAAO,IAAP,CAAV;AACD;AACF;;AAxDI,KAAP;AA0DD,GAtKY;;AAuKbkD,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAE,kBADN;AAEJC,MAAAA,WAAW,EAAE,wBAFT;AAGJC,MAAAA,WAAW,EAAE,MAHT;AAIJC,MAAAA,GAAG,EAAE;AAJD,KADF;AAQJC,IAAAA,OAAO,EAAE,MARL;AAUJC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,YAAY,EAAE;AADN,KAVN;AAcJC,IAAAA,MAAM,EAAE,CACN5G,cADM,CAdJ;AAkBJK,IAAAA,IAAI,EAAE;AAlBF;AAvKO,C","sourcesContent":["import _ from 'lodash';\nimport {\n getJSDocComment, getReducedASTNode, getDecorator,\n} from '../eslint/getJSDocComment';\nimport exportParser from '../exportParser';\nimport {\n getSettings,\n} from '../iterateJsdoc';\nimport jsdocUtils from '../jsdocUtils';\n\nconst OPTIONS_SCHEMA = {\n additionalProperties: false,\n properties: {\n checkConstructors: {\n default: true,\n type: 'boolean',\n },\n checkGetters: {\n default: true,\n type: 'boolean',\n },\n checkSetters: {\n default: true,\n type: 'boolean',\n },\n contexts: {\n items: {\n anyOf: [\n {\n type: 'string',\n },\n {\n additionalProperties: false,\n properties: {\n context: {\n type: 'string',\n },\n inlineCommentBlock: {\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n },\n type: 'array',\n },\n enableFixer: {\n default: true,\n type: 'boolean',\n },\n exemptEmptyConstructors: {\n default: false,\n type: 'boolean',\n },\n exemptEmptyFunctions: {\n default: false,\n type: 'boolean',\n },\n publicOnly: {\n oneOf: [\n {\n default: false,\n type: 'boolean',\n },\n {\n additionalProperties: false,\n default: {},\n properties: {\n ancestorsOnly: {\n type: 'boolean',\n },\n cjs: {\n type: 'boolean',\n },\n esm: {\n type: 'boolean',\n },\n window: {\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n },\n require: {\n additionalProperties: false,\n default: {},\n properties: {\n ArrowFunctionExpression: {\n default: false,\n type: 'boolean',\n },\n ClassDeclaration: {\n default: false,\n type: 'boolean',\n },\n ClassExpression: {\n default: false,\n type: 'boolean',\n },\n FunctionDeclaration: {\n default: true,\n type: 'boolean',\n },\n FunctionExpression: {\n default: false,\n type: 'boolean',\n },\n MethodDefinition: {\n default: false,\n type: 'boolean',\n },\n },\n type: 'object',\n },\n },\n type: 'object',\n};\n\nconst getOption = (context, baseObject, option, key) => {\n if (!_.has(context, `options[0][${option}][${key}]`)) {\n return baseObject.properties[key].default;\n }\n\n return context.options[0][option][key];\n};\n\nconst getOptions = (context) => {\n const {\n publicOnly,\n contexts = [],\n exemptEmptyConstructors = true,\n exemptEmptyFunctions = false,\n enableFixer = true,\n } = context.options[0] || {};\n\n return {\n contexts,\n enableFixer,\n exemptEmptyConstructors,\n exemptEmptyFunctions,\n publicOnly: ((baseObj) => {\n if (!publicOnly) {\n return false;\n }\n\n const properties = {};\n Object.keys(baseObj.properties).forEach((prop) => {\n const opt = getOption(context, baseObj, 'publicOnly', prop);\n properties[prop] = opt;\n });\n\n return properties;\n })(OPTIONS_SCHEMA.properties.publicOnly.oneOf[1]),\n require: ((baseObj) => {\n const properties = {};\n Object.keys(baseObj.properties).forEach((prop) => {\n const opt = getOption(context, baseObj, 'require', prop);\n properties[prop] = opt;\n });\n\n return properties;\n })(OPTIONS_SCHEMA.properties.require),\n };\n};\n\nexport default {\n create (context) {\n const sourceCode = context.getSourceCode();\n const settings = getSettings(context);\n if (!settings) {\n return {};\n }\n\n const {\n require: requireOption,\n contexts,\n publicOnly, exemptEmptyFunctions, exemptEmptyConstructors, enableFixer,\n } = getOptions(context);\n\n const checkJsDoc = (node, isFunctionContext) => {\n const jsDocNode = getJSDocComment(sourceCode, node, settings);\n\n if (jsDocNode) {\n return;\n }\n\n // For those who have options configured against ANY constructors (or setters or getters) being reported\n if (jsdocUtils.exemptSpeciaMethods(\n {tags: []}, node, context, [OPTIONS_SCHEMA],\n )) {\n return;\n }\n\n if (\n // Avoid reporting param-less, return-less functions (when `exemptEmptyFunctions` option is set)\n exemptEmptyFunctions && isFunctionContext ||\n\n // Avoid reporting param-less, return-less constructor methods (when `exemptEmptyConstructors` option is set)\n exemptEmptyConstructors && jsdocUtils.isConstructor(node)\n ) {\n const functionParameterNames = jsdocUtils.getFunctionParameterNames(node);\n if (!functionParameterNames.length && !jsdocUtils.hasReturnValue(node, context)) {\n return;\n }\n }\n\n const fix = (fixer) => {\n // Default to one line break if the `minLines`/`maxLines` settings allow\n const lines = settings.minLines === 0 && settings.maxLines >= 1 ? 1 : settings.minLines;\n let baseNode = getReducedASTNode(node, sourceCode);\n\n let decorator;\n do {\n const tokenBefore = sourceCode.getTokenBefore(baseNode, {includeComments: true});\n decorator = getDecorator(tokenBefore, sourceCode);\n if (decorator) {\n baseNode = decorator;\n }\n } while (decorator);\n\n const indent = jsdocUtils.getIndent({\n text: sourceCode.getText(\n baseNode,\n baseNode.loc.start.column,\n ),\n });\n const {inlineCommentBlock} = contexts.find(({context: ctxt}) => {\n return ctxt === node.type;\n }) || {};\n const insertion = (inlineCommentBlock ?\n '/** ' :\n `/**\\n${indent}*\\n${indent}`) +\n `*/${'\\n'.repeat(lines)}${indent.slice(0, -1)}`;\n\n return fixer.insertTextBefore(baseNode, insertion);\n };\n\n const report = () => {\n const loc = {\n end: node.loc.start + 1,\n start: node.loc.start,\n };\n context.report({\n fix: enableFixer ? fix : null,\n loc,\n messageId: 'missingJsDoc',\n node,\n });\n };\n\n if (publicOnly) {\n const opt = {\n ancestorsOnly: Boolean(publicOnly?.ancestorsOnly ?? false),\n esm: Boolean(publicOnly?.esm ?? true),\n initModuleExports: Boolean(publicOnly?.cjs ?? true),\n initWindow: Boolean(publicOnly?.window ?? false),\n };\n const exported = exportParser.isExported(node, sourceCode, opt);\n\n if (exported) {\n report();\n }\n } else {\n report();\n }\n };\n\n const hasOption = (prop) => {\n return requireOption[prop] || contexts.some((ctxt) => {\n return typeof ctxt === 'object' ? ctxt.context === prop : ctxt === prop;\n });\n };\n\n return {\n ...jsdocUtils.getContextObject(jsdocUtils.enforcedContexts(context, []), checkJsDoc),\n ArrowFunctionExpression (node) {\n if (!hasOption('ArrowFunctionExpression')) {\n return;\n }\n\n if (\n ['VariableDeclarator', 'AssignmentExpression', 'ExportDefaultDeclaration'].includes(node.parent.type) ||\n ['Property', 'ObjectProperty', 'ClassProperty'].includes(node.parent.type) && node === node.parent.value\n ) {\n checkJsDoc(node, true);\n }\n },\n\n ClassDeclaration (node) {\n if (!hasOption('ClassDeclaration')) {\n return;\n }\n\n checkJsDoc(node);\n },\n\n ClassExpression (node) {\n if (!hasOption('ClassExpression')) {\n return;\n }\n\n checkJsDoc(node);\n },\n\n FunctionDeclaration (node) {\n if (!hasOption('FunctionDeclaration')) {\n return;\n }\n\n checkJsDoc(node, true);\n },\n\n FunctionExpression (node) {\n if (hasOption('MethodDefinition') && node.parent.type === 'MethodDefinition') {\n checkJsDoc(node, true);\n\n return;\n }\n\n if (!hasOption('FunctionExpression')) {\n return;\n }\n\n if (\n ['VariableDeclarator', 'AssignmentExpression', 'ExportDefaultDeclaration'].includes(node.parent.type) ||\n ['Property', 'ObjectProperty', 'ClassProperty'].includes(node.parent.type) && node === node.parent.value\n ) {\n checkJsDoc(node, true);\n }\n },\n };\n },\n meta: {\n docs: {\n category: 'Stylistic Issues',\n description: 'Require JSDoc comments',\n recommended: 'true',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-jsdoc',\n },\n\n fixable: 'code',\n\n messages: {\n missingJsDoc: 'Missing JSDoc comment.',\n },\n\n schema: [\n OPTIONS_SCHEMA,\n ],\n\n type: 'suggestion',\n },\n};\n"],"file":"requireJsdoc.js"}