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

1 line
26 KiB
Plaintext
Executable file

{"version":3,"sources":["../../src/rules/checkExamples.js"],"names":["zeroBasedLineIndexAdjust","likelyNestedJSDocIndentSpace","preTagSpaceLength","firstLinePrefixLength","hasCaptionRegex","escapeStringRegexp","str","replace","countChars","ch","match","RegExp","length","getRegexFromString","regexString","flags","regex","uniqueFlags","Set","join","defaultMdRules","defaultExpressionRules","quotes","semi","strict","report","utils","context","globalState","has","set","Map","matchingFileNameMap","get","options","exampleCodeRegex","rejectExampleCodeRegex","checkDefaults","checkParams","checkProperties","noDefaultExampleRules","checkEslintrc","matchingFileName","matchingFileNameDefaults","matchingFileNameParams","matchingFileNameProperties","paddedIndent","baseConfig","configFile","allowInlineConfig","reportUnusedDisableDirectives","captionRequired","rulePaths","mdRules","undefined","expressionRules","checkSource","filename","defaultFileName","rules","skipInit","source","targetTagName","sources","tag","line","push","nonJSPrefacingCols","nonJSPrefacingLines","string","checkRules","cliConfig","useEslintrc","cliConfigStr","JSON","stringify","src","fileNameMapKey","file","cliFile","cli","CLIEngine","config","getConfigForFile","results","messages","executeOnText","codeStartLine","codeStartCol","forEach","message","column","severity","ruleId","startLine","startCol","getFilenameInfo","ext","jsFileName","getFilename","includes","filenameInfo","forEachPreferredTag","description","trim","default","tagName","getPreferredTagName","hasTag","matchingFilenameInfo","test","startingIndex","lastStringCount","exampleCode","lastIndex","exec","index","n0","n1","preMatch","slice","preMatchLines","colDelta","lastIndexOf","nonJSPreface","nonJSPrefaceLineCount","idx","indexOf","charsInLastLine","global","iterateAllJsdocs","meta","docs","url","schema","additionalProperties","properties","type","noTrim"],"mappings":";;;;;;;AAGA;;AAGA;;;;AANA;AACA;AACA;AAMA,MAAMA,wBAAwB,GAAG,CAAC,CAAlC;AACA,MAAMC,4BAA4B,GAAG,CAArC;AACA,MAAMC,iBAAiB,GAAG,CAA1B,C,CAEA;;AACA,MAAMC,qBAAqB,GAAGD,iBAA9B;AAEA,MAAME,eAAe,GAAG,gCAAxB;;AAEA,MAAMC,kBAAkB,GAAIC,GAAD,IAAS;AAClC,SAAOA,GAAG,CAACC,OAAJ,CAAY,sBAAZ,EAAoC,MAApC,CAAP;AACD,CAFD;;AAGA,MAAMC,UAAU,GAAG,CAACF,GAAD,EAAMG,EAAN,KAAa;AAC9B,SAAO,CAACH,GAAG,CAACI,KAAJ,CAAU,IAAIC,MAAJ,CAAWN,kBAAkB,CAACI,EAAD,CAA7B,EAAmC,IAAnC,CAAV,KAAuD,EAAxD,EAA4DG,MAAnE;AACD,CAFD;;AAIA,MAAMC,kBAAkB,GAAIC,WAAD,IAAiB;AAC1C,QAAMJ,KAAK,GAAGI,WAAW,CAACJ,KAAZ,CAAkB,wBAAlB,CAAd;AACA,MAAIK,KAAK,GAAG,GAAZ;AACA,MAAIC,KAAK,GAAGF,WAAZ;;AACA,MAAIJ,KAAJ,EAAW;AACT,OAAGM,KAAH,EAAUD,KAAV,IAAmBL,KAAnB;;AACA,QAAI,CAACK,KAAL,EAAY;AACVA,MAAAA,KAAK,GAAG,GAAR;AACD;;AACD,UAAME,WAAW,GAAG,CAAC,GAAG,IAAIC,GAAJ,CAAQH,KAAR,CAAJ,CAApB;AACAA,IAAAA,KAAK,GAAGE,WAAW,CAACE,IAAZ,CAAiB,EAAjB,CAAR;AACD;;AAED,SAAO,IAAIR,MAAJ,CAAWK,KAAX,EAAkBD,KAAlB,CAAP;AACD,CAdD;;AAgBA,MAAMK,cAAc,GAAG;AACrB;AACA,cAAY,CAFS;AAIrB;AACA,0BAAwB,CALH;AAOrB;AACA,wBAAsB,CARD;AAUrB,iCAA+B,CAVV;AAYrB;AACA,yBAAuB,CAbF;AAerB;AACA,gBAAc,CAhBO;AAkBrB;AACA;AACA,6BAA2B,CApBN;AAsBrB;AACA,cAAY,CAvBS;AAyBrB;AACA,oBAAkB,CA1BG;AA4BrB;AACA,4BAA0B,CA7BL;AA8BrB,6BAA2B,CA9BN;AAgCrB;AACA,mBAAiB;AAjCI,CAAvB;AAoCA,MAAMC,sBAAsB,GAAG,EAC7B,GAAGD,cAD0B;AAE7B,2BAAyB,KAFI;AAG7BE,EAAAA,MAAM,EAAE,CAAC,OAAD,EAAU,QAAV,CAHqB;AAI7BC,EAAAA,IAAI,EAAE,CAAC,OAAD,EAAU,OAAV,CAJuB;AAK7BC,EAAAA,MAAM,EAAE;AALqB,CAA/B;;eAQe,2BAAa,CAAC;AAC3BC,EAAAA,MAD2B;AAE3BC,EAAAA,KAF2B;AAG3BC,EAAAA,OAH2B;AAI3BC,EAAAA;AAJ2B,CAAD,KAKtB;AACJ,MAAI,CAACA,WAAW,CAACC,GAAZ,CAAgB,gCAAhB,CAAL,EAAwD;AACtDD,IAAAA,WAAW,CAACE,GAAZ,CAAgB,gCAAhB,EAAkD,IAAIC,GAAJ,EAAlD;AACD;;AACD,QAAMC,mBAAmB,GAAGJ,WAAW,CAACK,GAAZ,CAAgB,gCAAhB,CAA5B;AAEA,QAAMC,OAAO,GAAGP,OAAO,CAACO,OAAR,CAAgB,CAAhB,KAAsB,EAAtC;AACA,MAAI;AACFC,IAAAA,gBAAgB,GAAG,IADjB;AAEFC,IAAAA,sBAAsB,GAAG;AAFvB,MAGAF,OAHJ;AAIA,QAAM;AACJG,IAAAA,aAAa,GAAG,KADZ;AAEJC,IAAAA,WAAW,GAAG,KAFV;AAGJC,IAAAA,eAAe,GAAG,KAHd;AAIJC,IAAAA,qBAAqB,GAAG,KAJpB;AAKJC,IAAAA,aAAa,GAAG,IALZ;AAMJC,IAAAA,gBAAgB,GAAG,IANf;AAOJC,IAAAA,wBAAwB,GAAG,IAPvB;AAQJC,IAAAA,sBAAsB,GAAG,IARrB;AASJC,IAAAA,0BAA0B,GAAG,IATzB;AAUJC,IAAAA,YAAY,GAAG,CAVX;AAWJC,IAAAA,UAAU,GAAG,EAXT;AAYJC,IAAAA,UAZI;AAaJC,IAAAA,iBAAiB,GAAG,IAbhB;AAcJC,IAAAA,6BAA6B,GAAG,IAd5B;AAeJC,IAAAA,eAAe,GAAG;AAfd,MAgBFjB,OAhBJ,CAXI,CA6BJ;;AACA,QAAMkB,SAAS,GAAG,EAAlB;AAEA,QAAMC,OAAO,GAAGb,qBAAqB,GAAGc,SAAH,GAAelC,cAApD;AAEA,QAAMmC,eAAe,GAAGf,qBAAqB,GAAGc,SAAH,GAAejC,sBAA5D;;AAEA,MAAIc,gBAAJ,EAAsB;AACpBA,IAAAA,gBAAgB,GAAGtB,kBAAkB,CAACsB,gBAAD,CAArC;AACD;;AACD,MAAIC,sBAAJ,EAA4B;AAC1BA,IAAAA,sBAAsB,GAAGvB,kBAAkB,CAACuB,sBAAD,CAA3C;AACD;;AAED,QAAMoB,WAAW,GAAG,CAAC;AACnBC,IAAAA,QADmB;AACTC,IAAAA,eADS;AAEnBC,IAAAA,KAAK,GAAGJ,eAFW;AAGnBK,IAAAA,QAHmB;AAGTC,IAAAA,MAHS;AAGDC,IAAAA,aAHC;AAGcC,IAAAA,OAAO,GAAG,EAHxB;AAG4BC,IAAAA,GAAG,GAAG;AAACC,MAAAA,IAAI,EAAE;AAAP;AAHlC,GAAD,KAId;AACJ,QAAI,CAACL,QAAL,EAAe;AACbG,MAAAA,OAAO,CAACG,IAAR,CAAa;AACXC,QAAAA,kBAAkB,EAAE,CADT;AAEXC,QAAAA,mBAAmB,EAAE,CAFV;AAGXC,QAAAA,MAAM,EAAER;AAHG,OAAb;AAKD,KAPG,CASJ;AACA;;;AACA,UAAMS,UAAU,GAAG,UAAU;AAC3BH,MAAAA,kBAD2B;AAE3BC,MAAAA,mBAF2B;AAG3BC,MAAAA;AAH2B,KAAV,EAIhB;AACD,YAAME,SAAS,GAAG;AAChBtB,QAAAA,iBADgB;AAEhBF,QAAAA,UAFgB;AAGhBC,QAAAA,UAHgB;AAIhBE,QAAAA,6BAJgB;AAKhBE,QAAAA,SALgB;AAMhBO,QAAAA,KANgB;AAOhBa,QAAAA,WAAW,EAAE/B;AAPG,OAAlB;AASA,YAAMgC,YAAY,GAAGC,IAAI,CAACC,SAAL,CAAeJ,SAAf,CAArB;AAEA,YAAMK,GAAG,GAAG9B,YAAY,GACtBuB,MAAM,CAAC9D,OAAP,CAAe,IAAII,MAAJ,CAAY,WAAUmC,YAAa,QAAnC,EAA4C,IAA5C,CAAf,EAAkE,IAAlE,CADsB,GAEtBuB,MAFF,CAZC,CAgBD;;AACA,YAAMQ,cAAc,GAAGpB,QAAQ,GAC7B,MAAMgB,YAAN,GAAqBhB,QADQ,GAE7B,MAAMgB,YAAN,GAAqBf,eAFvB;AAGA,YAAMoB,IAAI,GAAGrB,QAAQ,IAAIC,eAAzB;AACA,UAAIqB,OAAJ;;AACA,UAAI/C,mBAAmB,CAACH,GAApB,CAAwBgD,cAAxB,CAAJ,EAA6C;AAC3CE,QAAAA,OAAO,GAAG/C,mBAAmB,CAACC,GAApB,CAAwB4C,cAAxB,CAAV;AACD,OAFD,MAEO;AACL,cAAMG,GAAG,GAAG,IAAIC,iBAAJ,CAAcV,SAAd,CAAZ;AACA,YAAIW,MAAJ;;AACA,YAAIzB,QAAQ,IAAIhB,aAAhB,EAA+B;AAC7ByC,UAAAA,MAAM,GAAGF,GAAG,CAACG,gBAAJ,CAAqBL,IAArB,CAAT;AACD,SALI,CAOL;AACA;AACA;;;AACAC,QAAAA,OAAO,GAAG,IAAIE,iBAAJ,CAAc;AACtBhC,UAAAA,iBADsB;AAEtBF,UAAAA,UAAU,EAAE,EACV,GAAGA,UADO;AAEV,eAAGmC;AAFO,WAFU;AAMtBlC,UAAAA,UANsB;AAOtBE,UAAAA,6BAPsB;AAQtBE,UAAAA,SARsB;AAStBO,UAAAA,KATsB;AAUtBa,UAAAA,WAAW,EAAE;AAVS,SAAd,CAAV;AAYAxC,QAAAA,mBAAmB,CAACF,GAApB,CAAwB+C,cAAxB,EAAwCE,OAAxC;AACD;;AAED,YAAM;AAACK,QAAAA,OAAO,EAAE,CAAC;AAACC,UAAAA;AAAD,SAAD;AAAV,UACJN,OAAO,CAACO,aAAR,CAAsBV,GAAtB,CADF,CAjDC,CAoDD;;AACA,YAAMW,aAAa,GAAGvB,GAAG,CAACC,IAAJ,GAAWG,mBAAjC;AACA,YAAMoB,YAAY,GAAGvF,4BAArB;AAEAoF,MAAAA,QAAQ,CAACI,OAAT,CAAiB,CAAC;AAACC,QAAAA,OAAD;AAAUzB,QAAAA,IAAV;AAAgB0B,QAAAA,MAAhB;AAAwBC,QAAAA,QAAxB;AAAkCC,QAAAA;AAAlC,OAAD,KAA+C;AAC9D,cAAMC,SAAS,GAAGP,aAAa,GAAGtB,IAAhB,GAAuBjE,wBAAzC;AACA,cAAM+F,QAAQ,GAAGP,YAAY,KAE3B;AACAvB,QAAAA,IAAI,IAAI,CAAR,GAAYE,kBAAkB,GAAGhE,qBAAjC,GAAyDD,iBAH9B,CAAZ,GAIbyF,MAJJ;AAMAlE,QAAAA,MAAM,CACJ,MAAMqC,aAAN,GAAsB,GAAtB,IAA6B8B,QAAQ,KAAK,CAAb,GAAiB,OAAjB,GAA2B,SAAxD,KACGC,MAAM,GAAG,OAAOA,MAAP,GAAgB,GAAnB,GAAyB,EADlC,IACwC,IADxC,GAEEH,OAHE,EAIJ,IAJI,EAKJ;AACEC,UAAAA,MAAM,EAAEI,QADV;AAEE9B,UAAAA,IAAI,EAAE6B;AAFR,SALI,CAAN;AAUD,OAlBD;AAmBD,KA/ED;;AAiFA/B,IAAAA,OAAO,CAAC0B,OAAR,CAAgBnB,UAAhB;AACD,GAjGD;;AAmGA,QAAM0B,eAAe,GAAG,CAACvC,QAAD,EAAWwC,GAAG,GAAG,IAAjB,KAA0B;AAChD,QAAIvC,eAAJ;;AACA,QAAI,CAACD,QAAL,EAAe;AACb,YAAMyC,UAAU,GAAGvE,OAAO,CAACwE,WAAR,EAAnB;;AACA,UAAI,OAAOD,UAAP,KAAsB,QAAtB,IAAkCA,UAAU,CAACE,QAAX,CAAoB,GAApB,CAAtC,EAAgE;AAC9D1C,QAAAA,eAAe,GAAGwC,UAAU,CAAC3F,OAAX,CAAmB,QAAnB,EAA8B,IAAG0F,GAAI,EAArC,CAAlB;AACD,OAFD,MAEO;AACLvC,QAAAA,eAAe,GAAI,SAAQuC,GAAI,EAA/B;AACD;AACF;;AAED,WAAO;AACLvC,MAAAA,eADK;AAELD,MAAAA;AAFK,KAAP;AAID,GAfD;;AAiBA,MAAIpB,aAAJ,EAAmB;AACjB,UAAMgE,YAAY,GAAGL,eAAe,CAACrD,wBAAD,EAA2B,gBAA3B,CAApC;AACAjB,IAAAA,KAAK,CAAC4E,mBAAN,CAA0B,SAA1B,EAAqC,CAACtC,GAAD,EAAMF,aAAN,KAAwB;AAC3D,UAAI,CAACE,GAAG,CAACuC,WAAJ,CAAgBC,IAAhB,EAAL,EAA6B;AAC3B;AACD;;AACDhD,MAAAA,WAAW,CAAC;AACVK,QAAAA,MAAM,EAAG,IAAGG,GAAG,CAACuC,WAAY,GADlB;AAEVzC,QAAAA,aAFU;AAGV,WAAGuC;AAHO,OAAD,CAAX;AAKD,KATD;AAUD;;AACD,MAAI/D,WAAJ,EAAiB;AACf,UAAM+D,YAAY,GAAGL,eAAe,CAACpD,sBAAD,EAAyB,cAAzB,CAApC;AACAlB,IAAAA,KAAK,CAAC4E,mBAAN,CAA0B,OAA1B,EAAmC,CAACtC,GAAD,EAAMF,aAAN,KAAwB;AACzD,UAAI,CAACE,GAAG,CAACyC,OAAL,IAAgB,CAACzC,GAAG,CAACyC,OAAJ,CAAYD,IAAZ,EAArB,EAAyC;AACvC;AACD;;AACDhD,MAAAA,WAAW,CAAC;AACVK,QAAAA,MAAM,EAAG,IAAGG,GAAG,CAACyC,OAAQ,GADd;AAEV3C,QAAAA,aAFU;AAGV,WAAGuC;AAHO,OAAD,CAAX;AAKD,KATD;AAUD;;AACD,MAAI9D,eAAJ,EAAqB;AACnB,UAAM8D,YAAY,GAAGL,eAAe,CAACnD,0BAAD,EAA6B,kBAA7B,CAApC;AACAnB,IAAAA,KAAK,CAAC4E,mBAAN,CAA0B,UAA1B,EAAsC,CAACtC,GAAD,EAAMF,aAAN,KAAwB;AAC5D,UAAI,CAACE,GAAG,CAACyC,OAAL,IAAgB,CAACzC,GAAG,CAACyC,OAAJ,CAAYD,IAAZ,EAArB,EAAyC;AACvC;AACD;;AACDhD,MAAAA,WAAW,CAAC;AACVK,QAAAA,MAAM,EAAG,IAAGG,GAAG,CAACyC,OAAQ,GADd;AAEV3C,QAAAA,aAFU;AAGV,WAAGuC;AAHO,OAAD,CAAX;AAKD,KATD;AAUD;;AAED,QAAMK,OAAO,GAAGhF,KAAK,CAACiF,mBAAN,CAA0B;AAACD,IAAAA,OAAO,EAAE;AAAV,GAA1B,CAAhB;;AACA,MAAI,CAAChF,KAAK,CAACkF,MAAN,CAAaF,OAAb,CAAL,EAA4B;AAC1B;AACD;;AAED,QAAMG,oBAAoB,GAAGb,eAAe,CAACtD,gBAAD,CAA5C;AAEAhB,EAAAA,KAAK,CAAC4E,mBAAN,CAA0B,SAA1B,EAAqC,CAACtC,GAAD,EAAMF,aAAN,KAAwB;AAC3D,QAAID,MAAM,GAAGG,GAAG,CAACuC,WAAjB;AACA,UAAM7F,KAAK,GAAGmD,MAAM,CAACnD,KAAP,CAAaN,eAAb,CAAd;;AAEA,QAAI+C,eAAe,KAAK,CAACzC,KAAD,IAAU,CAACA,KAAK,CAAC,CAAD,CAAL,CAAS8F,IAAT,EAAhB,CAAnB,EAAqD;AACnD/E,MAAAA,MAAM,CAAC,mCAAD,EAAsC,IAAtC,EAA4CuC,GAA5C,CAAN;AACD,KAN0D,CAQ3D;;;AACAH,IAAAA,MAAM,GAAGA,MAAM,CAACtD,OAAP,CAAeH,eAAf,EAAgC,EAAhC,CAAT;;AAEA,QAAI+B,gBAAgB,IAAI,CAACA,gBAAgB,CAAC2E,IAAjB,CAAsBjD,MAAtB,CAArB,IACFzB,sBAAsB,IAAIA,sBAAsB,CAAC0E,IAAvB,CAA4BjD,MAA5B,CAD5B,EAEE;AACA;AACD;;AAED,UAAME,OAAO,GAAG,EAAhB;AACA,QAAIH,QAAQ,GAAG,KAAf;;AACA,QAAIzB,gBAAJ,EAAsB;AACpB,UAAIgC,kBAAkB,GAAG,CAAzB;AACA,UAAIC,mBAAmB,GAAG,CAA1B;AAEA,UAAI2C,aAAa,GAAG,CAApB;AACA,UAAIC,eAAe,GAAG,CAAtB;AAEA,UAAIC,WAAJ;AACA9E,MAAAA,gBAAgB,CAAC+E,SAAjB,GAA6B,CAA7B;;AACA,aAAO,CAACD,WAAW,GAAG9E,gBAAgB,CAACgF,IAAjB,CAAsBtD,MAAtB,CAAf,MAAkD,IAAzD,EAA+D;AAC7D,cAAM;AAACuD,UAAAA,KAAD;AAAQ,aAAGC,EAAX;AAAe,aAAGC;AAAlB,YAAwBL,WAA9B,CAD6D,CAG7D;;AACA,cAAMM,QAAQ,GAAG1D,MAAM,CAAC2D,KAAP,CAAaT,aAAb,EAA4BK,KAA5B,CAAjB;AAEA,cAAMK,aAAa,GAAGjH,UAAU,CAAC+G,QAAD,EAAW,IAAX,CAAhC;AAEA,cAAMG,QAAQ,GAAGD,aAAa,GAC5BF,QAAQ,CAACC,KAAT,CAAeD,QAAQ,CAACI,WAAT,CAAqB,IAArB,IAA6B,CAA5C,EAA+C/G,MADnB,GAE5B2G,QAAQ,CAAC3G,MAFX;AAIA,YAAIgH,YAAJ;AACA,YAAIC,qBAAJ;;AACA,YAAIP,EAAJ,EAAQ;AACN,gBAAMQ,GAAG,GAAGT,EAAE,CAACU,OAAH,CAAWT,EAAX,CAAZ;AACAM,UAAAA,YAAY,GAAGP,EAAE,CAACG,KAAH,CAAS,CAAT,EAAYM,GAAZ,CAAf;AACAD,UAAAA,qBAAqB,GAAGrH,UAAU,CAACoH,YAAD,EAAe,IAAf,CAAlC;AACD,SAJD,MAIO;AACLA,UAAAA,YAAY,GAAG,EAAf;AACAC,UAAAA,qBAAqB,GAAG,CAAxB;AACD;;AAEDzD,QAAAA,mBAAmB,IAAI4C,eAAe,GAAGS,aAAlB,GAAkCI,qBAAzD,CAvB6D,CAyB7D;;AACA,YAAIA,qBAAJ,EAA2B;AACzB,gBAAMG,eAAe,GAAGJ,YAAY,CAACJ,KAAb,CAAmBI,YAAY,CAACD,WAAb,CAAyB,IAAzB,IAAiC,CAApD,EAAuD/G,MAA/E;AAEAuD,UAAAA,kBAAkB,IAAI6D,eAAtB;AACD,SAJD,MAIO;AACL7D,UAAAA,kBAAkB,IAAIuD,QAAQ,GAAGE,YAAY,CAAChH,MAA9C;AACD;;AAED,cAAMyD,MAAM,GAAGiD,EAAE,IAAID,EAArB;AACAtD,QAAAA,OAAO,CAACG,IAAR,CAAa;AACXC,UAAAA,kBADW;AAEXC,UAAAA,mBAFW;AAGXC,UAAAA;AAHW,SAAb;AAKA0C,QAAAA,aAAa,GAAG5E,gBAAgB,CAAC+E,SAAjC;AACAF,QAAAA,eAAe,GAAGxG,UAAU,CAAC6D,MAAD,EAAS,IAAT,CAA5B;;AACA,YAAI,CAAClC,gBAAgB,CAAC8F,MAAtB,EAA8B;AAC5B;AACD;AACF;;AACDrE,MAAAA,QAAQ,GAAG,IAAX;AACD;;AAEDJ,IAAAA,WAAW,CAAC;AACVG,MAAAA,KAAK,EAAEN,OADG;AAEVO,MAAAA,QAFU;AAGVC,MAAAA,MAHU;AAIVE,MAAAA,OAJU;AAKVC,MAAAA,GALU;AAMVF,MAAAA,aANU;AAOV,SAAG+C;AAPO,KAAD,CAAX;AASD,GAtFD;AAuFD,CA1Sc,EA0SZ;AACDqB,EAAAA,gBAAgB,EAAE,IADjB;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAE;AACJ7B,MAAAA,WAAW,EAAE,yEADT;AAEJ8B,MAAAA,GAAG,EAAE;AAFD,KADF;AAKJC,IAAAA,MAAM,EAAE,CACN;AACEC,MAAAA,oBAAoB,EAAE,KADxB;AAEEC,MAAAA,UAAU,EAAE;AACVvF,QAAAA,iBAAiB,EAAE;AACjBwD,UAAAA,OAAO,EAAE,IADQ;AAEjBgC,UAAAA,IAAI,EAAE;AAFW,SADT;AAKV1F,QAAAA,UAAU,EAAE;AACV0F,UAAAA,IAAI,EAAE;AADI,SALF;AAQVtF,QAAAA,eAAe,EAAE;AACfsD,UAAAA,OAAO,EAAE,KADM;AAEfgC,UAAAA,IAAI,EAAE;AAFS,SARP;AAYVpG,QAAAA,aAAa,EAAE;AACboE,UAAAA,OAAO,EAAE,KADI;AAEbgC,UAAAA,IAAI,EAAE;AAFO,SAZL;AAgBVhG,QAAAA,aAAa,EAAE;AACbgE,UAAAA,OAAO,EAAE,IADI;AAEbgC,UAAAA,IAAI,EAAE;AAFO,SAhBL;AAoBVnG,QAAAA,WAAW,EAAE;AACXmE,UAAAA,OAAO,EAAE,KADE;AAEXgC,UAAAA,IAAI,EAAE;AAFK,SApBH;AAwBVlG,QAAAA,eAAe,EAAE;AACfkE,UAAAA,OAAO,EAAE,KADM;AAEfgC,UAAAA,IAAI,EAAE;AAFS,SAxBP;AA4BVzF,QAAAA,UAAU,EAAE;AACVyF,UAAAA,IAAI,EAAE;AADI,SA5BF;AA+BVtG,QAAAA,gBAAgB,EAAE;AAChBsG,UAAAA,IAAI,EAAE;AADU,SA/BR;AAkCV/F,QAAAA,gBAAgB,EAAE;AAChB+F,UAAAA,IAAI,EAAE;AADU,SAlCR;AAqCV9F,QAAAA,wBAAwB,EAAE;AACxB8F,UAAAA,IAAI,EAAE;AADkB,SArChB;AAwCV7F,QAAAA,sBAAsB,EAAE;AACtB6F,UAAAA,IAAI,EAAE;AADgB,SAxCd;AA2CV5F,QAAAA,0BAA0B,EAAE;AAC1B4F,UAAAA,IAAI,EAAE;AADoB,SA3ClB;AA8CVjG,QAAAA,qBAAqB,EAAE;AACrBiE,UAAAA,OAAO,EAAE,KADY;AAErBgC,UAAAA,IAAI,EAAE;AAFe,SA9Cb;AAkDV3F,QAAAA,YAAY,EAAE;AACZ2D,UAAAA,OAAO,EAAE,CADG;AAEZgC,UAAAA,IAAI,EAAE;AAFM,SAlDJ;AAsDVrG,QAAAA,sBAAsB,EAAE;AACtBqG,UAAAA,IAAI,EAAE;AADgB,SAtDd;AAyDVvF,QAAAA,6BAA6B,EAAE;AAC7BuD,UAAAA,OAAO,EAAE,IADoB;AAE7BgC,UAAAA,IAAI,EAAE;AAFuB;AAzDrB,OAFd;AAgEEA,MAAAA,IAAI,EAAE;AAhER,KADM,CALJ;AAyEJA,IAAAA,IAAI,EAAE;AAzEF,GAFL;AA6EDC,EAAAA,MAAM,EAAE;AA7EP,CA1SY,C","sourcesContent":["// Todo: When peerDeps bump to ESLint 7, see about replacing `CLIEngine`\n// with non-deprecated `ESLint` class:\n// https://github.com/eslint/eslint/blob/master/docs/user-guide/migrating-to-7.0.0.md#-the-cliengine-class-has-been-deprecated\nimport {\n CLIEngine,\n} from 'eslint';\nimport iterateJsdoc from '../iterateJsdoc';\n\nconst zeroBasedLineIndexAdjust = -1;\nconst likelyNestedJSDocIndentSpace = 1;\nconst preTagSpaceLength = 1;\n\n// If a space is present, we should ignore it\nconst firstLinePrefixLength = preTagSpaceLength;\n\nconst hasCaptionRegex = /^\\s*<caption>(.*?)<\\/caption>/u;\n\nconst escapeStringRegexp = (str) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/gu, '\\\\$&');\n};\nconst countChars = (str, ch) => {\n return (str.match(new RegExp(escapeStringRegexp(ch), 'gu')) || []).length;\n};\n\nconst getRegexFromString = (regexString) => {\n const match = regexString.match(/^\\/(.*)\\/([gimyus]*)$/u);\n let flags = 'u';\n let regex = regexString;\n if (match) {\n [, regex, flags] = match;\n if (!flags) {\n flags = 'u';\n }\n const uniqueFlags = [...new Set(flags)];\n flags = uniqueFlags.join('');\n }\n\n return new RegExp(regex, flags);\n};\n\nconst defaultMdRules = {\n // \"always\" newline rule at end unlikely in sample code\n 'eol-last': 0,\n\n // Wouldn't generally expect example paths to resolve relative to JS file\n 'import/no-unresolved': 0,\n\n // Snippets likely too short to always include import/export info\n 'import/unambiguous': 0,\n\n 'jsdoc/require-file-overview': 0,\n\n // The end of a multiline comment would end the comment the example is in.\n 'jsdoc/require-jsdoc': 0,\n\n // Unlikely to have inadvertent debugging within examples\n 'no-console': 0,\n\n // Often wish to start `@example` code after newline; also may use\n // empty lines for spacing\n 'no-multiple-empty-lines': 0,\n\n // Many variables in examples will be `undefined`\n 'no-undef': 0,\n\n // Common to define variables for clarity without always using them\n 'no-unused-vars': 0,\n\n // See import/no-unresolved\n 'node/no-missing-import': 0,\n 'node/no-missing-require': 0,\n\n // Can generally look nicer to pad a little even if code imposes more stringency\n 'padded-blocks': 0,\n};\n\nconst defaultExpressionRules = {\n ...defaultMdRules,\n 'no-unused-expressions': 'off',\n quotes: ['error', 'double'],\n semi: ['error', 'never'],\n strict: 'off',\n};\n\nexport default iterateJsdoc(({\n report,\n utils,\n context,\n globalState,\n}) => {\n if (!globalState.has('checkExamples-matchingFileName')) {\n globalState.set('checkExamples-matchingFileName', new Map());\n }\n const matchingFileNameMap = globalState.get('checkExamples-matchingFileName');\n\n const options = context.options[0] || {};\n let {\n exampleCodeRegex = null,\n rejectExampleCodeRegex = null,\n } = options;\n const {\n checkDefaults = false,\n checkParams = false,\n checkProperties = false,\n noDefaultExampleRules = false,\n checkEslintrc = true,\n matchingFileName = null,\n matchingFileNameDefaults = null,\n matchingFileNameParams = null,\n matchingFileNameProperties = null,\n paddedIndent = 0,\n baseConfig = {},\n configFile,\n allowInlineConfig = true,\n reportUnusedDisableDirectives = true,\n captionRequired = false,\n } = options;\n\n // Make this configurable?\n const rulePaths = [];\n\n const mdRules = noDefaultExampleRules ? undefined : defaultMdRules;\n\n const expressionRules = noDefaultExampleRules ? undefined : defaultExpressionRules;\n\n if (exampleCodeRegex) {\n exampleCodeRegex = getRegexFromString(exampleCodeRegex);\n }\n if (rejectExampleCodeRegex) {\n rejectExampleCodeRegex = getRegexFromString(rejectExampleCodeRegex);\n }\n\n const checkSource = ({\n filename, defaultFileName,\n rules = expressionRules,\n skipInit, source, targetTagName, sources = [], tag = {line: 0},\n }) => {\n if (!skipInit) {\n sources.push({\n nonJSPrefacingCols: 0,\n nonJSPrefacingLines: 0,\n string: source,\n });\n }\n\n // Todo: Make fixable\n // Todo: Fix whitespace indent\n const checkRules = function ({\n nonJSPrefacingCols,\n nonJSPrefacingLines,\n string,\n }) {\n const cliConfig = {\n allowInlineConfig,\n baseConfig,\n configFile,\n reportUnusedDisableDirectives,\n rulePaths,\n rules,\n useEslintrc: checkEslintrc,\n };\n const cliConfigStr = JSON.stringify(cliConfig);\n\n const src = paddedIndent ?\n string.replace(new RegExp(`(^|\\n) {${paddedIndent}}(?!$)`, 'gu'), '\\n') :\n string;\n\n // Programmatic ESLint API: https://eslint.org/docs/developer-guide/nodejs-api\n const fileNameMapKey = filename ?\n 'a' + cliConfigStr + filename :\n 'b' + cliConfigStr + defaultFileName;\n const file = filename || defaultFileName;\n let cliFile;\n if (matchingFileNameMap.has(fileNameMapKey)) {\n cliFile = matchingFileNameMap.get(fileNameMapKey);\n } else {\n const cli = new CLIEngine(cliConfig);\n let config;\n if (filename || checkEslintrc) {\n config = cli.getConfigForFile(file);\n }\n\n // We need a new instance to ensure that the rules that may only\n // be available to `file` (if it has its own `.eslintrc`),\n // will be defined.\n cliFile = new CLIEngine({\n allowInlineConfig,\n baseConfig: {\n ...baseConfig,\n ...config,\n },\n configFile,\n reportUnusedDisableDirectives,\n rulePaths,\n rules,\n useEslintrc: false,\n });\n matchingFileNameMap.set(fileNameMapKey, cliFile);\n }\n\n const {results: [{messages}]} =\n cliFile.executeOnText(src);\n\n // NOTE: `tag.line` can be 0 if of form `/** @tag ... */`\n const codeStartLine = tag.line + nonJSPrefacingLines;\n const codeStartCol = likelyNestedJSDocIndentSpace;\n\n messages.forEach(({message, line, column, severity, ruleId}) => {\n const startLine = codeStartLine + line + zeroBasedLineIndexAdjust;\n const startCol = codeStartCol + (\n\n // This might not work for line 0, but line 0 is unlikely for examples\n line <= 1 ? nonJSPrefacingCols + firstLinePrefixLength : preTagSpaceLength\n ) + column;\n\n report(\n '@' + targetTagName + ' ' + (severity === 2 ? 'error' : 'warning') +\n (ruleId ? ' (' + ruleId + ')' : '') + ': ' +\n message,\n null,\n {\n column: startCol,\n line: startLine,\n },\n );\n });\n };\n\n sources.forEach(checkRules);\n };\n\n const getFilenameInfo = (filename, ext = 'md') => {\n let defaultFileName;\n if (!filename) {\n const jsFileName = context.getFilename();\n if (typeof jsFileName === 'string' && jsFileName.includes('.')) {\n defaultFileName = jsFileName.replace(/\\..*?$/, `.${ext}`);\n } else {\n defaultFileName = `dummy.${ext}`;\n }\n }\n\n return {\n defaultFileName,\n filename,\n };\n };\n\n if (checkDefaults) {\n const filenameInfo = getFilenameInfo(matchingFileNameDefaults, 'jsdoc-defaults');\n utils.forEachPreferredTag('default', (tag, targetTagName) => {\n if (!tag.description.trim()) {\n return;\n }\n checkSource({\n source: `(${tag.description})`,\n targetTagName,\n ...filenameInfo,\n });\n });\n }\n if (checkParams) {\n const filenameInfo = getFilenameInfo(matchingFileNameParams, 'jsdoc-params');\n utils.forEachPreferredTag('param', (tag, targetTagName) => {\n if (!tag.default || !tag.default.trim()) {\n return;\n }\n checkSource({\n source: `(${tag.default})`,\n targetTagName,\n ...filenameInfo,\n });\n });\n }\n if (checkProperties) {\n const filenameInfo = getFilenameInfo(matchingFileNameProperties, 'jsdoc-properties');\n utils.forEachPreferredTag('property', (tag, targetTagName) => {\n if (!tag.default || !tag.default.trim()) {\n return;\n }\n checkSource({\n source: `(${tag.default})`,\n targetTagName,\n ...filenameInfo,\n });\n });\n }\n\n const tagName = utils.getPreferredTagName({tagName: 'example'});\n if (!utils.hasTag(tagName)) {\n return;\n }\n\n const matchingFilenameInfo = getFilenameInfo(matchingFileName);\n\n utils.forEachPreferredTag('example', (tag, targetTagName) => {\n let source = tag.description;\n const match = source.match(hasCaptionRegex);\n\n if (captionRequired && (!match || !match[1].trim())) {\n report('Caption is expected for examples.', null, tag);\n }\n\n // If we allow newlines in hasCaptionRegex, we should add to line count\n source = source.replace(hasCaptionRegex, '');\n\n if (exampleCodeRegex && !exampleCodeRegex.test(source) ||\n rejectExampleCodeRegex && rejectExampleCodeRegex.test(source)\n ) {\n return;\n }\n\n const sources = [];\n let skipInit = false;\n if (exampleCodeRegex) {\n let nonJSPrefacingCols = 0;\n let nonJSPrefacingLines = 0;\n\n let startingIndex = 0;\n let lastStringCount = 0;\n\n let exampleCode;\n exampleCodeRegex.lastIndex = 0;\n while ((exampleCode = exampleCodeRegex.exec(source)) !== null) {\n const {index, 0: n0, 1: n1} = exampleCode;\n\n // Count anything preceding user regex match (can affect line numbering)\n const preMatch = source.slice(startingIndex, index);\n\n const preMatchLines = countChars(preMatch, '\\n');\n\n const colDelta = preMatchLines ?\n preMatch.slice(preMatch.lastIndexOf('\\n') + 1).length :\n preMatch.length;\n\n let nonJSPreface;\n let nonJSPrefaceLineCount;\n if (n1) {\n const idx = n0.indexOf(n1);\n nonJSPreface = n0.slice(0, idx);\n nonJSPrefaceLineCount = countChars(nonJSPreface, '\\n');\n } else {\n nonJSPreface = '';\n nonJSPrefaceLineCount = 0;\n }\n\n nonJSPrefacingLines += lastStringCount + preMatchLines + nonJSPrefaceLineCount;\n\n // Ignore `preMatch` delta if newlines here\n if (nonJSPrefaceLineCount) {\n const charsInLastLine = nonJSPreface.slice(nonJSPreface.lastIndexOf('\\n') + 1).length;\n\n nonJSPrefacingCols += charsInLastLine;\n } else {\n nonJSPrefacingCols += colDelta + nonJSPreface.length;\n }\n\n const string = n1 || n0;\n sources.push({\n nonJSPrefacingCols,\n nonJSPrefacingLines,\n string,\n });\n startingIndex = exampleCodeRegex.lastIndex;\n lastStringCount = countChars(string, '\\n');\n if (!exampleCodeRegex.global) {\n break;\n }\n }\n skipInit = true;\n }\n\n checkSource({\n rules: mdRules,\n skipInit,\n source,\n sources,\n tag,\n targetTagName,\n ...matchingFilenameInfo,\n });\n });\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-examples',\n },\n schema: [\n {\n additionalProperties: false,\n properties: {\n allowInlineConfig: {\n default: true,\n type: 'boolean',\n },\n baseConfig: {\n type: 'object',\n },\n captionRequired: {\n default: false,\n type: 'boolean',\n },\n checkDefaults: {\n default: false,\n type: 'boolean',\n },\n checkEslintrc: {\n default: true,\n type: 'boolean',\n },\n checkParams: {\n default: false,\n type: 'boolean',\n },\n checkProperties: {\n default: false,\n type: 'boolean',\n },\n configFile: {\n type: 'string',\n },\n exampleCodeRegex: {\n type: 'string',\n },\n matchingFileName: {\n type: 'string',\n },\n matchingFileNameDefaults: {\n type: 'string',\n },\n matchingFileNameParams: {\n type: 'string',\n },\n matchingFileNameProperties: {\n type: 'string',\n },\n noDefaultExampleRules: {\n default: false,\n type: 'boolean',\n },\n paddedIndent: {\n default: 0,\n type: 'integer',\n },\n rejectExampleCodeRegex: {\n type: 'string',\n },\n reportUnusedDisableDirectives: {\n default: true,\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n noTrim: true,\n});\n"],"file":"checkExamples.js"}