From 99ae8f99bb9f38182dc7f38ccd53bd33c9802cc1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 15 May 2024 00:03:16 +0000 Subject: [PATCH] Rebuild pages at 018db8238bc256c1dba73747ae3988ce8fa29843 --- archive.zip | Bin 2890002 -> 2938491 bytes reposense-logs/reposense.log.0 | 1678 ++++++++++---------- reposense_reposense_master/authorship.json | 2 +- reposense_reposense_master/commits.json | 2 +- summary.json | 2 +- 5 files changed, 842 insertions(+), 842 deletions(-) diff --git a/archive.zip b/archive.zip index 3a50791e0d0f76f21675fd002394816ec9789e8d..7bed6939f8f250085ed653e657885f527b3fcb47 100644 GIT binary patch delta 412311 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

l`y>AbuT#72&v9=sfNqM>rPJz7ysap(h# zV6SGN3`VLglZ!}dzg8Y*z|$sJ1aUo5v0FhS9pKM;GpmT8;fHZYD_!fx3jBLitj?_# z&A`4>NQvm`uAgG><3ek=Z6w=+;^`m(6ueJ{Gu3H4b5Y?`{28a6&Z$ZFZgP7dtc zY1d`K#P!*3vkDWD%FwGRph+k7=SK8}K?hL%{+5Liu)=Wk3qi8xWSpMP$u>u@-76Rj z9Qd!i&{Zr(Nyc4d4lOQcaxpbe!V=7HR09_-y<8=Dsy^0XG)5QgUojE49sV`CvUn(O7VyB=-QCKwt|yT%vV>IzCa=;&X^E7^10}gjrl+ z%5Cd$d`h)F#13P4_D1{)uEI#2DGw6tC?G72Lq$qAy_eCa8MfE?yJ`Qbm7^GOj0|Qi zzZTBBu|!fSEY)zq#RkiEvh=wJJ?9^f`J>1-x4bAZEcsT+T>`Bm_^X6WO;F%>CsGiK zZROe%h>*?%AE5~Ce(U0+jzNPt>LGF*|2kJ9=165(Of!lZhiXv16yn!Fe|>krGZ6SK zG~n^HJP)I(()sl6FZ#?QtW0YMg>LFx@hcHj9zrYg+oYIR6t908t;&H7KK0#{ z3RT%1eAK3=`+&uTv7d-T?r6hN4tPO+2%Re&>?Imu!Jur*nf0iyiHYx9uRa$hI@7FCEmyGoOn2>60A(v-y0nqMks{xSJjHz)y5Hq17`iFKyVT}^@5rj^e2~{ zrRHx%s9%zun>B|j8ZR{s6cm_-5&se9G0OzU81RWYN%)X>(EUbQt^Y=VSPKmLMok2! zq;|{>YMR5TFDXL8?3r2EDzVcEg_&X_So4I9jkV8`R1 zE;=i&8N@zw%xIDt9!3r)#wzR>=672-z6$6qA%H5vv*x?@~^#rbv-ZVC`G7Uvdv6!bw1lPTCd#gHB-h$OM3-1K*e743M0KiszCI#w`T} zEX8_S|9hwh(4@i=jsOaV&~!{DyD168PWpLPB>1J~Q_H*f=b>9n>s(s7*^Vr^|G z9{CFjco4_Ipz-7)2E1*MTahPdp~kQN@f_XT7V0so&&q`TQbES_{lTF1JFl4`@yOjZN2!~u#vt0 zyoz<8i8k2}ladOf!K4F!7Lz+je?Qe>G)@^T&{>M%(`_I>|cB_ z7=F6W>+qRLE%5hMVsMp>WEG*{KW~kfxM~5Roh*tiNi2`($lzbe5_Fh^{0Y`1qqsk< zL{wK`4GVpO_QK^cpZ~o-GKF5svmj&otg|(5E<?TvrZFd?hL@utc z|LFU;4fY5fQ6F(qY$SsiqD^~EZD`=#u-;5VuK;2~gWRGy0i%?%5i@?9q`1{$Sw>5N`jX~~5+!8m2^$B3N;6UO@bZ>nX>%Vo zD=ra3^yNY-t6aJC-%>^kN4h-1;pxIWPld+4GG+r)DrpMoa7eG`u&kZ^R{ka2lnHJN zKRd>Wl7gs5&1k$be@7I$c+FfNl@P)Y7mct_d`DGVFzNou&lv*STJz@gs-I%kNI?ul ztxdlqS%V?CPrzJ5B>mvqh##*nvOVZ&DqJTlF<8$nVrn<2sA2RP7q5aa!iNtO+3X5BcX~FCi;fIEP`_(JQdQX8Xr)Pf6$WT=p7+J z1!evduCNuWzML3z)ZogIBj?^6BsK+@(il1m8!g*X>twmz>Y7a4pWkyd#61qxWuZ*M z4$TFV&{KKlp327Y@}po3s*u^*SRIUoi*O;gccT_ixaTN*U#h9Pep~vLK*egN`=5Zn z>6{1LKj(jvc@SM#zjF6E1knsW1ZQ56y9ZE|a_TYXpQc&|(B z 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

`_c;!~lX)-oKHcqNZv>Nb-&)F8NH& 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%0AQNM+(ALRRD%#FFIB0yLDUA$q$T-;8|9|(Z5%< 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 HLH_>(fPf-| delta 363498 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�G34Nv}(6FrdcSg`mkxi@JU% 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�E;Zl%7=rU66|%)>0{{48*|3h4 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 t2dw=EIHLRqkR{_U(Br}Ux6=Qx$ diff --git a/reposense-logs/reposense.log.0 b/reposense-logs/reposense.log.0 index 9cb4a40..10c4e76 100644 --- a/reposense-logs/reposense.log.0 +++ b/reposense-logs/reposense.log.0 @@ -1,1546 +1,1546 @@ -May 14, 2024 12:02:17 AM reposense.system.LogsManager addFileHandler +May 15, 2024 12:02:06 AM reposense.system.LogsManager addFileHandler INFO: Log temp folder has been successfully created -May 14, 2024 12:02:17 AM reposense.parser.CsvParser validateHeader +May 15, 2024 12:02:06 AM reposense.parser.CsvParser validateHeader INFO: Parsed header of CSV file, repo-config.csv, and recognized columns: Ignore Standalone Config, Repository's Location, Branch, Shallow Cloning, File formats, Ignore Glob List, Ignore Authors List, Find Previous Authors, Ignore Commits List -May 14, 2024 12:02:17 AM reposense.parser.CsvParser validateHeader +May 15, 2024 12:02:06 AM reposense.parser.CsvParser validateHeader INFO: Parsed header of CSV file, author-config.csv, and recognized columns: Author's Emails, Repository's Location, Author's GitHub ID, Branch, Author's Display Name, Ignore Glob List, Author's Git Author Name -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias marquestye found. The alias will belong to the last author - marquestye -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias marquestye found. The alias will belong to the last author - marquestye -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias marquestye found. The alias will belong to the last author - marquestye -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias marquestye found. The alias will belong to the last author - marquestye -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias marquestye found. The alias will belong to the last author - marquestye -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias marquestye found. The alias will belong to the last author - marquestye -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias arif-khalid found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias arif-khalid found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias arif-khalid found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias arif-khalid found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias arif-khalid found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias arif-khalid found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kevineyo1 found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kevineyo1 found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kevineyo1 found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kevineyo1 found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kevineyo1 found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kevineyo1 found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias domoberzin found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias domoberzin found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias domoberzin found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:06 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias domoberzin found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias domoberzin found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias domoberzin found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yuanxi1 found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yuanxi1 found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yuanxi1 found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yuanxi1 found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yuanxi1 found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yuanxi1 found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias dishenggg found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias dishenggg found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias dishenggg found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias dishenggg found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias dishenggg found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias dishenggg found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias supermii2 found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias supermii2 found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias supermii2 found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias supermii2 found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias supermii2 found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias supermii2 found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jonasongg found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jonasongg found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jonasongg found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jonasongg found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jonasongg found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jonasongg found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nereuswb922 found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nereuswb922 found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nereuswb922 found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nereuswb922 found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nereuswb922 found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nereuswb922 found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lamjiufong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lamjiufong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lamjiufong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lamjiufong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lamjiufong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lamjiufong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yiwen101 found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yiwen101 found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yiwen101 found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yiwen101 found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yiwen101 found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yiwen101 found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sopa301 found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sopa301 found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sopa301 found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sopa301 found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sopa301 found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sopa301 found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias mingyuanc found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias mingyuanc found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias mingyuanc found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias mingyuanc found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias mingyuanc found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias mingyuanc found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nknguyenhc found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nknguyenhc found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nknguyenhc found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nknguyenhc found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nknguyenhc found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nknguyenhc found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jingting1412 found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jingting1412 found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jingting1412 found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jingting1412 found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jingting1412 found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jingting1412 found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias tim-siu found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias tim-siu found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias tim-siu found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias tim-siu found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias tim-siu found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias tim-siu found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias marquestye found. The alias will belong to the last author - marquestye -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias arif-khalid found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kevineyo1 found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias domoberzin found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yuanxi1 found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias dishenggg found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias supermii2 found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jonasongg found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nereuswb922 found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lamjiufong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yiwen101 found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sopa301 found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias mingyuanc found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nknguyenhc found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jingting1412 found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias tim-siu found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias marquestye found. The alias will belong to the last author - marquestye -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias arif-khalid found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kevineyo1 found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias domoberzin found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yuanxi1 found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias dishenggg found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias supermii2 found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jonasongg found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nereuswb922 found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lamjiufong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yiwen101 found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sopa301 found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias mingyuanc found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nknguyenhc found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jingting1412 found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias tim-siu found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias marquestye found. The alias will belong to the last author - marquestye -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias arif-khalid found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kevineyo1 found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias domoberzin found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yuanxi1 found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias dishenggg found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias supermii2 found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jonasongg found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nereuswb922 found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lamjiufong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yiwen101 found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sopa301 found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias mingyuanc found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nknguyenhc found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jingting1412 found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias tim-siu found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias marquestye found. The alias will belong to the last author - marquestye -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias arif-khalid found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kevineyo1 found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias domoberzin found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yuanxi1 found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias dishenggg found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias supermii2 found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jonasongg found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nereuswb922 found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lamjiufong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yiwen101 found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sopa301 found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias mingyuanc found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nknguyenhc found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jingting1412 found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias tim-siu found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias marquestye found. The alias will belong to the last author - marquestye -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias arif-khalid found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kevineyo1 found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias domoberzin found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yuanxi1 found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias dishenggg found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias supermii2 found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jonasongg found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nereuswb922 found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lamjiufong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yiwen101 found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sopa301 found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias mingyuanc found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nknguyenhc found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jingting1412 found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias tim-siu found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias marquestye found. The alias will belong to the last author - marquestye -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias arif-khalid found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Arif-Khalid -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kevineyo1 found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - KevinEyo1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias domoberzin found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - domoberzin -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yuanxi1 found. The alias will belong to the last author - yuanxi1 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias dishenggg found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - dishenggg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - asdfghjkxd -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias supermii2 found. The alias will belong to the last author - supermii2 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jonasongg found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jonasongg -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nereuswb922 found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - NereusWB922 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lamjiufong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - LamJiuFong -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - xenosf -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yiwen101 found. The alias will belong to the last author - yiwen101 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sopa301 found. The alias will belong to the last author - sopa301 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias mingyuanc found. The alias will belong to the last author - mingyuanc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nknguyenhc found. The alias will belong to the last author - nknguyenhc -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jingting1412 found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - jingting1412 -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias tim-siu found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - Tim-Siu -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias sean leong found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jiachen found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.model.AuthorConfiguration checkDuplicateAliases +May 15, 2024 12:02:07 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias lzq found. The alias will belong to the last author - MadLamprey -May 14, 2024 12:02:17 AM reposense.git.GitConfig getGlobalGitLfsConfig +May 15, 2024 12:02:07 AM reposense.git.GitConfig getGlobalGitLfsConfig WARNING: Could not get global git lfs config java.lang.RuntimeException: reposense.system.CommandRunnerProcessException: Error returned from command git config --global --list on path . : fatal: unable to read config file '/home/runner/.gitconfig': No such file or directory @@ -1556,115 +1556,115 @@ fatal: unable to read config file '/home/runner/.gitconfig': No such file or dir at reposense.system.CommandRunner.runCommand(CommandRunner.java:21) ... 3 more -May 14, 2024 12:02:17 AM reposense.report.RepoCloner spawnCloneProcess +May 15, 2024 12:02:07 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/markbind/markbind.git... -May 14, 2024 12:02:18 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/CATcher-org/WATcher.git... -May 14, 2024 12:02:18 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/TEAMMATES/teammates.git... -May 14, 2024 12:02:18 AM reposense.report.RepoCloner spawnCloneProcess +May 15, 2024 12:02:07 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/reposense/reposense.git... -May 14, 2024 12:02:18 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/TEAMMATES/teammates.git to complete... -May 14, 2024 12:02:18 AM reposense.report.RepoCloner waitForCloneProcess +May 15, 2024 12:02:07 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/TEAMMATES/teammates.git... +May 15, 2024 12:02:07 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/CATcher-org/WATcher.git... +May 15, 2024 12:02:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/markbind/markbind.git to complete... -May 14, 2024 12:02:18 AM reposense.report.RepoCloner waitForCloneProcess +May 15, 2024 12:02:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/reposense/reposense.git to complete... -May 14, 2024 12:02:18 AM reposense.report.RepoCloner waitForCloneProcess +May 15, 2024 12:02:07 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/TEAMMATES/teammates.git to complete... +May 15, 2024 12:02:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/CATcher-org/WATcher.git to complete... -May 14, 2024 12:02:19 AM reposense.report.RepoCloner waitForCloneProcess +May 15, 2024 12:02:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/CATcher-org/WATcher.git completed! -May 14, 2024 12:02:19 AM reposense.report.RepoCloner spawnCloneProcess +May 15, 2024 12:02:08 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/CATcher-org/CATcher.git... -May 14, 2024 12:02:19 AM reposense.report.RepoCloner waitForCloneProcess +May 15, 2024 12:02:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/CATcher-org/CATcher.git to complete... -May 14, 2024 12:02:19 AM reposense.report.ReportGenerator analyzeRepos +May 15, 2024 12:02:08 AM reposense.report.ReportGenerator analyzeRepos INFO: [1/6] Analyzing https://github.com/CATcher-org/WATcher.git (main)... -May 14, 2024 12:02:19 AM reposense.report.ReportGenerator updateRepoConfig +May 15, 2024 12:02:08 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/CATcher-org/WATcher.git (main) does not contain a standalone config file. -May 14, 2024 12:02:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +May 15, 2024 12:02:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/CATcher-org/WATcher.git (main)... -May 14, 2024 12:02:20 AM reposense.report.RepoCloner waitForCloneProcess +May 15, 2024 12:02:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/CATcher-org/CATcher.git completed! -May 14, 2024 12:02:21 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/se-edu/addressbook-level3.git... -May 14, 2024 12:02:21 AM reposense.report.ReportGenerator analyzeRepos +May 15, 2024 12:02:10 AM reposense.report.ReportGenerator analyzeRepos INFO: [2/6] Analyzing https://github.com/CATcher-org/CATcher.git (master)... -May 14, 2024 12:02:21 AM reposense.report.RepoCloner waitForCloneProcess +May 15, 2024 12:02:10 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/se-edu/addressbook-level3.git... +May 15, 2024 12:02:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/se-edu/addressbook-level3.git to complete... -May 14, 2024 12:02:21 AM reposense.report.ReportGenerator updateRepoConfig +May 15, 2024 12:02:10 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/CATcher-org/CATcher.git (master) does not contain a standalone config file. -May 14, 2024 12:02:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +May 15, 2024 12:02:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/CATcher-org/CATcher.git (master)... -May 14, 2024 12:02:22 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/markbind/markbind.git completed! -May 14, 2024 12:02:22 AM reposense.report.ReportGenerator analyzeRepos -INFO: [3/6] Analyzing https://github.com/markbind/markbind.git (master)... -May 14, 2024 12:02:22 AM reposense.report.RepoCloner waitForCloneProcess +May 15, 2024 12:02:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/se-edu/addressbook-level3.git completed! -May 14, 2024 12:02:22 AM reposense.report.ReportGenerator analyzeRepos -INFO: [4/6] Analyzing https://github.com/se-edu/addressbook-level3.git (master)... -May 14, 2024 12:02:22 AM reposense.report.ReportGenerator updateRepoConfig +May 15, 2024 12:02:12 AM reposense.report.ReportGenerator analyzeRepos +INFO: [3/6] Analyzing https://github.com/se-edu/addressbook-level3.git (master)... +May 15, 2024 12:02:12 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/se-edu/addressbook-level3.git (master) does not contain a standalone config file. -May 14, 2024 12:02:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +May 15, 2024 12:02:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/se-edu/addressbook-level3.git (master)... -May 14, 2024 12:02:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos +May 15, 2024 12:02:12 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/markbind/markbind.git completed! +May 15, 2024 12:02:12 AM reposense.report.ReportGenerator analyzeRepos +INFO: [4/6] Analyzing https://github.com/markbind/markbind.git (master)... +May 15, 2024 12:02:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/se-edu/addressbook-level3.git (master)... -May 14, 2024 12:02:23 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/markbind/markbind.git (master) does not contain a standalone config file. -May 14, 2024 12:02:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/markbind/markbind.git (master)... -May 14, 2024 12:02:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos +May 15, 2024 12:02:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/CATcher-org/WATcher.git (main)... -May 14, 2024 12:02:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +May 15, 2024 12:02:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/se-edu/addressbook-level3.git (master)... -May 14, 2024 12:02:24 AM reposense.report.ReportGenerator analyzeRepo +May 15, 2024 12:02:13 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/se-edu/addressbook-level3.git (master) completed! -May 14, 2024 12:02:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +May 15, 2024 12:02:13 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/markbind/markbind.git (master) does not contain a standalone config file. +May 15, 2024 12:02:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/markbind/markbind.git (master)... +May 15, 2024 12:02:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/CATcher-org/WATcher.git (main)... -May 14, 2024 12:02:24 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/CATcher-org/WATcher.git (main) completed! -May 14, 2024 12:02:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos +May 15, 2024 12:02:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/CATcher-org/CATcher.git (master)... -May 14, 2024 12:02:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +May 15, 2024 12:02:14 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/CATcher-org/WATcher.git (main) completed! +May 15, 2024 12:02:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/CATcher-org/CATcher.git (master)... -May 14, 2024 12:02:25 AM reposense.report.ReportGenerator analyzeRepo +May 15, 2024 12:02:14 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/CATcher-org/CATcher.git (master) completed! -May 14, 2024 12:02:28 AM reposense.report.RepoCloner waitForCloneProcess +May 15, 2024 12:02:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/reposense/reposense.git completed! -May 14, 2024 12:02:28 AM reposense.report.ReportGenerator analyzeRepos +May 15, 2024 12:02:18 AM reposense.report.ReportGenerator analyzeRepos INFO: [5/6] Analyzing https://github.com/reposense/reposense.git (master)... -May 14, 2024 12:02:28 AM reposense.report.ReportGenerator updateRepoConfig +May 15, 2024 12:02:18 AM reposense.report.ReportGenerator updateRepoConfig INFO: Ignoring standalone config file in https://github.com/reposense/reposense.git (master). -May 14, 2024 12:02:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +May 15, 2024 12:02:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/reposense/reposense.git (master)... -May 14, 2024 12:02:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos +May 15, 2024 12:02:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/reposense/reposense.git (master)... -May 14, 2024 12:02:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +May 15, 2024 12:02:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/reposense/reposense.git (master)... -May 14, 2024 12:02:34 AM reposense.report.ReportGenerator analyzeRepo +May 15, 2024 12:02:25 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/reposense/reposense.git (master) completed! -May 14, 2024 12:02:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos +May 15, 2024 12:02:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/markbind/markbind.git (master)... -May 14, 2024 12:02:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +May 15, 2024 12:02:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/markbind/markbind.git (master)... -May 14, 2024 12:02:37 AM reposense.report.ReportGenerator analyzeRepo +May 15, 2024 12:02:26 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/markbind/markbind.git (master) completed! -May 14, 2024 12:02:40 AM reposense.report.RepoCloner waitForCloneProcess +May 15, 2024 12:02:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/TEAMMATES/teammates.git completed! -May 14, 2024 12:02:40 AM reposense.report.ReportGenerator analyzeRepos +May 15, 2024 12:02:29 AM reposense.report.ReportGenerator analyzeRepos INFO: [6/6] Analyzing https://github.com/TEAMMATES/teammates.git (master)... -May 14, 2024 12:02:40 AM reposense.report.ReportGenerator updateRepoConfig +May 15, 2024 12:02:30 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/TEAMMATES/teammates.git (master) does not contain a standalone config file. -May 14, 2024 12:02:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +May 15, 2024 12:02:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/TEAMMATES/teammates.git (master)... -May 14, 2024 12:03:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos +May 15, 2024 12:03:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/TEAMMATES/teammates.git (master)... -May 14, 2024 12:03:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +May 15, 2024 12:03:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/TEAMMATES/teammates.git (master)... -May 14, 2024 12:03:22 AM reposense.report.ReportGenerator analyzeRepo +May 15, 2024 12:03:12 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/TEAMMATES/teammates.git (master) completed! -May 14, 2024 12:03:22 AM reposense.report.ReportGenerator generateReposReport +May 15, 2024 12:03:12 AM reposense.report.ReportGenerator generateReposReport INFO: The report is generated at /home/runner/work/2024-dashboard/2024-dashboard/reposense-report -May 14, 2024 12:03:23 AM reposense.RepoSense main -INFO: Elapsed processing time: 1 minute(s) 5.73 second(s) +May 15, 2024 12:03:13 AM reposense.RepoSense main +INFO: Elapsed processing time: 1 minute(s) 6.31 second(s) diff --git a/reposense_reposense_master/authorship.json b/reposense_reposense_master/authorship.json index 5344e7f..a4ad1b0 100644 --- a/reposense_reposense_master/authorship.json +++ b/reposense_reposense_master/authorship.json @@ -1 +1 @@ -[{"path":".github/workflows/gh-pages.yml","fileType":"yml","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# This workflow executes the various RepoSense tests","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"name: GitHub Pages","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"on:","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" push:","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" branches:","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" - master","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"jobs:","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" deploy-gh-pages:","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" name: Deploy MarkBind to GitHub Pages","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" runs-on: ubuntu-latest","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" env:","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" NODE_VERSION: \"lts/*\"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" steps:","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" - name: Checkout repository","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" uses: actions/checkout@v3","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" - name: Set up Node.js","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" uses: actions/setup-node@v3","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"sopa301"},"content":" node-version: \u002718.x\u0027","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" - name: Set up Node caching","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" uses: actions/cache@v3","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" path: ~/.npm","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" key: ${{ runner.os }}-node-${{ hashFiles(\u0027**/package-lock.json\u0027) }}","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" restore-keys: |","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" ${{ runner.os }}-node-","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" - name: Install Graphviz","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" run: sudo apt-get -y install graphviz","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" - name: Install MarkBind CLI","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" run: npm i -g markbind-cli","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" - name: Build MarkBind website","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" run: cd docs \u0026\u0026 markbind build --baseUrl /RepoSense","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" - name: Deploy to GitHub Pages","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" if: success()","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" uses: crazy-max/ghaction-github-pages@v2","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" target_branch: gh-pages","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" build_dir: docs/_site","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" keep_history: true","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" env:","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}","isFullCredit":false}],"authorContributionMap":{"sopa301":1,"-":50}},{"path":".github/workflows/integration.yml","fileType":"yml","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# This workflow executes the various RepoSense tests","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"name: Continuous Integration","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"on:","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" push:","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" branches-ignore:","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" - gh-pages","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" pull_request:","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" branches-ignore:","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" - gh-pages","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"env:","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"sopa301"},"content":" NODE_VER: \u002718.x\u0027","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" JAVA_DISTRIBUTION: \u0027zulu\u0027","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":" JAVA_VER: 11","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"jobs:","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" mainbuild:","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":" name: ${{ matrix.os }} JDK 11","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" strategy:","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" fail-fast: false","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" matrix:","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" os: [ubuntu-20.04, ubuntu-22.04, macos-11, macos-12, windows-2019, windows-2022]","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" runs-on: ${{ matrix.os }}","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" env:","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" HOMEBREW_NO_AUTO_UPDATE: 1 # Prevent time-consuming brew update","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" steps:","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" - name: Checkout repository","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" uses: actions/checkout@v3","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" fetch-depth: 0","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":" - name: Set up JDK 11","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" uses: actions/setup-java@v3","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" distribution: ${{ env.JAVA_DISTRIBUTION }}","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" java-version: ${{ env.JAVA_VER }}","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" - name: Verify Java version","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" run: echo \"Actual JDK in use -- \"; java -version","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" - name: Set up Node.js","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" uses: actions/setup-node@v3","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" node-version: ${{ env.NODE_VER }}","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" - name: Set up Gradle caching","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" uses: actions/cache@v3","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" path: |","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" $HOME/.gradle/caches","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" $HOME/.gradle/wrapper","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" key: ${{ matrix.os }}-gradle-${{ hashFiles(\u0027**/*.gradle*\u0027) }}","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" restore-keys: |","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" ${{ matrix.os }}-gradle-","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" - name: Set up Node caching","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" uses: actions/cache@v3","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" path: $HOME/.npm","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" key: ${{ matrix.os }}-node-${{ hashFiles(\u0027**/package-lock.json\u0027) }}","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" restore-keys: |","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" ${{ matrix.os }}-node-","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" - name: Grant execute permission for gradlew","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" if: ${{ runner.os !\u003d \u0027Windows\u0027 }}","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" run: chmod +x gradlew # Windows does not need this","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" - name: Run environmental checks","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" run: ./gradlew environmentalChecks","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" - name: Run linter","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" run: ./gradlew lintFrontend","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" - name: Build with Gradle","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" run: ./gradlew clean checkstyleAll test systemTest coverage","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" - name: Run code coverage","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" if: ${{ success() \u0026\u0026 ( matrix.os \u003d\u003d \u0027ubuntu-20.04\u0027 || matrix.os \u003d\u003d \u0027macos-11\u0027 || matrix.os \u003d\u003d \u0027windows-2022\u0027 ) }}","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" uses: codecov/codecov-action@v3","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" directory: ${{ github.workspace }}/build/reports/jacoco/coverage","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" files: coverage.xml","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"asdfghjkxd"},"content":" fail_ci_if_error: false","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" - name: Build preview website (pull request)","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" if: ${{ success() \u0026\u0026 github.event_name \u003d\u003d \u0027pull_request\u0027 \u0026\u0026 matrix.os \u003d\u003d \u0027ubuntu-20.04\u0027 }}","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" run: |","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" git fetch --all \u0026\u0026 git config --global user.email \"-\" \u0026\u0026 git config --global user.name \"-\" \u0026\u0026 ./gradlew run -Dargs\u003d\"--since d1\"","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" sudo apt-get -y install graphviz","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" npm install -g markbind-cli","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" (cd docs \u0026\u0026 markbind build)","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" - name: Save PR number and HEAD commit (pull request)","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" if: ${{ success() \u0026\u0026 github.event_name \u003d\u003d \u0027pull_request\u0027 \u0026\u0026 matrix.os \u003d\u003d \u0027ubuntu-20.04\u0027 }}","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" run: |","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" mkdir -p ./pr","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" echo ${{ github.event.number }} \u003e ./pr/NUMBER","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" echo ${{ github.event.pull_request.head.sha }} \u003e ./pr/SHA","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" - name: Upload artifacts (pull request)","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" if: ${{ success() \u0026\u0026 github.event_name \u003d\u003d \u0027pull_request\u0027 \u0026\u0026 matrix.os \u003d\u003d \u0027ubuntu-20.04\u0027 }}","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" uses: actions/upload-artifact@v3","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" name: reposense-deployment","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" path: |","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" ./reposense-report","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" ./docs/_site","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" ./pr","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" cypress:","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" name: Cypress frontend tests","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" runs-on: ubuntu-20.04","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" steps:","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" - name: Checkout repository","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" uses: actions/checkout@v3","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" fetch-depth: 0","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"asdfghjkxd"},"content":" - name: Set up JDK 11","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" uses: actions/setup-java@v3","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" distribution: ${{ env.JAVA_DISTRIBUTION }}","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" java-version: ${{ env.JAVA_VER }}","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" - name: Verify Java version","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" run: echo \"Actual JDK in use -- \"; java -version","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" - name: Set up Node.js","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" uses: actions/setup-node@v3","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" node-version: ${{ env.NODE_VER }}","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" - name: Set up Gradle caching","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" uses: actions/cache@v3","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" path: |","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" $HOME/.gradle/caches","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" $HOME/.gradle/wrapper","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" key: ${{ runner.os }}-gradle-${{ hashFiles(\u0027**/*.gradle*\u0027) }}","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" restore-keys: |","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" ${{ runner.os }}-gradle-","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" - name: Set up Node caching","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" uses: actions/cache@v3","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" path: $HOME/.npm","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" key: ${{ runner.os }}-node-${{ hashFiles(\u0027**/package-lock.json\u0027) }}","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" restore-keys: |","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" ${{ runner.os }}-node-","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" - name: Grant execute permission for gradlew","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" run: chmod +x gradlew","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" - name: Set up environment","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" run: sudo apt-get install -y libgtk2.0-0 libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" - name: Run frontend tests","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" run: ./gradlew frontendTest -Pci","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":5,"sopa301":1,"-":156}},{"path":".github/workflows/surge.yml","fileType":"yml","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# This workflow deploys a RepoSense report and the MarkBind documentation","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"# website to surge.sh in a secure manner for pull requests","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"name: Surge.sh build preview","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"on:","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" workflow_run:","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" workflows: [\"Continuous Integration\"]","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" types:","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" - completed","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"jobs:","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" deploy:","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" name: Deploy to surge.sh","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" runs-on: ubuntu-latest","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" if: ${{ github.event.workflow_run.event \u003d\u003d \u0027pull_request\u0027 \u0026\u0026 github.event.workflow_run.conclusion \u003d\u003d \u0027success\u0027 }}","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" env:","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" NODE_VERSION: \"lts/*\"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" GITHUB_TOKEN: ${{ github.token }}","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" steps:","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" - name: Checkout repository","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" uses: actions/checkout@v3","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" - name: Set up Node.js","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" uses: actions/setup-node@v3","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"sopa301"},"content":" node-version: \u002718.x\u0027","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" - name: Download deployment artifacts","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" uses: dawidd6/action-download-artifact@v2","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" workflow: integration.yml","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" run_id: ${{ github.event.workflow_run.id }}","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" name: reposense-deployment","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" path: .","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" - name: Extract PR number","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" id: pr-number","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" run: echo \u0027ACTIONS_PR_NUMBER\u003d\u0027$(cat ./pr/NUMBER) \u003e\u003e $GITHUB_OUTPUT","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" - name: Download deployment status artifacts","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" uses: dawidd6/action-download-artifact@v2","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" workflow: pending.yml","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" pr: ${{ steps.pr-number.outputs.ACTIONS_PR_NUMBER }}","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" workflow_conclusion: success","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" name: reposense-deployment-id","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" path: ./pr","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" - name: Update PR checklist for surge.sh as in progress","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" if: ${{ success() }}","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" run: ./config/gh-actions/deploy.sh in_progress","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" - name: Install surge","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" if: ${{ success() }}","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" run: npm install -g surge","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" - name: Deploy to surge.sh","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" if: ${{ success() }}","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" env:","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" SURGE_LOGIN: ${{ secrets.SURGE_LOGIN }}","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" SURGE_TOKEN: ${{ secrets.SURGE_TOKEN }}","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" run: ./config/gh-actions/deploy.sh success","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" - name: Update PR checklist for surge.sh as failure","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" if: ${{ failure() }}","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" run: ./config/gh-actions/deploy.sh failure","isFullCredit":false}],"authorContributionMap":{"sopa301":1,"-":67}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"plugins {","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027application\u0027","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027checkstyle\u0027","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" id \u0027idea\u0027","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" id \u0027jacoco\u0027","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" id \u0027java\u0027","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" id \u0027com.liferay.node\u0027 version \u00277.2.18\u0027","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" id \u0027com.github.psxpaul.execfork\u0027 version \u00270.2.0\u0027","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" id \u0027com.palantir.git-version\u0027 version \u00270.13.0\u0027","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"OperatingSystem os \u003d DefaultNativePlatform.currentOperatingSystem;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"mainClassName \u003d \u0027reposense.RepoSense\u0027","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"node.download \u003d false // The Liferay Node Gradle Plugin will use the system PATH to find the Node/npm executable.","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":"sourceCompatibility \u003d JavaVersion.VERSION_11","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":"targetCompatibility \u003d JavaVersion.VERSION_11","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"repositories {","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" mavenCentral()","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"configurations {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" systemtestImplementation.extendsFrom testImplementation","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" systemtestRuntime.extendsFrom testRuntime","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"dependencies {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" String jUnitVersion \u003d \u00275.8.2\u0027","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" implementation group: \u0027com.google.code.gson\u0027 ,name: \u0027gson\u0027, version:\u00272.9.0\u0027","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" implementation group: \u0027net.freeutils\u0027, name: \u0027jlhttp\u0027, version: \u00272.6\u0027","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" implementation group: \u0027net.sourceforge.argparse4j\u0027, name: \u0027argparse4j\u0027, version: \u00270.9.0\u0027","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" implementation group: \u0027org.apache.ant\u0027, name: \u0027ant\u0027, version: \u00271.10.12\u0027","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" implementation group: \u0027org.apache.commons\u0027, name: \u0027commons-csv\u0027, version: \u00271.9.0\u0027","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" implementation group: \u0027org.fusesource.jansi\u0027, name: \u0027jansi\u0027, version: \u00272.4.0\u0027","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"asdfghjkxd"},"content":" implementation group: \u0027com.fasterxml.jackson.dataformat\u0027, name: \u0027jackson-dataformat-yaml\u0027, version: \u00272.17.0\u0027","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: jUnitVersion","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: jUnitVersion","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"sourceSets {","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" systemtest {","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" compileClasspath +\u003d main.output + test.output","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" runtimeClasspath +\u003d main.output + test.output","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" java.srcDir file(\u0027src/systemtest/java\u0027)","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" resources.srcDir file(\u0027src/systemtest/resources\u0027)","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"def installFrontend \u003d tasks.register(\u0027installFrontend\u0027, com.liferay.gradle.plugins.node.tasks.ExecutePackageManagerTask) {","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" workingDir \u0027frontend/\u0027","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" args \u003d [\u0027ci\u0027]","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"def buildFrontend \u003d tasks.register(\u0027buildFrontend\u0027, com.liferay.gradle.plugins.node.tasks.ExecutePackageManagerTask) {","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" dependsOn installFrontend","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" workingDir \u0027frontend/\u0027","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" args \u003d [\u0027run\u0027, \u0027devbuild\u0027]","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"def zipReport \u003d tasks.register(\u0027zipReport\u0027, Zip) {","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" dependsOn buildFrontend","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" from \u0027frontend/build/\u0027","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" archiveBaseName \u003d \u0027templateZip\u0027","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" destinationDirectory \u003d file(\u0027src/main/resources\u0027)","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"def copyCypressConfig \u003d tasks.register(\u0027copyCypressConfig\u0027, Copy) {","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" description \u0027Copies the config files used by the backend to generate the test report for Cypress testing into an isolated working directory\u0027","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" from \u0027frontend/cypress/config\u0027","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" into \u0027build/serveTestReport/exampleconfig\u0027","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"def copyMainClasses \u003d tasks.register(\u0027copyMainClasses\u0027, Copy) {","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" description \u0027Copies the backend classes used to generate the test report for Cypress testing into an isolated working directory\u0027","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" dependsOn classes","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" from \u0027build/classes/java/main\u0027","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" into \u0027build/serveTestReport/java/main\u0027","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"def compileJava \u003d tasks.compileJava","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"tasks.named(\"processSystemtestResources\").configure {","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" duplicatesStrategy \u003d DuplicatesStrategy.INCLUDE","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"tasks.run.dependsOn(zipReport);","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"run {","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" //the second arguments indicates the default value associated with the property.","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" tasks.compileJava.mustRunAfter(zipReport)","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" args System.getProperty(\u0027args\u0027, \u0027\u0027).split()","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" systemProperty \"version\", getRepoSenseVersion()","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"checkstyle {","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" toolVersion \u003d \u00279.3\u0027","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" getConfigDirectory().set(file(\"$rootProject.projectDir/config/checkstyle\"))","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"idea {","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" module {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" sourceSets.systemtest.allSource.srcDirs.each { srcDir -\u003e module.testSourceDirs +\u003d srcDir }","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"test {","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" environment(\"REPOSENSE_ENVIRONMENT\", \"TEST\")","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" testLogging {","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" events \u0027passed\u0027, \u0027skipped\u0027, \u0027failed\u0027","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" showStandardStreams \u003d true","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" doFirst {","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" deleteReposAddressDirectory()","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" useJUnitPlatform()","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" doLast {","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" deleteReposAddressDirectory()","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"tasks.shadowJar.dependsOn(zipReport);","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":"shadowJar {","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" tasks.compileJava.mustRunAfter(zipReport)","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" tasks.processResources.mustRunAfter(zipReport)","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" archiveFileName \u003d \u0027RepoSense.jar\u0027","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" destinationDirectory \u003d file(\"${buildDir}/jar/\")","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" manifest {","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" attributes \u0027Implementation-Version\u0027: getRepoSenseVersion()","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":"tasks.register(\u0027lintFrontend\u0027, com.liferay.gradle.plugins.node.tasks.ExecutePackageManagerTask) {","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" dependsOn installFrontend","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" workingDir \u0027frontend/\u0027","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" args \u003d [\u0027run\u0027, \u0027lint\u0027]","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"def checkstyleMain \u003d tasks.checkstyleMain","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":"def checkstyleTest \u003d tasks.checkstyleTest","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":"def checkstyleSystemtest \u003d tasks.checkstyleSystemtest","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"tasks.register(\u0027checkstyleAll\u0027, Checkstyle) {","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" dependsOn checkstyleMain, checkstyleTest, checkstyleSystemtest","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" tasks.checkstyleTest.mustRunAfter(\u0027checkstyleMain\u0027)","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" tasks.checkstyleSystemtest.mustRunAfter(\u0027checkstyleTest\u0027)","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"tasks.register(\u0027environmentalChecks\u0027, Exec) {","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" workingDir \u0027config/checks/\u0027","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" if (os.isWindows()){","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" commandLine \u0027cmd\u0027, \u0027/c\u0027, \u0027run-checks.bat\u0027","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" commandLine \u0027sh\u0027, \u0027./run-checks.sh\u0027","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"tasks.register(\u0027systemtest\u0027, Test) {","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" testClassesDirs \u003d sourceSets.systemtest.output.classesDirs","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" classpath \u003d sourceSets.systemtest.runtimeClasspath","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" environment(\"REPOSENSE_ENVIRONMENT\", \"TEST\")","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" testLogging {","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" events \u0027passed\u0027, \u0027skipped\u0027, \u0027failed\u0027","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" showStandardStreams \u003d true","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" doFirst {","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" deleteReposAddressDirectory()","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" useJUnitPlatform()","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" doLast {","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" deleteReposAddressDirectory()","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"def serveTestReportInBackground \u003d tasks.register(\u0027serveTestReportInBackground\u0027, com.github.psxpaul.task.JavaExecFork) {","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" description \u0027Creates a background server process for the test report that is to be used by Cypress\u0027","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" dependsOn zipReport, compileJava, processResources, copyCypressConfig, copyMainClasses","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" tasks.compileJava.mustRunAfter(zipReport)","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" tasks.processResources.mustRunAfter(zipReport)","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" workingDir \u003d \u0027build/serveTestReport\u0027","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" main \u003d mainClassName","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" classpath \u003d sourceSets.main.runtimeClasspath","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" args \u003d [\u0027--config\u0027, \u0027./exampleconfig\u0027, \u0027--since\u0027, \u0027d1\u0027, \u0027--view\u0027, \u0027-A\u0027]","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" String versionJvmArgs \u003d \u0027-Dversion\u003d\u0027 + getRepoSenseVersion()","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" jvmArgs \u003d [ versionJvmArgs ]","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" waitForPort \u003d 9000","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":"def installCypress \u003d tasks.register(\u0027installCypress\u0027, com.liferay.gradle.plugins.node.tasks.ExecutePackageManagerTask) {","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" workingDir \u0027frontend/cypress/\u0027","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" args \u003d [\u0027ci\u0027]","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"tasks.register(\u0027cypress\u0027, com.liferay.gradle.plugins.node.tasks.ExecutePackageManagerTask) {","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" dependsOn installCypress, serveTestReportInBackground","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" tasks.serveTestReportInBackground.mustRunAfter(installCypress)","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" workingDir \u003d file(\u0027frontend/cypress/\u0027)","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" args \u003d [\"run-script\", \"debug\"]","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":"tasks.register(\u0027frontendTest\u0027, com.liferay.gradle.plugins.node.tasks.ExecutePackageManagerTask) {","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" dependsOn installCypress, serveTestReportInBackground","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" tasks.serveTestReportInBackground.mustRunAfter(installCypress)","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" workingDir \u003d file(\u0027frontend/cypress/\u0027)","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" args \u003d [\"run-script\", \"tests\"]","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" // Run tests in CI without slow motion","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" if (project.hasProperty(\u0027ci\u0027)) {","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" args \u003d [\"run-script\", \"ci\"]","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":"tasks.withType(Copy) {","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" includeEmptyDirs \u003d true","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":"jacoco {","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" toolVersion \u003d \"0.8.7\"","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":"jacocoTestReport {","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" reports {","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" html.required \u003d true","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" xml.required \u003d true","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" csv.required \u003d false","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" html.destination file(\"${buildDir}/jacocoHtml\")","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" executionData systemtest, frontendTest","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":"tasks.register(\u0027coverage\u0027, JacocoReport)","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":"coverage.configure {","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" sourceDirectories.from files(sourceSets.main.allSource.srcDirs)","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" classDirectories.from files(sourceSets.main.output)","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" executionData.from files(jacocoTestReport.executionData)","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" afterEvaluate {","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" classDirectories.from files(classDirectories.files.collect {","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" fileTree(dir: it, exclude: [\u0027**/*.jar\u0027])","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" })","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" reports {","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" html.required \u003d true","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" xml.required \u003d true","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":"String getRepoSenseVersion() {","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" String repoSenseVersion \u003d project.property(\"version\")","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" if (repoSenseVersion.equals(\"unspecified\")) {","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" repoSenseVersion \u003d versionDetails().commitDistance \u003d\u003d 0 ? versionDetails().lastTag : versionDetails().gitHash","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" return repoSenseVersion","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":"def syncFrontendPublic \u003d tasks.register(\u0027syncFrontendPublic\u0027, Sync) {","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" from \u0027reposense-report\u0027","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" into \u0027frontend/public/\u0027","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" include \u0027**/*.json\u0027","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" includeEmptyDirs \u003d false","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":" preserve {","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" include \u0027index.html\u0027","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" include \u0027favicon.ico\u0027","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"sopa301"},"content":" include \u0027title.md\u0027","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":"def macHotReloadFrontend \u003d tasks.register(\u0027macHotReloadFrontend\u0027, Exec) {","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" dependsOn installFrontend","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" onlyIf {os.isMacOsX()}","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" workingDir \u0027frontend/\u0027","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" commandLine \u0027npm\u0027, \u0027run\u0027, \u0027serveOpen\u0027","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":"def windowsHotReloadFrontend \u003d tasks.register(\u0027windowsHotReloadFrontend\u0027, Exec) {","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" dependsOn installFrontend","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" onlyIf {os.isWindows()}","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" workingDir \u0027frontend/\u0027","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" commandLine \u0027cmd\u0027,\u0027/c\u0027, \u0027START\u0027, \u0027\"hotreload RepoSense frontend\"\u0027, \u0027npm\u0027, \u0027run\u0027, \u0027serveOpen\u0027","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":"def linuxHotReloadFrontend \u003d tasks.register(\u0027linuxHotReloadFrontend\u0027, Exec) {","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" dependsOn installFrontend","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" onlyIf {os.isLinux()}","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" workingDir \u0027frontend/\u0027","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" commandLine \u0027npm\u0027, \u0027run\u0027, \u0027serveOpen\u0027","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":"tasks.register(\u0027hotReloadFrontend\u0027) {","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" dependsOn syncFrontendPublic","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":" finalizedBy windowsHotReloadFrontend","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":" finalizedBy macHotReloadFrontend","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" finalizedBy linuxHotReloadFrontend","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":"// End of hot reload Tasks","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":"void deleteReposAddressDirectory() {","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":" final String REPOS_ADDRESS \u003d \"repos\"","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" def reposDirectory \u003d new File(REPOS_ADDRESS)","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":" reposDirectory.deleteDir()","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":"defaultTasks \u0027clean\u0027, \u0027build\u0027, \u0027systemtest\u0027, \u0027frontendTest\u0027, \u0027coverage\u0027","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":3,"sopa301":1,"-":321}},{"path":"config/blurbs.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/testrepo-Alpha/tree/master","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"Master branch of testrepo-Alpha","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2}},{"path":"docs/about.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"About us\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-3\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"RepoSense is a project based in the [National University of Singapore, School of Computing](http://www.comp.nus.edu.sg/), funded by a _Teaching Enhancement Grant_ from the [NUS Center for Development of Teaching and Learning](https://nus.edu.sg/cdtl).","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"## Current team","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"### [Damith C. Rajapakse](http://www.comp.nus.edu.sg/~damithch)","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"![](https://avatars.githubusercontent.com/u/1673303?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"**Role**: Project Advisor","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":"### [Charisma Kausar](https://www.github.com/ckcherry23)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Senior Developer [2024 January - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":"Contributor [2022 December - 2024 January]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":"### [David Gareth Ong](https://www.github.com/vvidday)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Senior Developer [2024 January - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":"Contributor [2023 January - 2024 January]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":"### [Gokul Rajiv](https://github.com/gok99)","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Senior Developer [2024 January - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":"Contributor [2022 January - 2024 January]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":"### [Marcus Tang Xin Kye](https://www.github.com/MarcusTXK)","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Senior Developer [2024 January - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"asdfghjkxd"},"content":"Contributor [2023 January - 2024 January]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":"## [Chang Si Kai](https://github.com/sikai00)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Contributor [2023 Jan - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"asdfghjkxd"},"content":"### [Alvis Ng](https://www.github.com/supermii2)","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Contributor [2024 January - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"asdfghjkxd"},"content":"### [George Tay Quan Yao](https://www.github.com/jonasongg)","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Contributor [2024 January - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"asdfghjkxd"},"content":"### [Jonas Ong Si Wei](https://www.github.com/jonasongg)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Contributor [2024 January - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"asdfghjkxd"},"content":"### [Poon Yip Hang, Ryan](https://www.github.com/sopa301)","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Contributor [2024 January - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"asdfghjkxd"},"content":"## Past Members","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"### [Wang Chao](https://github.com/fzdy1914)","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"![](https://avatars3.githubusercontent.com/u/35621726?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Project Lead [2021 Jan - 2021 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"Maintainer [2020 May - 2021 Jan]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"### [Hsu Zhong Jun](https://github.com/dcshzj)","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"![](https://avatars.githubusercontent.com/u/27919917?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Project Lead [2022 Jan - 2022 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"asdfghjkxd"},"content":"Committer [2021 June - 2021 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"### [Chan Ger Hean](https://github.com/gerhean)","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Committer [2022 Jan - 2022 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":"### [Huang Chengyu](https://github.com/HCY123902)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Project Co-Lead [2023 Jan - 2023 Apr]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"asdfghjkxd"},"content":"Senior Dev [2023 Jan - 2023 Apr]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"asdfghjkxd"},"content":"Committer [2022 Jan - 2022 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"asdfghjkxd"},"content":"Contributor [2021 July - 2021 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"### [Chan Jun Da](https://github.com/chan-j-d)","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Project Co-Lead [2023 Apr- 2023 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"asdfghjkxd"},"content":"Senior Dev [2023 Jan - 2023 Apr]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"asdfghjkxd"},"content":"Committer [2022 Jan - 2022 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"asdfghjkxd"},"content":"Contributor [2021 July - 2021 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"### [Tay Yi Hsuen](https://github.com/yhtMinceraft1010X)","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Senior Dev [2023 Jan - 2023 Apr]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"asdfghjkxd"},"content":"Committer [2022 Jan - 2022 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"asdfghjkxd"},"content":"Contributor [2021 July - 2021 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"### [Zhou Jiahao](https://github.com/zhoukerrr)","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Senior Dev [2023 Jan - 2023 Apr]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"asdfghjkxd"},"content":"Committer [2022 Jan - 2022 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"asdfghjkxd"},"content":"Contributor [2021 July - 2021 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"### [Ma Tanghao](https://github.com/harryggg)","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":"Main developer for the initial version [2017 May - 2018 May]","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":"### [Ong Shu Peng](https://github.com/ongspxm)","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"![](https://avatars0.githubusercontent.com/u/1430854?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"**Role**: Area Lead for UI [2018 Dec - 2019 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"Committer [2018 Aug - 2018 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":"Contributor [2018 May - 2018 Aug]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"### [Tan Jun An](https://github.com/yamidark)","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":"![](https://avatars3.githubusercontent.com/u/18352498?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"**Role**: Area Lead for Code Quality [2018 Aug - 2019 April]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"Committer [2018 May - 2018 Aug]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"### [Teng Yong Hao](https://github.com/yong24s)","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"![](https://avatars2.githubusercontent.com/u/2003406?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":"**Role**:","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":"Mentor [2018 Dec - 2020 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"Committer [2018 Aug - 2018 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":"Contributor [2018 May - 2018 Aug]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"### [Peh Xian Bin, Eugene](https://github.com/eugenepeh)","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":"![](https://avatars.githubusercontent.com/u/19277206?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"**Role**: Maintainer [2020 May - 2021 Jan]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":"Project Lead [2018 May - 2020 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"### [Aditya Agarwal](https://github.com/adityaa1998)","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"Contributor [2018 May - 2018 Aug]","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"### [Apoorva Ullas](https://github.com/apoorva17)","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"Contributor [2018 Aug - 2019 May]","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"### [Chelsey Ong Hee](https://github.com/chel-seyy)","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"Contributor [2018 Dec - 2019 May]","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"### [Gilbert Emerson](https://github.com/emer7)","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"Contributor [2018 Dec - 2019 May]","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":"### [Teo Ming Yi](https://github.com/myteo)","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"Contributor [2018 Dec - 2019 May]","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":"### [Jin Minjia](https://github.com/bluein-green)","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":"**Role**: Contributor [2019 May - 2019 Aug]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"### [James Pang Mun Wai](https://github.com/jamessspanggg)","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"![](https://avatars1.githubusercontent.com/u/32864116?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":"**Role**: Committer [2020 May - 2021 Jan]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":"Contributor [2019 May - 2020 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":"### [Lee Jin Yao](https://github.com/jinyao-lee)","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":"![](https://avatars3.githubusercontent.com/u/35756209?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":"**Role**: Contributor [2019 May - 2020 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"### [Chong Chee Yuan](https://github.com/ccyccyccy)","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":"**Role**: Contributor [2020 January - 2020 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":"### [Ni Tianzhen](https://github.com/niqiukun)","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":"**Role**: Contributor [2020 January - 2020 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":"### [Yash Chowdhary](https://github.com/yash-chowdhary)","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":"![](https://avatars2.githubusercontent.com/u/21968718?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"**Role**: Contributor [2020 January - 2020 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":"### [Liu Yiwen](https://github.com/0blivious)","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":"**Role**: Contributor [2019 August - 2021 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":"### [Tejas Bhuwania](https://github.com/Tejas2805)","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":"![](https://avatars2.githubusercontent.com/u/35946746?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":"**Role**: Contributor [2019 August - 2021 August]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":"### [Anubhav](https://github.com/anubh-v)","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":"**Role**: Contributor [2019 September - 2020 August]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":"### [Ang Ze Yu](https://github.com/ang-zeyu)","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":"**Role**: Contributor [2020 January - 2021 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":"### [Roland Yu Wenyang](https://github.com/rolandyuwy)","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":"**Role**: Contributor [2021 January - 2021 March]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":"","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":69,"-":169}},{"path":"docs/dg/devOpsGuide.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"DevOps Guide\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"{% from \u0027scripts/macros.njk\u0027 import embed with context %}","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"This page documents the various components that form part of the DevOps infrastructure that RepoSense uses.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"## GitHub Actions","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"[GitHub Actions](https://docs.github.com/en/actions) is a platform that is used by RepoSense for running the test suite and is primarily used for continuous integration and testing. The test suite is stored in `.github/workflows/` and comprises of:","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"- Unit tests (in `src/tests/`)","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"- System tests (in `src/systemtest/`)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"- Frontend tests (in `frontend/cypress/tests/`)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"### Continuous integration","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"All three types of tests in the test suite are run in a single GitHub Actions workflow called \"Continuous Integration\". The steps are defined in [`integration.yml`](https://github.com/reposense/RepoSense/blob/master/.github/workflows/integration.yml) and are split into two types of jobs:","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":"1. Ubuntu/macOS/Windows JDK 11 (`mainbuild`): Runs both unit tests and system tests on JDK 11 running on supported Ubuntu, macOS and Windows versions. For Ubuntu, this job also produces a RepoSense report and the MarkBind documentation website for previewing.","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":"2. Cypress frontend tests (`cypress`): Runs only the frontend tests on JDK 11 running on Ubuntu.","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"The list of supported OS versions are [available on the GitHub Docs website](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources). These jobs should be updated regularly whenever RepoSense supports newer versions of the Java Development Kit (JDK) as well as when new OS versions are made available (via the job OS matrix). Frontend tests are run separately to take advantage of parallel job execution.","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"Some of the jobs execute some commands that are too complicated to be included in the workflow configuration files. Such commands are written in the form of a bash script and are located in the [`config/gh-actions`](https://github.com/reposense/RepoSense/tree/master/config/gh-actions) folder.","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"This workflow is run for both incoming pull requests to any branch as well as direct commits to any branch in the repository.","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"Cypress frontend tests are run against reports generated from config files in `frontend/cypress/config`. It uses the `cypress` branch of the RepoSense repository which is kept independent of `master` and should be updated only when there are new frontend tests that need to be accommodated.","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"### Report and documentation previews","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"For each pull request to any branch in the repository, a RepoSense report and the MarkBind documentation website is generated based on the code submitted in the pull request. This is to facilitate pull request reviewers in being able to quickly preview how the RepoSense report and/or the documentation website will change after the pull request is merged.","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"Due to [security considerations in preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests), the deployment of the report and documentation previews were split across two workflows in [pull request #1411](https://github.com/reposense/RepoSense/pull/1411):","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"1. Surge.sh pending build (defined in [`pending.yml`](https://github.com/reposense/RepoSense/blob/master/.github/workflows/pending.yml)): Used for gathering information about the pull request and update the pull request checklist to indicate that the previews are pending.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"2. Surge.sh build preview (defined in [`surge.yml`](https://github.com/reposense/RepoSense/blob/master/.github/workflows/surge.yml)): Used for actually deploying the RepoSense report and documentation website to Surge.sh and updating the pull request checklist to link to the preview websites.","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"The previews are recognised as GitHub deployments and are named `dashboard-$PRNUMBER` and `docs-$PRNUMBER`, where `$PRNUMBER` is the pull request number. Once a preview is ready, the reviewer would be able to click on \"View deployment\" or \"Show environments\" in the pull request to open the preview websites.","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"Both the \"Surge.sh pending build\" and \"Continuous Integration\" workflows produce an artifact respectively, which is then downloaded by the \"Surge.sh build preview\" workflow to be deployed to Surge.sh. Due to limitations in GitHub Actions in determining the workflow execution order, the \"Surge.sh pending build\" workflow is assumed to have been completed before the \"Continuous Integration\" workflow is completed.","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"This task is not performed on commits to the repository, as there is no need to do so.","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"After the pull request is closed or merged, the Surge.sh deployments are retained, while the GitHub environments for them are cleared by another workflow \"Clear deployments for closed pull requests\" (defined in [`delete-deploy.yml`](https://github.com/reposense/RepoSense/blob/master/.github/workflows/delete-deploy.yml)). The workflow uses [`delete-deploy.sh`](https://github.com/reposense/RepoSense/blob/master/config/gh-actions/delete-deploy.sh) (found in the `config/gh-actions/` folder) to remove the environments on GitHub, and to leave a comment on the pull request with links to the Surge.sh previews for later reference.","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"### GitHub Pages","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"This task builds the MarkBind documentation website on every push to the `master` branch. The steps are defined in [`gh-pages.yml`](https://github.com/reposense/RepoSense/blob/master/.github/workflows/gh-pages.yml).","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"### Stale pull requests","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"This task automates the cleaning up of the pull requests by automatically marking inactive pull requests as stale and subsequently closing them. The steps and configurations are defined in [`stale.yml`](https://github.com/reposense/RepoSense/blob/master/.github/workflows/stale.yml) and the job is triggered automatically once per day.","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"## Codecov","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"[Codecov](https://app.codecov.io/gh/reposense/RepoSense) is a platform for checking the code coverage status of the project and the pull request patch. It runs automatically on each pull request and the settings are located in [`codecov.yml`](https://github.com/reposense/RepoSense/blob/master/codecov.yml).","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"## Surge.sh","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"Surge.sh is a platform for hosting the RepoSense report and documentation preview builds. The deployment is automatically performed by the \"Surge.sh build preview\" job using the [`deploy.sh`](https://github.com/reposense/RepoSense/blob/master/config/gh-actions/deploy.sh) script in the `config/gh-actions/` folder.","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"For authentication, two secrets are stored and used in GitHub Actions:","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"1. `SURGE_LOGIN` - Holds the email address to use for the Surge.sh account","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"2. `SURGE_TOKEN` - Holds the secret account token generated for the above account (generated using `surge token`)","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"The `surge` command automatically detects the existence of these two environment variables and use them for authentication when deploying the RepoSense report and documentation build previews.","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"Currently, deployments are kept forever, even after the pull request is merged or closed. There is currently no existing functionality to automatically clean up deployments after they are no longer useful.","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":84}},{"path":"docs/dg/learningBasics.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Learning the Basics\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"{% from \u0027scripts/macros.njk\u0027 import embed, step with context %}","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"This is a learning guide for developers who are new to RepoSense.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"warning\" seamless\u003e","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"Depending on what you know already and what you would like to work on (i.e., backend or frontend), you may find certain sections irrelevant to you and you can skip them accordingly.","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"## Backend","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"This section is for developers who want to contribute to the backend of RepoSense. You may skip this section if you want to contribute as a pure frontend developer. Before you get started, you should have set up the project on your computer according to [the _Setting up_ page](settingUp.html).","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"The backend implementation of RepoSense is located in `src/main`.","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"{{ step(1) }} **Know Java**","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":"The RepoSense backend is mostly written in `Java 11`.","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":"1. You need to have a basic knowledge of Java before getting started, including its syntax, [API](https://docs.oracle.com/javase/11/docs/api/), and certain frameworks such as [JUnit](https://se-education.org/learningresources/contents/java/JUnit.html).","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"1. Once you are familiar with the basic syntax, you may wish to learn more advanced topics such as [concurrency](https://se-education.org/learningresources/contents/java/JavaConcurrency.html), [synchronization](https://se-education.org/learningresources/contents/java/JavaSynchronization.html), and [streams](https://se-education.org/learningresources/contents/java/streams-an-introduction.html). These topics can help you to understand certain part of the backend implementation (concurrent cloning and analysis of multiple repositories, etc.). They are optional but you may find them useful when working on certain issues.","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"{{ step(2) }} **Learn the RepoSense backend architecture**","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"You may want to refer to the [backend architecture](architecture.html) to understand the RepoSense backend implementation logic.","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"To gain a more concrete idea of how the backend works, you can use the IDE Debugger and run RepoSense under the debugging mode to trace through the steps of how arguments from command line and CSV files are parsed, how repositories are cloned and analyzed, and how the JSON files are generated.","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"warning\" seamless\u003e","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"The information below is for **Intellij**. If you are using a different IDE, you may need to check the documentation of how to use the debugger separately.","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"* Check the [debugging guide](https://www.jetbrains.com/help/idea/debugging-your-first-java-application.html) if you are not familiar with debugging in **Intelij**.","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"* In `RepoSense.java`, the main class, set appropriate break points. Here are some relevant method calls in the `main` method at which you can set the breakpoints:","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" * `ArgsParser.parse(args)`: RepoSense parses the CLI arguments from the command given by the user.","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" * `getRepoConfigurations(cliArguments)`: RepoSense gets the configuration for each repository by parsing the CSV files.","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" * `getReportConfigurations(cliArguments)`: RepoSense gets the report configuration (report title) by parsing the JSON files.","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" * `ReportGenerator.generateReposReport(...)` This is where the bulk of the work is conducted, including cloning repositories, analyzing repositories, and generating the JSON files to be used by the report.","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"* To supply debugging arguments, right-click on the run button of `RepoSense.main`, click `Modify Run Configuration`, and add [CLI flags](https://reposense.org/ug/customizingReports.html#customize-using-cli-flags) in `Program arguments`. Examples: `--since 16/12/2021 --until 18/12/2022`; `-s 16/12/2021 -u 18/12/2022`.","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"When tracing through the program execution, you can cross reference the architecture diagram and Javadoc of the class and method to check your understanding of the procedure.","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"{{ step(3) }} **Gain some hands-on experience**","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"Here are some small tasks for you to gain some basic knowledge of the code related to the RepoSense backend. You can do each in a separate branch in your local copy of the code.","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"\u003cpanel header\u003d\"**Task 1: Add a flag to pretty-print the JSON file**\" type\u003d\"primary\"\u003e","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" **Task 1: Add a flag to pretty-print the JSON file**","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" 1. [Generate a report locally](../ug/generatingReports.html#generating-reports-locally).","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" 2. Open a generated JSON file. For example, you can open `summary.json` of the generated report.","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" 3. You should see that the content in the JSON is compactly organized in 1 single line. This may affect readability for developer who wants to investigate the content in the JSON file.","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" **Your Task**","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" Add a new CLI argument `--use-json-pretty-printing`, such that when a user runs the command `java -jar RepoSense.jar --repos LIST_OF_REPO_URLS --view --use-json-pretty-printing`, the JSON files `summary.json`, `authorship.json`, and `commits.json` will be printed in a more readable way.","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 1\"\u003e","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" Try to understand the parsing process of the Command Line Arguments, which starts from `ArgsParser.parse(args)` in `RepoSense.java` and uses `ArgumentParser` to capture the arguments in the command string.","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" Therefore, the first step you can take is to add the following to `ArgsParser`.","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" public static final String[] JSON_PRINT_MODE_FLAGS \u003d new String[]{\"--use-json-pretty-printing\", \"-j\"};","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" In `getArgumentParser` method, add the following content to make `ArgumentParser` capture the new argument.","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" parser.addArgument(JSON_PRINT_MODE_FLAGS)","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" .dest(JSON_PRINT_MODE_FLAGS[0])","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" .help(\"A flag to use json pretty printing when generating the json files.\");","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 2\"\u003e","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" After the step in hint 1, the argument is captured by `ArgumentParser`. Now make corresponding changes to `CliArguments.java`, `ConfigCliArguments.java`, and the `parse` method in `ArgsParser.java` to make the return result of `parse` include the new argument.","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" 1. Add the following content to `CliArguments` to include `isPrettyPrintingUsed` as a new attribute to the class.","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" protected boolean isPrettyPrintingUsed;","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" public boolean isPrettyPrintingUsed() {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" return isPrettyPrintingUsed;","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" 2. In the constructor of `ConfigCliArguments`, add `isPrettyPrintingUsed` as a new parameter of the method, and add the following instruction to the method body.","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" this.isPrettyPrintingUsed \u003d isPrettyPrintingUsed;","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" 3. In the `parse` method of `ArgsParser`, add the following instruction to get `isJsonPrettyPrintingUsed` from `ArgmentParser`.","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" boolean isJsonPrettyPrintingUsed \u003d results.get(JSON_PRINT_MODE_FLAGS[0]);","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" 4. Additionally, change the return statement of the `parse` method so that the `ConfigCliArguments` object returned will now include `isJsonPrettyPrintingUsed`.","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 3\"\u003e","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" After the steps in hint 1 and hint 2, the result returned from `ArgsParser.parse(args)` in `RepoSense.java` should be able to capture the new argument when it is specified in the command.","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" The next step is to extract the argument from the `CliArguments` object, and pass it to JSON file writer to notify it of the specified printing mode.","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" Note that the creation and writing of JSON file is invoked in `ReportGenerator.generateReposReport`, which calls `FileUtil.writeJsonFile` directly to write the `summary.json` file or indirectly (Check `generateIndividualRepoReport` and `generateEmptyRepoReport`) to write the `commits.json` or `authorship.json` files of individual repositories.","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" Therefore, the task now is to make `FileUtil.writeJsonFile` switch between different printing mode.","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" 1. You can find out what [`Gson.setPrettyPrinting`](https://www.javadoc.io/doc/com.google.code.gson/gson/2.8.5/com/google/gson/GsonBuilder.html#setPrettyPrinting--) does and how it can be used in the `writeJsonFile` method of [`FileUtil.java`](https://github.com/reposense/RepoSense/blob/master/src/main/java/reposense/util/FileUtil.java).","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" 2. Add the following content to `FileUtil`.","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" private static boolean isPrettyPrintingUsed \u003d false;","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" 3. In the `writeJsonFile` method, Replace the creation of the `Gson` object with the following instructions.","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" GsonBuilder gsonBuilder \u003d new GsonBuilder()","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" .registerTypeAdapter(LocalDateTime.class, (JsonSerializer\u003cLocalDateTime\u003e) (date, typeOfSrc, context)","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" -\u003e new JsonPrimitive(date.format(DateTimeFormatter.ofPattern(GITHUB_API_DATE_FORMAT))))","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" .registerTypeAdapter(FileType.class, new FileType.FileTypeSerializer());","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" Gson gson;","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" if (isPrettyPrintingUsed) {","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" gson \u003d gsonBuilder.setPrettyPrinting().create();","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" gson \u003d gsonBuilder.create();","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" 4. To notify `FileUtil` of the switch between different printing mode, add the following method to `FileUtil`.","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" public static void setPrettyPrintingMode(boolean isPrettyPrintingAdopted) {","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" isPrettyPrintingUsed \u003d isPrettyPrintingAdopted;","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" 5. It is now possible to notify `FileUtil` of the printing mode switch by extracting the argument from the `CliArguments` object in the `main` method of `RepoSense.java` and passing it to the corresponding method in `FileUtil`.","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" FileUtil.setPrettyPrintingMode(cliArguments.isPrettyPrintingUsed());","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" Now the parsing of argument and changing of printing mode should have been completed.","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Suggested solution\"\u003e","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" There is more than 1 way to achieve this. By combining the changes in hint 1, hint 2, and hint 3, you should be able to get a possible solution.","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" Try the command `java -jar RepoSense.jar --repos https://github.com/reposense/RepoSense.git --view --use-json-pretty-printing` and check the generated JSON files to see if it works.","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"\u003c/panel\u003e","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"\u003cpanel header\u003d\"**Task 2: Add exception message during repository cloning to the summary view**\" type\u003d\"primary\"\u003e","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" **Task 2: Add exception message during repository cloning to the summary view**","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" 1. Open a [report](https://dashboard-1507-pr-reposense-reposense.surge.sh/).","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" 2. You should see that there is a red panel in the summary view containing the following message, indicating that there is an issue in the cloning process of the repository `reposense/testrepo-Empty`.","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" reposense/testrepo-Empty[master]","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" Failed to clone from https://github.com/reposense/testrepo-Empty.git","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" **Your task**","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" For the repository with the message `Failed to clone from ...`, find out what exception causes this cloning error, and add that exception message to the panel as well.","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 1\"\u003e","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" You can find out what [`ErrorSummary.java`](https://github.com/reposense/RepoSense/blob/master/src/main/java/reposense/report/ErrorSummary.java) and [`RepoCloner.java`](https://github.com/reposense/RepoSense/blob/master/src/main/java/reposense/report/RepoCloner.java) do, and where they are used.","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 2\"\u003e","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" Try to understand the cloning process.","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" * The cloning process is invoked by [`RepoGenerator.java`](https://github.com/reposense/RepoSense/blob/master/src/main/java/reposense/report/ReportGenerator.java) in the `cloneAndAnalyzeRepos` method, which subsequently calls `cloneBare` in `RepoCloner.java` to start the cloning.","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" * The `cloneAndAnalyzeRepos` method will then call `getRepoLocation` in `RepoCloner.java` to try to get the repository location.","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" * Beneath the surface, `RepoCloner` will first execute `spawnCloneProcess` and then execute `waitForCloneProcess` when it is invoked by `RepoGenerator` for the first and second time respectively.","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 3\"\u003e","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" In `RepoCloner`, the potential exceptions in `spawnCloneProcess` and `waitForCloneProcess` are caught but not recorded by `ErrorSummary`.","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Suggested solution\"\u003e","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" There is more than 1 way to achieve this. One solution is shown as the following:","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" Add this to the catch block of `spawnCloneProcess` and `waitForCloneProcess`, so that the message will be captured in `summary.json`.","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" ErrorSummary.getInstance().addErrorMessage(config.getDisplayName(), e.getMessage());","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":"\u003c/panel\u003e","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":"This is only for your practice. There is no need for you to commit this change and submit it in a pull request.","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":"{{ step(4) }} **Next Step**","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":"You can now proceed to learn the [contributing workflow](workflow.html).","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":"## Frontend","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":"This section is for developers who want to contribute to the frontend of RepoSense. You may skip this section if you want to contribute as a pure backend developer.","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":"The frontend implementation of RepoSense is located in `frontend/src`.","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":"{{ step(1) }} **Learn the necessary tools**","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":"It is necessary for you to learn the basics of Vue.js, Pug, and SCSS before working on the project.","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":"### Vue.js","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":"Vue.js uses JavaScript as its programming language. Before learning **Vue.js**, you may need to first get yourself familiar with JavaScript syntax first.","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"sopa301"},"content":"You can refer to the [Javascript documentation](https://devdocs.io/javascript/) to learn the basic syntax. There are plenty of other resources available and please feel free to find the resource most suitable for you. Do note that RepoSense uses ES6 over CommonJS.","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":"RepoSense uses **Vue.js** (Vue3) in its front-end implementation. In particular, major user interface components, such as [summary view](report.html#summary-view-v-summary-js), [authorship view](report.html#authorship-view-v-authorship-js), and [zoom view](report.html#zoom-view-v-zoom-js), are implemented as Vue components. The corresponding source files are in `frontend/src`.","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":"* If you are new to Vue.js, you may want to start learning by looking at [the beginner tutorial](https://www.vuemastery.com/courses/intro-to-vue-js/).","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":"* You can dive deeper later by checking the [Vue.js documentation](https://vuejs.org/guide/introduction.html) to learn about essential concepts such as component life cycle hooks, and component properties.","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":"* It is recommended if you can work on some small projects first to gain more solid understanding of Vue.js.","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"warning\" seamless\u003e","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":"The guide above uses HTML as the component template, which is not the case with RepoSense. You may wish to learn more about [Pug](#pug) and its connection with HTML.","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":"#### Vuex","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":"RepoSense uses **Vuex** for the state management of the Vue components.","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":"* You can check the [Vuex guide](https://vuex.vuejs.org/guide/#the-simplest-store) to find out how Vuex can be used in a Vue project.","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":"* There is also a [course](https://vueschool.io/courses/vuex-for-everyone) available that will walk you through an example of creating Vue application with Vuex.","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":"### Pug","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":"RepoSense uses Pug files as the template of each Vue component. The corresponding HTML templates will later be generated from the Pug files by [spuild](https://github.com/ongspxm/spuild2) when generating the report.","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":"Since Pug is used to generate the HTML template, it is recommended that you have a basic knowledge of HTML before starting to learn Pug. Once you understand how HTML works, you can proceed to focus on how Pug is translated into HTML.","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":"* You can refer to the [official documentation](https://pugjs.org/api/getting-started.html) or [this tutorial](https://www.youtube.com/watch?v\u003dkt3cEjjkCZA) to learn about the syntax of pug and how it is translated into HTML.","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":"* To get a hands-on experience, here is a [Pug to HTML converter](https://pughtml.com/). Feel free to try out a couple of examples on your own.","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":"### Scss","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":"SCSS is used for styling the Pug template. The corresponding CSS will later be generated from the SCSS files by [spuild](https://github.com/ongspxm/spuild2) when generating the report. The corresponding source files are in `frontend/src/styles`.","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":"It is recommended that you have a basic knowledge of CSS before starting to learn SCSS. Once you understand how CSS works, you can proceed to focus on how SCSS is translated into CSS.","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":"* You can refer to the [style rules](https://sass-lang.com/documentation/style-rules) to learn about the similarities and differences between SCSS and CSS.","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":"{{ step(2) }} **Learn the RepoSense frontend architecture**","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":"* You may want to refer to the [frontend architecture](report.html#report-architecture) to understand the implementation.","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":"* Another way for you to understand the frontend is to use **Vue.js devtools** to learn how the various Vue Components interact with each other. You can refer to the [frontend debugging guide](workflow.html#debugging-front-end) for more information.","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":"{{ step(3) }} **Gain some hands-on experience**","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":"Here are some small tasks for you to gain some basic knowledge of the code related to the RepoSense frontend. You can do each in a separate branch in your local copy of the code.","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":"\u003cpanel header\u003d\"**Task 1: Highlight the selected author name in the summary view**\" type\u003d\"primary\"\u003e","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":" **Task 1: Highlight the selected author name in the summary view**","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" 1. Open a [report](https://dashboard-1507-pr-reposense-reposense.surge.sh/).","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" 2. Randomly open the authorship contribution panel of an author (The icon is `\u003c/\u003e`).","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":" 3. You should see that, after you open the panel, the author title background on the chart panel becomes yellow, and the background of the `\u003c/\u003e` icon you clicked becomes green.","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" **Your Task**","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" Make corresponding changes to `summary charts` so that in step 3, after opening the panel, the font colour of the author title (in the form of `authorDisplayName(authorName)`) on the chart panel also becomes green.","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 1\"\u003e","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" Try to locate where the author title is in [`c-summary-charts.vue`](https://github.com/reposense/RepoSense/blob/master/frontend/src/components/c-summary-charts.vue).","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 2\"\u003e","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":" You can check what `activeUser` and `activeRepo` do in [`c-summary-charts.vue`](https://github.com/reposense/RepoSense/blob/master/frontend/src/components/c-summary-charts.vue).","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 3\"\u003e","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":" Refer to how changes are made to the title background and icon background in [`c-summary-charts.vue`](https://github.com/reposense/RepoSense/blob/master/frontend/src/components/c-summary-charts.vue).","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 4\"\u003e","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"-"},"content":" Some of the CSS styling for `c-summary-charts.vue` is in [`style.scss`](https://github.com/reposense/RepoSense/blob/master/frontend/src/styles/style.scss). You can add corresponding class selector if necessary.","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Suggested solution\"\u003e","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":" There is more than 1 way to achieve this. One solution is shown as the following:","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":" Add this to `c_summary.scss`.","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"asdfghjkxd"},"content":" ```css","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"-"},"content":" .active-text {","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"-"},"content":" color: mui-color(\u0027green\u0027);","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"-"},"content":" In `c-summary-charts.vue`, locate `summary-chart__title--name`, and add the following to its `v-bind:class` attribute map.","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"-"},"content":" \u0027active-text\u0027: user.name \u003d\u003d\u003d activeUser \u0026\u0026 user.repoName \u003d\u003d\u003d activeRepo","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":"\u003c/panel\u003e","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":"\u003cpanel header\u003d\"**Task 2: Add tooltip for file path in authorship panel**\" type\u003d\"primary\"\u003e","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":" **Task 2: Add tooltip for file path in authorship panel**","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"-"},"content":" 1. Open a [report](https://dashboard-1507-pr-reposense-reposense.surge.sh/).","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"-"},"content":" 2. Randomly open the authorship contribution panel of an author (The icon is `\u003c/\u003e`).","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"-"},"content":" 3. Select a random file in the authorship contribution panel, and hover your mouse on an icon on the file title, a corresponding tooltip will show up, suggesting what the purpose of the icon is. However, when you hover the mouse over the file path on the file title, there is no tool tip shown, even if clicking the path itself will also trigger some event.","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" \u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"-"},"content":" For example, if you open the authorship contribution panel of an author in `reposense/RepoSense[master]` and hover the mouse over the triangular icon beside the file path `src/main/java/reposense/model/Author.java`, you should see a tooltip saying `Click to hide file details` above the icon. However, when you hover the mouse over the file path `src/main/java/reposense/model/Author.java`, there is no corresponding tooltip shown.","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"-"},"content":" \u003c/box\u003e","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"-"},"content":" **Your Task**","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"-"},"content":" Make corresponding `authorship contribution panel` so that in step 3, when hovering your mouse over the file path:","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":" * A tip saying `This is the file path. Click to hide file details` will show up when the file details are shown","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"-"},"content":" * A tip saying `This is the file path. Click to show file details` will show up when the file details are not shown.","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 1\"\u003e","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"-"},"content":" Try to locate where the file title and the file path are in [`c-authorship.vue`](https://github.com/reposense/RepoSense/blob/master/frontend/src/views/c-authorship.vue).","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 2\"\u003e","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"-"},"content":" You can check how tooltip is added for the triangular icon in the file title in [`c-authorship.vue`](https://github.com/reposense/RepoSense/blob/master/frontend/src/views/c-authorship.vue).","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 3\"\u003e","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"-"},"content":" You can check what `file.active` does and how it is used to switch between different tooltip messages when hovering the mouse on the corresponding icon.","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Suggested solution\"\u003e","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"-"},"content":" There is more than 1 way to achieve this. One solution is shown as the following:","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"-"},"content":" 1. In `c-authorship.vue`, locate the section that iterates through each file in `selectedFiles`.","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"-"},"content":" 2. There is a specific portion of the section that renders the toggle icon, the file index, and the file path of the file title.","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"-"},"content":" 3. Try to locate the `span` tag that renders `file.path`, and wraps it inside a new `tooptip`.","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"-"},"content":" 4. In the `tooltip`, use the following instructions to handle the switch of tooltip message.","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"-"},"content":" span.tooltip-text(v-show\u003d\"file.active\") This is the file path. Click to hide file details","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"-"},"content":" span.tooltip-text(v-show\u003d\"!file.active\") This is the file path. Click to show file details","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"-"},"content":"\u003c/panel\u003e","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"-"},"content":"\u003cpanel header\u003d\"**Task 3: Add tooltip for commit message title in zoom panel**\" type\u003d\"primary\"\u003e","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"-"},"content":" **Task 3: Add tooltip for commit message title in zoom panel**","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"-"},"content":" 1. Open a [report](https://dashboard-1507-pr-reposense-reposense.surge.sh/).","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"-"},"content":" 2. Randomly open the commits panel of an author.","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"-"},"content":" 3. Select a random commit in the commits panel, and hover your mouse on the icons on the commit title, there is no tooltip shown saying that it will redirect you to a different site.","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"-"},"content":" \u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"-"},"content":" For example, given the [report](https://dashboard-1507-pr-reposense-reposense.surge.sh/?search\u003d\u0026sort\u003dgroupTitle\u0026sortWithin\u003dtitle\u0026since\u003d\u0026timeframe\u003dcommit\u0026mergegroup\u003d\u0026groupSelect\u003dgroupByRepos\u0026breakdown\u003dfalse\u0026tabOpen\u003dtrue\u0026tabType\u003dzoom\u0026zA\u003deugenepeh\u0026zR\u003dreposense%2FRepoSense%5Bmaster%5D\u0026zACS\u003d99.28792569659443\u0026zS\u003d2017-10-09\u0026zFS\u003d\u0026zU\u003d2021-04-04\u0026zMG\u003dundefined\u0026zFTF\u003dcommit\u0026zFGS\u003dgroupByRepos\u0026zFR\u003dfalse), if you hover the mouse over the commit title `README: add acknowledgements section (#978)`, there is no corresponding tooltip shown, but when you click on the commit title, you will be redirected to a different site to see the commit details.","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"-"},"content":" \u003c/box\u003e","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"-"},"content":" **Your Task**","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"-"},"content":" Make corresponding changes to `zoom panel` so that in step 3, when hovering your mouse over the commit title, a tooltip saying `Click to view the detailed file changes in the commit` will show up on the commit title.","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 1\"\u003e","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"-"},"content":" Try to locate where the commit title is in [`c-zoom.vue`](https://github.com/reposense/RepoSense/blob/master/frontend/src/views/c-zoom.vue).","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 2\"\u003e","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"-"},"content":" You can check how tooltip is added for other icons in [`c-zoom.vue`](https://github.com/reposense/RepoSense/blob/master/frontend/src/views/c-zoom.vue).","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 3\"\u003e","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"-"},"content":" Check what `selectedCommits` does and how the link and commit title of each commit is retrieved.","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Suggested solution\"\u003e","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"-"},"content":" There is more than 1 way to achieve this. One solution is shown as the following:","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"-"},"content":" 1. In `c-zoom.vue`, locate the section that iterates through each `day` in `selectedCommits`.","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"-"},"content":" 2. The component that helps render the commit message title should be an `a` tag which uses the `getSliceLink` method to set the link to the commit details and uses `slice.messageTitle` to show the commit message title.","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"-"},"content":" 3. Wrap the `a` tag in a new `tooltip`.","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"-"},"content":" 4. In the `tooltip`, add the following content to show the tooltip message.","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"-"},"content":" span.tooltip-text Click to view the detailed file changes in the commit","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"-"},"content":"\u003c/panel\u003e","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"-"},"content":"This is only for your practice. There is no need for you to commit this change and submit it in a pull request.","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"-"},"content":"{{ step(4) }} **Next Step**","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"-"},"content":"You can now proceed to learn the [contributing workflow](workflow.html).","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"-"},"content":"## DevOps","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"supermii2"},"content":"If you want to understand and contribute to the DevOps aspect of RepoSense, you can refer to the [DevOps guide](devOpsGuide.html) for more information.","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":13,"supermii2":1,"sopa301":1,"-":473}},{"path":"docs/dg/projectManagement.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Project management\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"This page contains information about project management tasks. The target audience is senior developers (and above).","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"## Merging PRs","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"* **Use the \u0027squash and merge\u0027 option** unless the situation warrants a different option.","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"* **For the merge commit**, follow conventions at [_GitHub conventions_ @SE-EDU](https://se-education.org/guides/conventions/github.html).","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"## Making a release on GitHub","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"Before making a release, please check the following prerequisites:","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":"* Ensure that you have **JDK `11`** installed (\u003d\u003dNot other major release versions such as **JDK `12`** or **JDK `13`**\u003d\u003d).","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"* Ensure that the `JAVA_HOME` environment variable is correctly set to your JDK installation directory. You can refer to the [JDK Installation Guide](https://docs.oracle.com/cd/E19182-01/821-0917/inst_jdk_javahome_t/index.html).","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"* Ensure that you have merged the [upstream](https://github.com/RepoSense/reposense) `master` branch into both the local and upstream `release` branch according to the following steps:","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" 1. In your local repository, reset your `master` branch to be exactly the same as the upstream `master` branch.","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" 1. Switch to the local `release` branch, and merge the `master` branch into it with `git merge master --no-ff` (no fast forward to keep the commit history for releases).","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" 1. Push the local `release` branch directly to the [upstream `release` branch](https://github.com/reposense/RepoSense/tree/release) (make sure you have the push access).","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"To make a release for RepoSense on GitHub, please follow the `Creating a release` section in the [GitHub Docs](https://docs.github.com/en/github/administering-a-repository/managing-releases-in-a-repository).\u003cbr\u003e","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"Take note of the following when making the release according to the above guide:","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"* When entering a release version number, use semantic versioning with some small tweaks:","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" * Use `MAJOR.MINOR` as the version number when the release includes new features and/or major changes.","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" * Use `MAJOR.MINOR.PATCH` as the version number when the release only includes bug fixes and/or minor changes.","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" * Append `rc` to the version number to indicate that the release is a pre-release that is not ready to be used in production.","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"* Enter the release title as `RepoSense vxxx` where `xxx` is the version number. Enter the release description by referring to the previous [RepoSense releases](https://github.com/reposense/RepoSense/releases).","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"* Before launching the release, generate the `RepoSense.jar` file and attach it to the release.","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" 1. Switch to the `release` branch.","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" 1. In the terminal, change the directory to the project root directory.","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"asdfghjkxd"},"content":" 1. Run `gradlew --version` to check that the JDK version is 11.","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" 1. Run `gradlew shadowJar`, and the Jar file will be generated at `{buildDir}/jar/`.","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" 1. Check that the Jar file is working. You may need to check that the report can be generated from the Jar file both locally and remotely by following the [Generating Reports Guide](../ug/generatingReports.html).","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"After making the release, please also remember to deploy the production website using the [deploy guide](#deploying-the-production-website).","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"## Deploying the production website","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"We have two versions of the website:","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"1. **Production website** at https://reposense.org","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" * matches the latest released version","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" * deployed manually after each new release","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"1. **Dev website** at https://reposense.org/RepoSense","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" * matches the latest `master` branch","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" * deployed automatically by Travis whenever the `master` branch is updated","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"The production website differs from the dev website in some ways, e.g.,","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"* It has a `CNAME` file (to indicate that it is the target destination for the `reposense.org` domain name)","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"* Its DG pages show a warning that it is not the latest version of the DG.","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"MarkBind mainly manages these variations via the `site.config` file. That is why the `site.config` file in the `release` branch is slightly different from the one in the `master` branch.","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"After each release, do the following steps to deploy the production website:","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"1. Switch to the `release` branch","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"1. `cd docs`","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"1. `markbind build`","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"1. `markbind deploy` (make sure you have the push access to https://github.com/reposense/reposense.github.io)","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"1. After a few minutes, check https://reposense.org to ensure it has been updated as intended.","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"## Hot patching after the release","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"If critical bugs are found in the release, take the following steps to hot patch it:","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"1. Switch to the `release` branch.","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"1. Implement the fixes, commit them, and create a pull request from your forked `release` branch to the upstream `release` branch.","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"1. After merging, release a new version of RepoSense with the `release` branch according to the above guide.","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"1. Merge the `release` branch back into the `master` branch by creating a separate pull request.","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":85}},{"path":"docs/dg/settingUp.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Setting up\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"{% from \u0027scripts/macros.njk\u0027 import embed with context %}","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"**Prerequisites:**","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"* **JDK `11.0.21+9`** up to **`17`** ([download :fas-download:](https://www.oracle.com/technetwork/java/javase/downloads/index.html)).","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"sopa301"},"content":"* **Node.js** **`18`** up to the latest minor version of **`19`** ([download :fas-download:](https://www.npmjs.com/get-npm)).","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"* **git `2.23`** or later ([download :fas-download:](https://git-scm.com/downloads)).","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" \u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"supermii2"},"content":" Type `java -version`, `node -v` and `git --version` respectively on your OS terminal and ensure that you have the correct version of each prerequisite installed.","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" \u003c/box\u003e","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"## Getting the code","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"1. **Fork** the [reposense/reposense](https://github.com/reposense/RepoSense) repo.","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"1. **Clone** the fork to your computer.","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"## Setting up the IDE","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"warning\" seamless\u003e","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"The recommended IDE is **Intellij IDEA**. While it is not compulsory to use it, note that we will not be able to help you troubleshoot IDE problems if you use any other IDE.","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"1. **Ensure you have configured IDEA for the correct JDK**, as explained in [this tutorial](https://se-education.org/guides/tutorials/intellijJdk.html).","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"1. **Import the project as a Gradle project**, as explained in [this tutorial](https://se-education.org/guides/tutorials/intellijImportGradleProject.html).","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"## Verifying the setup","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"This project is already configured to use Gradle for build automation. If you are new to Gradle, see [this tutorial](https://se-education.org/guides/tutorials/gradle.html) to learn how to use it.","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"1. Open a command prompt and navigate to the project root.","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"1. Run `gradlew clean build` (`./gradlew clean build` if you on a Unix-like OS), and ensure that it finishes with a `BUILD SUCCESSFUL` message.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"1. Run the tests using the `gradlew test systemtest` command and ensure it succeeds too.","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"1. You can also try running the app using code, as given in the panel below.","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"{{ embed(\u0027Developer guide → **Workflow → Running the app from code**\u0027, \u0027workflow.md#section-running-from-code\u0027, level\u003d2) }}","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"## Before you start coding","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"... read the [Workflow](workflow.html) section.","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"supermii2":1,"sopa301":1,"-":53}},{"path":"docs/dg/styleGuides.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Appendix: Style guides\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"Our coding standards are mostly based on those at [se-education.org/guides](https://se-education.org/guides).","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"* [**CSS** coding standard](https://se-education.org/guides/conventions/css.html)","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"* [**Files/folders** naming conventions](https://se-education.org/guides/conventions/files.html)","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"* [**HTML** coding standard](https://se-education.org/guides/conventions/html.html)","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"* [**Markdown/MarkBind** coding standard](https://se-education.org/guides/conventions/markdown.html)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"* [**Java** coding standard](https://se-education.org/guides/conventions/java/index.html)","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"* [**JavaScript** coding standard](https://se-education.org/guides/conventions/javascript.html)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"* **TypeScript**: In addition to the JavaScript coding standard, follow the [**recommended ESLint rules**](https://typescript-eslint.io/rules/) and the formatting rules [described below](#typescript-specific-formatting).","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"* **Vue Components**: Follow the [**Vue style guide**](https://vuejs.org/style-guide/), up to the **Recommended** section.","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"* **Documentation**: Follow the [**Google developer documentation style guide**](https://developers.google.com/style).","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"## Note on Ternary Operators:","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"Ternary operators can be used to shorten if-else blocks such as this:","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":"```java","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"LocalDateTime min \u003d ARBITRARY_FIRST_COMMIT_DATE_UTC.withZoneSameInstant(zoneId).toLocalDateTime();","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"if (!commitInfos.isEmpty()) {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" min \u003d commitInfos.get(0).getTime();","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"return min;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"The result would look something like this:","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":"```java","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"return (commitInfos.isEmpty())","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" ? ARBITRARY_FIRST_COMMIT_DATE_UTC.withZoneSameInstant(zoneId).toLocalDateTime()","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" : commitInfos.get(0).getTime();","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"To preserve readability, it is recommended that if-else blocks should only be","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"converted to ternary operators if the resultant code can be kept at most 3 lines long","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"(in accordance to the coding standard).","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"## Additional Javadoc requirements:","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"In addition to what has been mentioned in the [**Java** coding standard (SE-EDU)](https://se-education.org/guides/conventions/java/index.html) and [**Google Java Style Guide**](https://google.github.io/styleguide/javaguide.html), we also stipulate the following standards for Javadoc:","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"* If Javadoc is written for a method, all input parameters should be described in the Javadoc, either in the description with `@code tags` or through `@param` block tags.","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" * If `@param` block tags are used, they must be used for all parameters.","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" * This is not necessary (although still recommended) for methods with `@Override` annotations if Javadoc is used. However, if the method that is being overriden is part of your code and has Javadoc, all parameters must be described.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"Negative Examples:","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"asdfghjkxd"},"content":"```java","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"asdfghjkxd"},"content":"// Not okay (Only mentions zoneId parameter):","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} object adjusted for timezone given by {@code zoneId}.","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"public LocalDateTime adjustTimeZone(LocalDateTime sinceDate, ZoneId zoneId) {","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" //Code here","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"asdfghjkxd"},"content":"// Not okay (@param tag used only for zoneId)","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} object by adjusting {@code sinceDate}","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" * to the timezone given by {@code zoneId}.","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" * @param zoneId The timezone ID to adjust the sinceDate to.","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"public LocalDateTime adjustTimeZone(LocalDateTime sinceDate, ZoneId zoneId) {","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" //Code here","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"Positive Example #1:","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"asdfghjkxd"},"content":"```java","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"asdfghjkxd"},"content":"// Okay (No @param tags):","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} object by adjusting {@code sinceDate}","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" * to the timezone given by {@code zoneId}.","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"public LocalDateTime adjustTimeZone(LocalDateTime sinceDate, ZoneId zoneId) {","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" //Code here","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"Positive Example #2:","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"asdfghjkxd"},"content":"```java","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"asdfghjkxd"},"content":"// Okay (@param tags used for all inputs):","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} object by adjusting {@code sinceDate}","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" * to the timezone given by {@code zoneId}.","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" * @param sinceDate The date prior to the timezone conversion.","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" * @param zoneId The timezone ID to adjust the sinceDate to.","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"public LocalDateTime adjustTimeZone(LocalDateTime sinceDate, ZoneId zoneId) {","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" //Code here","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"* Within the main code, if an exception is thrown in a method (both header and body) for which Javadoc is written, a `@throws` tag must be used to describe how the exception is likely to arise.","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" * This requirement does not apply to test code.","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" * One `@throws` tag per unique exception.","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" * The order of exceptions in the `@throws` tag block should match that of the method\u0027s `throws` statement.","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"asdfghjkxd"},"content":"```java","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"asdfghjkxd"},"content":"// Not okay (order of exceptions in tag block and method signature do not match):","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} object from {@code dateString}.","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" * @throws ParseException if {@code dateString} cannot be parsed.","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" * @throws NullPointerException if {@code dateString} is null.","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"public LocalDateTime parseDate(String dateString) throws NullPointerException, ParseException {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" String trimmedString \u003d dateString.toUpperCase(); // NullPointerException may happen here.","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" // Code here","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"asdfghjkxd"},"content":"// Should be:","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} object from {@code dateString}.","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" * @throws NullPointerException if {@code dateString} is null.","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" * @throws ParseException if {@code dateString} cannot be parsed.","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":"public LocalDateTime parseDate(String dateString) throws NullPointerException, ParseException {","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" String trimmedString \u003d dateString.toUpperCase(); // NullPointerException may happen here.","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" // Code here","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"## TypeScript specific formatting","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"For TypeScript specific code, such as within an `interface` or type annotations, we also stipulate the following standards:","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":"* Use semicolons as delimiters for TypeScript interfaces and types.","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"Negative Examples:","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"```typescript","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"// missing semicolon delimiter","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":"interface Foo {","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" name: string","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" greet(): string","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"// using incorrect delimiter","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"interface Foo {","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" name: string,","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" greet(): string,","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":"Positive Example:","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"```typescript","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":"// semicolon delimiter","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"interface Foo {","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" name: string;","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" greet(): string;","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":"* For type annotations, use a space after but not before.","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"Negative Examples:","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"```typescript","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"let foo:string \u003d \"bar\";","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"let foo :string \u003d \"bar\";","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":"let foo : string \u003d \"bar\";","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"function foo():string {}","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"function foo() :string {}","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"function foo() : string {}","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":"class Foo {","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" name:string;","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"class Foo {","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" name :string;","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":"class Foo {","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" name : string;","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"Positive Examples:","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":"```typescript","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":"let foo: string \u003d \"bar\";","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":"function foo(): string {}","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":"class Foo {","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" name: string;","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"```","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":12,"-":174}},{"path":"docs/ug/blurbs.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/RepoSense/tree/cypress","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"Cypress branch of RepoSense","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003e------------------------------------","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/publish-RepoSense/tree/master","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"Publishing branch of RepoSense","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":5}},{"path":"docs/ug/cli.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Appendix: CLI syntax reference\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"The command `java -jar RepoSense.jar` takes several flags.","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"\u003cbox\u003e","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"**Examples**:","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"An example of a command using most parameters:\u003cbr\u003e","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"`java -jar RepoSense.jar --repos https://github.com/reposense/RepoSense.git --output ./report_folder --since 31/1/2017 --until 31/12/2018 --formats java adoc xml --view --ignore-standalone-config --last-modified-date --timezone UTC+08 --find-previous-authors --analyze-authorship --originality-threshold 0.66`","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"Same command as above but using most parameters in alias format:\u003cbr\u003e","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"`java -jar RepoSense.jar -r https://github.com/reposense/RepoSense.git -o ./report_folder -s 31/1/2017 -u 31/12/2018 -f java adoc xml -v -i -l -t UTC+08 -F -A -ot 0.66`","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"The section below provides explanations for each of the flags.","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"\u003c!-- --------------------------◘---------------------------------------------------------------------------- --\u003e","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"### `--analyze-authorship`, `-A`","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"**`--analyze-authorship`**: Performs further analysis to distinguish between partial and full credit attribution for","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"lines of code assigned to the author.","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"* Default: this feature is turned ***off*** by default and the author will receive partial credits for all lines of","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" code, as the code lines are at least partial credit but may not qualify for full credit.","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"* Alias: `-A` (upper case)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"* Example: `--analyze-authorship` or `-A`","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"A darker background colour represents full credit, while a lighter background colour represents partial credit.","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"If the code is attributed to a different author by the user via `@@author` tag, then the new author will be given","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"partial credit.","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"### `--assets`, `-a`","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"\u003cdiv id\u003d\"section-assets\"\u003e","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"**`--assets ASSETS_DIRECTORY`**: Specifies where to place assets for report generation.","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"sopa301"},"content":"* Parameter: `ASSETS_DIRECTORY` The directory containing the assets files. A `favicon.ico` file can be placed here to customize the favicon of the dashboard, while a `title.md` file can be placed to customize the [title](https://reposense.org/ug/customizingReports.html#add-a-title) of the report using [Markdown syntax](https://www.markdownguide.org/basic-syntax/).","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"* Alias: `-a`","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"* Example: `--assets ./assets` or `-a ./assets`","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"* If `--assets` is not specified, RepoSense looks for assets in the `./assets` directory.","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":"\u003c!-- --------------------------◘---------------------------------------------------------------------------- --\u003e","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"### `--config`, `-c`","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"\u003cdiv id\u003d\"section-config\"\u003e","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"**`--config CONFIG_DIRECTORY`**: Specifies that config files located in `CONFIG_DIRECTORY` should be used to customize the report.","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"asdfghjkxd"},"content":"* Parameter: `CONFIG_DIRECTORY` The directory containing the config files. Should contain a `repo-config.csv` file. Optionally, can contain an `author-config.csv` file or/and a `group-config.csv` file or/and a `report-config.json` file or/and a `blurbs.md` file.","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"* Alias: `-c`","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"* Example: `java -jar RepoSense.jar --config ./config`","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"* Cannot be used with `--repos`. The `--repos` flag will take precedence over this flag.","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"* If both `--repos` and `--config` are not specified, RepoSense looks for config files in the `./config` directory.","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"* Config files must follow [this](./configFiles.html) format.","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"### `--formats`, `-f`","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"**`--formats LIST_OF_FORMATS`**: Specifies which file extensions to be included in the analysis.","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"* Parameter: `LIST_OF_FORMATS` A space-separated list of file extensions that should be included in the analysis.\u003cbr\u003e","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" Default: all file formats","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":"* Alias: `-f`","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":"* Example:`--formats css fxml gradle` or `-f css fxml gradle`","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"Binary file formats, such as `jpg`, `png`,`exe`,`zip`, `rar`, `docx`, and `pptx`, all will be labelled as the file type `binary` in the generated report.","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"### `--find-previous-authors`, `-F`","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"**`--find-previous-authors`**: Utilizes Git blame\u0027s ignore revisions functionality, RepoSense will attempt to blame the line changes caused by commits in the ignore commit list to the previous authors who altered those lines (if available).","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"* Default: RepoSense will assume that no authors are responsible for the code changes in the lines altered by commits in the ignore commit list.","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"* Alias: `-F` (uppercase F)","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"* Example:`--find-previous-authors` or `-F`","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"### `--help`, `-h`","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"**`--help`**: Shows the help message.","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"* Alias: `-h`","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"Cannot be used with any other flags. This flag takes precedence over all other flags.","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"### `--ignore-standalone-config`, `-i`","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"**`--ignore-standalone-config`**: Specifies that the standalone config file in the repo should be ignored.","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"* Default: the standalone config file is not ignored","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"* Alias: `-i`","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":"* Example:`--ignore-standalone-config` or `-i`","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":"This flag overrides the `Ignore standalone config` field in the CSV config file.","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":"### `--ignore-filesize-limit`, `-I`","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"**`--ignore-filesize-limit`**: Specifies that the file size limit (both default and user-defined) should be ignored during the analysis.","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"* Default: the file size limit is not ignored","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"* Alias: `-I`","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"* Example:`--ignore-filesize-limit` or `-I`","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":"All files are subject to a default file size limit or a custom size limit set by the user. Most files should not be","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"affected by the default size limit. This flag can be useful for including files in your report that are affected by","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":"the size limit. Note that this flag may result in large report sizes and/or slower report generation.","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":"This flag overrides the `Ignore file size limit` field in the CSV config file.","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"### `--last-modified-date`, `-l`","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"**`--last-modified-date`**: Specifies that the last modified date of each line of code should be added to `authorship.json`.","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"* Default: the last modified date of each line of code will not be added to `authorship.json`","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":"* Alias: `-l` (lowercase L)","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"* Example:`--last-modified-date` or `-l`","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"* Cannot be used with `--shallow-cloning`. This may result in an incorrect last modified date.","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":"* The last modified dates will be in the same timezone specified with the `--timezone` flag.","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"### `--originality-threshold`, `-ot`","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"**`--originality-threshold [VALUE]`**: Specifies the cut-off point for partial and full credit","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":"in `--analyze-authorship`. Author will be given full credit if their contribution exceeds this threshold, else partial","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":"credit is given.","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":"* Parameter: `VALUE` Optional. Acceptable range: [0.0, 1.0].\u003cbr\u003e","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" Default: `0.51`","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":"* Alias: `-ot`","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":"* Example: `--originality-threshold 0.66` or `-ot 0.66`","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":"* Requires `--analyze-authorship` flag.","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":"* An author\u0027s contribution, or `originality score`, is calculated using Levenshtein Distance (Edit Distance) algorithm.","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" We compare the difference between current code line and its previous versions.","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"### `--output`, `-o`","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"**`--output OUTPUT_DIRECTORY`**: Indicates where to save the report generated.","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":"* Parameter: `OUTPUT_DIRECTORY` The location for the generated `reposense-report` folder.\u003cbr\u003e","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" Default: current directory","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":"* Alias: `-o`","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":"* Example: `--output ./foo` or `-o ./foo` (the report will be in the `./foo/reposense-report` folder)","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":"### `--period`, `-p`","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":"**`--period PERIOD`**: Specifies the period of analysis window.","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":"* Parameter: `PERIOD` The period of analysis window, in the format `nd` (for n days) or `nw` (for n weeks). It is used to calculate end date if only start date is specified, or calculate end date if only start date is specified.","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":"* Alias: `-p`","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":"* Example: `--period 30d` or `--period 4w`","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":"* If both start date and end date are not specified, the date of generating the report will be taken as the end date.","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":"* May analyze the incorrect date range if used with `--since d1`. The program will throw a warning.","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"* Cannot be used with both `--since` and `--until`. The program will throw an exception.","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":"### `--repo`, `--repos`, `-r`","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":"**`--repo REPO_LOCATION`**: Specifies which repositories to analyze.","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"* Parameter: `REPO_LOCATION` A list of URLs or the disk location of the git repositories to analyze, separated by spaces.","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":"* Alias: `-r`","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":"* Examples:","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" * `--repos https://github.com/reposense/RepoSense.git`","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" * `--repo https://github.com/reposense/RepoSense.git c:/myRepose/foo/bar`: analyzes the two specified repos (one remote, one local) and generates one report containing details of both.","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":"Cannot be used with `--config`. This flag takes precedence over `--config`.","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":"### `--shallow-cloning`, `-S`","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":"**`--shallow-cloning`**: Clones repositories using Git\u0027s shallow cloning functionality, which can significantly reduce the time taken to clone large repositories. However, the flag should not be used for smaller repositories where the `.git` file is smaller than 500 MB, as it would create overhead.","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":"* Default: RepoSense does not clone repositories using Git\u0027s shallow cloning functionality.","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":"* Alias: `-S` (uppercase S)","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":"* Example:`--shallow-cloning` or `-S`","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":"Cannot be used with `--last-modified-date`. This may result in an incorrect last modified date.","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":"### `--since`, `-s`","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":"**`--since START_DATE`**: Specifies the start date for the period to be analyzed.","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":"* Parameter: `START_DATE` The first day of the period to be analyzed, in the format `DD/MM/YYYY`.\u003cbr\u003e","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" Default: one month before the current date","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":"* Alias: `-s`","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":"* Example:`--since 21/10/2017` or `-s 21/10/2017`","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":"* If the start date is not specified, only commits made one month before the end date (if specified) or the date of generating the report, will be captured and analyzed.","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":"* If `d1` is specified as the start date (`--since d1` or `-s d1`), then the program will search for the earliest commit date of all repositories and use that as the start date.","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":"* If `d1` is specified together with `--period`, then the program will warn that the date range being analyzed may be incorrect.","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":"### `--timezone`, `-t`","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":"**`--timezone ZONE_ID`**: Indicates the timezone to be used for the analysis.","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":"* Parameter: `ZONE_ID` The timezone in the format `ZONE_ID[±hh[mm]]`.\u003cbr\u003e","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" Default: system\u0027s default timezone","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":"* Alias: `-t`","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":"* Example:`--timezone UTC+08` or `-t UTC-1030`","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":"### `--until`, `-u`","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":"**`--until END_DATE`**: Specifies the end date of the analysis period.","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":"* Parameter: `END_DATE` The last date of the period to be analyzed, in the format `DD/MM/YYYY`.\u003cbr\u003e","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" Default: current date","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":"* Alias: `-u`","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":"* Example:`--until 21/10/2017` or `-u 21/10/2017`","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":"Note: If the end date is not specified, the date of generating the report will be taken as the end date.","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":"### `--version`, `-V`","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":"**`--version`**: Shows the version of RepoSense.","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":"* Alias: `-V` (upper case)","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":"Cannot be used with any other flags. This flag takes precedence over all other flags other than `--help`.","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":"### `--view`, `-v`","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":"**`--view [REPORT_FOLDER]`**: Specifies that the report should be opened in the default browser.","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":"* Parameter: `REPORT_FOLDER` Optional. If specified, no analysis will be performed and the report specified by the argument will be opened.\u003cbr\u003e","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" Default: `./reposense-report`","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":"* Alias: `-v`","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":"* Example:`--view` or `-v`","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"sopa301":1,"-":300}},{"path":"docs/ug/configFiles.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Appendix: Config files format\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"{% set mandatory %}\u003cspan class\u003d\"badge bg-danger\"\u003emandatory\u003c/span\u003e{% endset %}","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"{% from \u0027scripts/macros.njk\u0027 import embed with context %}","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"Given below are the details of the various config files used by RepoSense.","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"**RepoSense ignores the order of column headers in the CSV config files. However, the spelling of the column headers must match the specified headers exactly, or the column would be ignored by RepoSense.**","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"**A value in a config file is optional to provide unless it is specified as {{ mandatory }}**.","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"## `repo-config.csv`","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"**`repo-config.csv` file contains repo-level config data.** Each row represents a repository\u0027s configuration ([example](repo-config.csv)).","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"| Column Name | Explanation |","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"|-------------|-------------|","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"| Repository\u0027s Location {{ mandatory }} | The `Remote Repo URL` or `Disk Path` to the git repository e.g., `https://github.com/foo/bar.git` or `C:\\Users\\user\\Desktop\\GitHub\\foo\\bar` |","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"| Branch | The branch to analyze in the target repository e.g., `master`. Default: the default branch of the repo |","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"| File formats\u003csup\u003e*+\u003c/sup\u003e | The file extensions to analyze. Binary file formats, such as `png` and `jpg`, will be automatically labelled as the file type `binary` in the generated report. Default: all file formats |","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"| Find Previous Authors | Enter **`yes`** to utilize Git blame\u0027s ignore revisions functionality, RepoSense will attempt to blame the line changes caused by commits in the ignore commit list to the previous authors who altered those lines (if available). |","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"| Ignore Glob List\u003csup\u003e*+\u003c/sup\u003e | The list of file path globs to ignore during analysis for each author e.g., `test/**;temp/**`. Refer to the [_glob format_](https://docs.oracle.com/javase/tutorial/essential/io/fileOps.html#glob) for the path glob syntax. |","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"| Ignore standalone config | To ignore the standalone config file (if any) in target repository, enter **`yes`**. If the cell is empty, the standalone config file in the repo (if any) will take precedence over configurations provided in the csv files. |","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"| Ignore Commits List\u003csup\u003e*+\u003c/sup\u003e | The list of commits to ignore during analysis. For accurate results, the commits should be provided with their full hash. Additionally, a range of commits can be specified using the `..` notation e.g. `abc123..def456` (both inclusive). |","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"| Ignore Authors List\u003csup\u003e*+\u003c/sup\u003e | The list of authors to ignore during analysis. Authors should be specified by their [Git Author Name](#a-note-about-git-author-name). |","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"| Shallow Cloning | Enter **`yes`** to clone the repository using Git\u0027s shallow cloning functionality. This option can significantly reduce the time taken to clone large repositories. However, the option should ideally be disabled for smaller repositories where the `.git` file is smaller than 500 MB, as it would create overhead. |","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"| File Size Limit\u003csup\u003e+\u003c/sup\u003e | Enter a file size limit for the repository in bytes as a single number without units (for a size limit of 1MB for example, enter 1000000). This file size limit will override the default file size limit (500KB). Files exceeding the file size limit will be marked as ignored and only the file name and line count will be reflected in the report. |","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"| Ignore File Size Limit | Enter **`yes`** to ignore both the default file size limit and the file size limit possibly set by the user in `repo-config.csv`. |","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"| Skip Ignored File Analysis | Enter **`yes`** to ignore analysis of files exceeding the file size limit entirely. If file analysis is skipped, all information about the file will be omitted from the generated report. This option can significantly improve report generation time. |","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"The Shallow Cloning option is incompatible with the \"--last-modified-date\" CLI flag.","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"If Ignore File Size Limit is yes, the File Size Limit and Skip Ignored File Analysis columns are ignored.","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"\u003csup\u003e* **Multi-value column**: multiple values can be entered in this column using a semicolon `;` as the separator.\u003c/sup\u003e\u003c/br\u003e","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"\u003csup\u003e+ **Overrideable column**: prepend with `override:` to use entered value(s) instead of value(s) from standalone config.\u003c/sup\u003e","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"When using [standalone config](#config-json-standalone-config-file) (if it is not ignored), it is possible to override specific values from the standalone config by prepending the entered value with `override:`.","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"## `author-config.csv`","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"Optionally, you can use an `author-config.csv` (which should be in the same directory as the `repo-config.csv` file) to provide more details about the authors to analyze ([example](author-config.csv)). It should contain the following columns:","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"| Column Name | Explanation |","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"|--------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"| Repository\u0027s Location\u003csup\u003e*\u003c/sup\u003e | Same as `repo-config.csv`. Default: all the repos in `repo-config.csv`. |","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"| Branch | The branch to analyze for this author, e.g., `master`. Default: the author will be bound to all the repos in `repo-config.csv` that has the same repo\u0027s location, regardless of branch. |","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"| Author\u0027s Git Host ID\u003csup\u003e#\u003c/sup\u003e {{ mandatory }} | Username of the target author\u0027s profile on GitHub, GitLab or Bitbucket, e.g.`JohnDoe`. |","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"| Author\u0027s Emails\u003csup\u003e*\u003c/sup\u003e | Associated emails of the author. For GitHub users, this can be found in your [GitHub settings](https://github.com/settings/emails). |","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"| Author\u0027s Display Name | The name to display for the author. Default: author\u0027s username. |","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"| Author\u0027s Git Author Name\u003csup\u003e*\u003c/sup\u003e | The meaning of _Git Author Name_ is explained in [_A note about git author name_](#a-note-about-git-author-name). |","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"| Ignore Glob List\u003csup\u003e*\u003c/sup\u003e | Files to ignore for this author, in addition to files ignored by the patterns specified in `repo-config.csv`. The path glob syntax is the same as that of Ignore Glob List in `repo-config.csv`. |","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"\u003csup\u003e* **Multi-value column**: multiple values can be entered in this column using a semicolon `;` as the separator.\u003c/sup\u003e","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"\u003c/br\u003e","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"\u003csup\u003e# For backward compatibility, `Author\u0027s GitHub ID` is still accepted as the header in place of `Author\u0027s Git Host ID`.\u003c/sup\u003e","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"If `author-config.csv` is not given and the repo has not provided author details in a standalone config file, all the authors of the repositories within the date range specified (if any) will be analyzed.","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"`author-config.csv` has some advanced syntax that can help to reduce duplication of the author\u0027s information. The syntax guide is given below:","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"{{ embed(\"Appendix: `author-config.csv` advanced syntax\", \"authorConfigSyntax.md\") }}","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"## `group-config.csv`","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"Optionally, you can provide a `group-config.csv`(which should be in the same directory as `repo-config.csv` file) to provide details on any custom groupings for files in specified repositories ([example](group-config.csv)). It should contain the following columns:","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"| Column Name | Explanation |","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"|-------------|-------------|","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":"| Repository\u0027s Location | Same as `repo-config.csv`. Default: all the repos in `repo-config.csv` |","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"| Group Name {{ mandatory }} | Name of the group, e.g.,`test`. |","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":"| Globs * {{ mandatory }} | The list of file path globs to include for specified group, e.g.,`**/test/*;**.java`. |","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"\u003csup\u003e* **Multi-value column**: multiple values can be entered in this column using a semicolon `;` as the separator.\u003c/sup\u003e","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"Note that a file in a given repository should only be tagged to one group. \u003cbr\u003e","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"e.g.: `example.java` in `example-repo` can either be in the `test` group or the `code` group, but not in both `test` and `code` group. If multiple groups are specified for a given file, the latter group (i.e., `code` group) is set for the file.","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":"## `report-config.json`","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"You can optionally use `report-config.json` to customize report generation by providing the following information. ([example](report-config.json))","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"**Fields to provide**:","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"* `title`: Title of the generated report, which is also the title of the deployed dashboard. Default: \"RepoSense Report\"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"\u003cdiv id\u003d\"section-standalone\"\u003e","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":"## `config.json` (standalone config file)","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"Repo owners can provide the following additional information to RepoSense using a config file that we call the **_standalone config file_**:","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"* which files/authors/commits to analyze/omit","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":"* which git and git host usernames belong to which authors","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"* the display of an author","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"To use this feature, add a `_reposense/config.json` to the root of your repo using the format in the example below ([another example](https://github.com/reposense/RepoSense/blob/master/_reposense/config.json)) and **commit it** (reason: RepoSense can see committed code only):","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":"```json {.no-line-numbers}","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"{","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" \"ignoreGlobList\": [\"about-us/**\", \"**index.html\"],","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" \"formats\": [\"html\", \"css\"],","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" \"ignoreCommitList\": [\"90018e49f129ce7e0abdc8b18e91c9813588c601\", \"67890def\", \"abc123..def456\"],","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" \"ignoreAuthorList\": [\"charlie\"],","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" \"authors\":","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" [","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" \"gitId\": \"alice\",","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" \"emails\": [\"alice@example.com\", \"alicet@example.com\"],","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" \"displayName\": \"Alice T.\",","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" \"authorNames\": [\"AT\", \"A\"],","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" \"ignoreGlobList\": [\"**.css\"]","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" \"gitId\": \"bob\"","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" ]","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":"Note: all fields are optional unless specified otherwise.","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":"**Fields to provide _repository-level_ info**:","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"* `ignoreGlobList`: Folders/files to ignore, specified using the [_glob format_](https://docs.oracle.com/javase/tutorial/essential/io/fileOps.html#glob).","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"* `formats`: File formats to analyze. Binary file formats, such as `png` and `jpg`, will be automatically labelled as the file type `binary` in the generated report. Default: all file formats","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"* `ignoreCommitList`: The list of commits to ignore during analysis. For accurate results, the commits should be provided with their full hash. Additionally, a range of commits can be specified using the `..` notation e.g. `abc123..def456` (both inclusive).","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"* `ignoreAuthorList`: The list of authors to ignore during analysis. Authors specified in `authors` field or `author-config.csv` will be also be omitted if they are in this list. Authors should be specified by their [Git Author Name](#a-note-about-git-author-name).","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"* `fileSizeLimit`: A file size limit for the repository in bytes as a single number without units, that will override the default file size limit. If not specified, the default file size limit will continue to be used.","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"**Fields to provide _author-level_ info**:\u003cbr\u003e","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"Note: `authors` field should contain _all_ authors that should be captured in the analysis.","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"* `gitId`: Username of the author. {{ mandatory }} field.","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"* `emails`: Associated git emails of the author. For GitHub, this can be found in your [GitHub settings](https://github.com/settings/emails).","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"* `displayName`: Name to display on the report for this author.","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":"* `authorNames`: Git Author Name(s) used in the author\u0027s commits. By default, RepoSense assumes an author would use their remote Git Host username as the Git username too. The meaning of _Git Author Name_ is explained in [_A note about git author name_](#a-note-about-git-author-name).","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"* `ignoreGlobList`: _Additional_ (i.e. on top of the repo-level `ignoreGlobList`) folders/files to ignore for a specific author. The path glob syntax is specified by the [_glob format_](https://docs.oracle.com/javase/tutorial/essential/io/fileOps.html#glob). In the example above, the actual `ignoreGlobList` for `alice` would be `[\"about-us/**\", \"**index.html\", \"**.css\"]`.","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"To verify your standalone configuration is as intended, add the `_reposense/config.json` to your local copy of repo and run RepoSense against it as follows:\u003cbr\u003e","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"* Format: `java -jar RepoSense.jar --repo LOCAL_REPO_LOCATION` \u003cbr\u003e","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"* Example: `java -jar RepoSense.jar --repo c:/myRepose/foo/bar`\u003cbr\u003e","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"After that, view the report to see if the configuration you specified in the config file is being reflected correctly in the report.","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":"## A note about git author name","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"`Git Author Name` refers to the customizable author\u0027s display name set in the local `.gitconfig` file. For example, in the Git Log\u0027s display:","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":"``` {.no-line-numbers}","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"...","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":"commit cd7f610e0becbdf331d5231887d8010a689f87c7","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":"Author: ConfiguredAuthorName \u003cauthor@example.com\u003e","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"Date: Fri Feb 9 19:14:41 2018 +0800","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" Make some changes to show my new author\u0027s name","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":"commit e3f699fd4ef128eebce98d5b4e5b3bb06a512f49","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"Author: ActualGitHostId \u003cauthor@example.com\u003e","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"Date: Fri Feb 9 19:13:13 2018 +0800","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" Initial commit","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" ...","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":"`ActualGitHostId` and `ConfiguredAuthorName` are both `Git Author Name` of the same author.\u003cbr\u003e","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"To find the author name that you are currently using for your current git repository, run the following command within your git repository:","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"asdfghjkxd"},"content":"``` shell {.no-line-numbers}","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":"git config user.name","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":"To set the author name to the value you want (e.g., to set it to your GitHub username) for your current git repository, you can use the following command ([more info](https://www.git-tower.com/learn/git/faq/change-author-name-email)):","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"asdfghjkxd"},"content":"``` shell {.no-line-numbers}","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":"git config user.name \"YOUR_AUTHOR_NAME”","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":"To set the author name to use a default value you want for future git repositories, you can use the following command:","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"asdfghjkxd"},"content":"``` shell {.no-line-numbers}","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":"git config --global user.name \"YOUR_AUTHOR_NAME”","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":"RepoSense expects the Git Author Name to be the same as author\u0027s username on the Git hosting platform (GitHub, GitLab, BitBucket). If an author\u0027s `Git Author Name` is different from their username on the Git hosting platform, the `Git Author Name` needs to be specified in the standalone config file. If the author has more than one `Git Author Name`, multiple values can be entered too.","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"warning\" seamless\u003e","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":"Note: Symbols such as `\"`, `!`, `/` etc. in your author name will be omitted, which may reduce the accuracy of the analysis if 2 names in the repository are approximately similar.","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"asdfghjkxd"},"content":"\u003cdiv id\u003d\"section-blurbs\"\u003e","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"asdfghjkxd"},"content":"## `blurbs.md`","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"asdfghjkxd"},"content":"You can optionally use `blurbs.md` to add blurbs in Markdown syntax for repository branches. These blurbs will be seen when grouping by `Repo/Branch`. ([example](https://github.com/reposense/RepoSense/blob/master/docs/ug/blurbs.md))","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"asdfghjkxd"},"content":"**Format**:","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"asdfghjkxd"},"content":"* First line in section: Link to the repository branch.","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"asdfghjkxd"},"content":"* Second line onwards: Blurb content.","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"asdfghjkxd"},"content":"* Delimiter: `\u003c!--repo--\u003e`. Everything on the line after the delimiter will be ignored.","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"asdfghjkxd"},"content":"\u003c/div\u003e","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":17,"-":208}},{"path":"docs/ug/customizingReports.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Customizing reports\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"{% from \u0027scripts/macros.njk\u0027 import embed, step with context %}","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"The report can be customized using several ways, as explained below.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"### Customize using CLI flags","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"**The simplest approach is to provide additional flags when running RepoSense.** The various flags are given in the panel below.","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" {{ embed(\"Appendix: **CLI syntax reference**\", \"cli.md\") }}","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"### Customize using CSV config files","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"**Another, more powerful, way to customize the report is by using dedicated config files.** In this case you need to use the `--config` flag instead of the `--repo` flag when running RepoSense, as follows:","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" {{ embed(\"Appendix: **CLI syntax reference → `config` flag**\", \"cli.md#section-config\") }}","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"tip\" seamless\u003e","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"**Managing config files collaboratively**: If you use RepoSense to monitor a large number of programmers, it may be more practical to get the programmers to submit PRs to update the config files as necessary (\u003ctooltip content\u003d\"a coder realizes some of her code is missing from the report because she used multiple git usernames, and wants to add the additional usernames to the config file\"\u003eexample use case\u003c/tooltip\u003e).","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"To ensure that their PRs are correct, you can use [Netlify _deploy previews_](https://www.netlify.com/blog/2016/07/20/introducing-deploy-previews-in-netlify/) to preview how the report would look like after the PR has been merged. More details are in the panels below.","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" {{ embed(\"Appendix: **Using RepoSense with Netlify → Setting up**\", \"withNetlify.md#section-setting-up\") }}","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" {{ embed(\"Appendix: **Using RepoSense with Netlify → PR previews**\", \"withNetlify.md#section-pr-previews\") }}","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"### Get target repos to provide more info","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"**If feasible, you can also customize the target repos to play well with RepoSense** in the following two ways:","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"1\\. Add a _standalone config file_ to the repo to provide more config details to RepoSense. The format of the file is given below.","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" {{ embed(\"Appendix: **Standalone config file format**\", \"configFiles.md#section-standalone\") }}","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"2\\. To have more precise control over which code segment is attributed to which author, authors can annotate their code using `@@author` tags, as explained below.","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" {{ embed(\"Appendix: **Using `@@author` tags**\", \"usingAuthorTags.md\") }}","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"In both instances, it is **necessary to commit any changes** for them to be detected by RepoSense.","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"3\\. Add a git `.mailmap` file at the top-level of the repository, specifying mapped authors/commiters and/or e-mail addresses as per [gitmailmap documentation](https://git-scm.com/docs/gitmailmap). Any mappings specified here will be applied by git before all other RepoSense configurations. Configuration via `.mailmap` is particularly useful if you want the mapping to apply for all git commands as well instead of just for RepoSense.","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"sopa301"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"asdfghjkxd"},"content":"### Personalizing Reports","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"asdfghjkxd"},"content":"#### Add a title","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"sopa301"},"content":"A title component can be added by creating a file titled `title.md` in the assets directory. You can specify the assets directory according to the reference below:","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"sopa301"},"content":"{{ embed(\"Appendix: **CLI syntax reference → `assets` flag**\", \"cli.md#section-assets\") }}","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"sopa301"},"content":"The title can render a combination of Markdown/HTML and plaintext ([example](https://github.com/reposense/RepoSense/blob/master/docs/ug/title.md)), and will appear on the top of the left panel as shown below:","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"sopa301"},"content":"![Title Component Example](../images/title-example.png)","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"sopa301"},"content":"Do note that the width of the title is bound by the width of the left panel.","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"sopa301"},"content":"For more information on how to use Markdown, see the [Markdown Guide](https://www.markdownguide.org/).","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"asdfghjkxd"},"content":"#### Add blurbs for branches","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"asdfghjkxd"},"content":"A blurb can be added for a repository branch by creating a file titled `blurbs.md` in the config directory. The blurbs will be visible when grouping by `Repo/Branch`. The format of the file is given below:","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"asdfghjkxd"},"content":"{{ embed(\"Appendix: **Config files format**\", \"configFiles.md#section-blurbs\") }}","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"asdfghjkxd"},"content":"Specifying the config directory can be done as follows:","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"asdfghjkxd"},"content":"{{ embed(\"Appendix: **CLI syntax reference → `config` flag**\", \"cli.md#section-config\") }}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":9,"sopa301":13,"-":61}},{"path":"docs/ug/generatingReports.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Generating a report\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"{% from \u0027scripts/macros.njk\u0027 import embed with context %}","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"Let\u0027s look at different ways to generate RepoSense reports.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"* **If you have Java on your computer**, the straight-forward way to generate a report is to use the RepoSense executable to generate the report locally on your computer, as explained in the [_Generating reports locally_](#generating-reports-locally) section below.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"* **If you don\u0027t have Java on your computer or do not wish to run the executable on your computer**, some alternatives are provided in the [_Generating reports remotely_](#generating-reports-remotely) section below.","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"RepoSense is built to analyze any type of git repo, remote or local. It works best when analyzing remote repositories hosted on GitHub, GitLab or BitBucket.","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"For other types of repositories, external links are disabled.","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"## Generating reports locally","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"1. **Ensure you have the prerequisites**:","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":" * **Java 11** or later ([download :fas-download:](https://www.java.com/en/)).","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" * **git `2.23`** or later on the command line. ([download :fas-download:](https://git-scm.com/downloads)).\u003cbr\u003e run `git --version` in your OS terminal to confirm the version.","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"1. **Download the latest JAR file** from our [releases](https://github.com/reposense/RepoSense/releases/latest).","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"1. **Generate a report**: The simplest use case for RepoSense is to generate a report for the recent history of a repo.\u003cbr\u003e","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" command: `java -jar RepoSense.jar --repos LIST_OF_REPO_URLS --view`\u003cbr\u003e","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" Examples:","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" * `java -jar RepoSense.jar --repos https://github.com/reposense/RepoSense.git --view` (note the `.git` at the end of the repo URL)","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" * `java -jar RepoSense.jar --repos https://github.com/reposense/RepoSense.git c:/myRepose/foo/bar --view` analyzes the two specified repos (one remote, one local).","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" The above commands will analyze the given repo(s) for commits done within \u003d\u003dthe last month\u003d\u003d and open the report in your default Browser.","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"**To learn how to generate a report using \u003ctooltip content\u003d\"e.g., generate a report for a different period, for specific file types, for specific authors, etc.\"\u003eother settings\u003c/tooltip\u003e**, head over to the [_**Customizing reports**_](customizingReports.html) section.","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"## Generating reports remotely","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"**You can generate a RepoSense report remotely without installing/running anything on your computer.** This is particularly useful when you are deciding whether to adopt RepoSense.","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"**The easiest option is to use Netlify.** The instructions are given below.","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"{{ embed(\"Appendix: **Using RepoSense with Netlify → Setting up**\", \"withNetlify.md#section-setting-up\") }}","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"**You can also use the following options.** While they are more work to set up, they are more suitable as a permanent solution due to their generous free tier.","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"{{ embed(\"Appendix: **Using RepoSense with GitHub Actions → Setting up**\", \"withGithubActions.md#section-setting-up\") }}","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"{{ embed(\"Appendix: **Using RepoSense with Travis → Setting up**\", \"withTravis.md#section-setting-up\") }}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":60}},{"path":"docs/ug/title.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"sopa301"},"content":"# RepoSense","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"sopa301"},"content":"RepoSense is a powerful tool for analyzing repositories. It provides valuable insights into your codebase, helping you understand the development patterns, identify areas for improvement, and track the contributions of individual team members.","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"sopa301"},"content":"## Features","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"sopa301"},"content":"- Repository analysis: Gain a comprehensive overview of your codebase, including commit statistics, file changes, and code ownership.","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"sopa301"},"content":"- Contribution tracking: Easily track the contributions made by each team member, including the number of commits, lines of code added/removed, and more.","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"sopa301"},"content":"- Visualization: Visualize your repository\u0027s history and changes over time through interactive graphs and charts.","isFullCredit":false}],"authorContributionMap":{"sopa301":9}},{"path":"docs/ug/troubleshooting.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Appendix: Troubleshooting\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"### Contributions missing in the ramp chart (but appear in the contribution bar and code panel)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"This is probably a case of giving an incorrect author name alias (or Git ID) in your [author-config file](./configFiles.md#author-config-csv).\u003cbr\u003e","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"Please refer to [A Note About Git Author Name](./configFiles.md#a-note-about-git-author-name) above on how to find out the correct author name you are using and how to change it.\u003cbr\u003e","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"Also, ensure that you have added all author name aliases you may be using (if you are using multiple computers or have previously changed your author name).\u003cbr\u003e","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"Alternatively, you may choose to configure *RepoSense* to track the email associated with your local Git config or remote Git host email in a [standalone config file](./configFiles.md#config-json-standalone-config-file) or [author-config file](./configFiles.md#author-config-csv), which is more accurate compared to author name aliases. For GitHub, the associated email you are using can be found in your [GitHub settings](https://github.com/settings/emails).","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"### Contribution bar and code panel is empty (despite a non-empty ramp chart)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"The contribution bar and code panel records the lines you have authored to the **latest** commit of the repository and branch you are analyzing. As such, it is possible that while you have lots of committed contributions, your final authorship contribution is low. This happens if you have only deleted lines or someone else has overwritten your code and taken authorship for it (currently, RepoSense does not have the functionality to track overwritten lines).\u003cbr\u003e","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"It is also possible that another user has overridden the authorship of your lines using the [@@author tags](./usingAuthorTags.md#appendix-using-author-tags).","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"### RepoSense is not using the standalone config file in my local repository","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"Ensure that you have committed the changes to your standalone config file first before running the analysis, as *RepoSense* is unable to detect uncommitted changes to your local repository.","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"### RepoSense fails on Windows (but works on Linux/Mac OS)","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"Possibly, you may have some file names with [special characters](https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file#naming-conventions) in them, which is disallowed in Windows OS. As such, *RepoSense* is unable to clone your repository fully, thus failing the analysis.","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"### Some file types are not shown in the file type filter even if I have included them in the file formats when generating the report","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"The files of these types may be [binary files](https://en.wikipedia.org/wiki/Binary_file). *RepoSense* will group binary files under one single file type `binary`. Common binary files include images (`.jpg`, `.png`), applications (`.exe`), zip files (`.zip`, `.rar`) and certain document types (`.docx`, `.pptx`).","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"sopa301"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"sopa301"},"content":"### RepoSense doesn\u0027t work on the browser","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"sopa301"},"content":"RepoSense uses ES6, a version of JavaScript widely supported by [most browsers](https://caniuse.com/?search\u003des6). Please use RepoSense with a browser that supports ES6.","isFullCredit":false}],"authorContributionMap":{"sopa301":6,"-":42}},{"path":"docs/ug/usingReports.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Using reports\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"Let\u0027s look at how to view, interpret, and interact with a RepoSense report.","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"## Viewing the report","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"As a report consists of web pages, it can be viewed using a Web Browser. Here are the ways to view the report in different situations.","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"* **Situation 1: The report has been hosted on a website**","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" * Simply go to the URL of the report ([example](https://nus-cs2113-ay1920s2.github.io/tp-dashboard)) in your browser.","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"* **Situation 2: You generated the report in your computer earlier**","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" * Run RepoSense with the `--view` option:\u003cbr\u003e","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" Format: `java -jar RepoSense.jar --view REPORT_FOLDER`\u003cbr\u003e","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" e.g., `java -jar RepoSense.jar --view ./myReport/reposense-report`","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"* **Situation 3: The report was given to you as a zip file or as a folder**","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" 1. If it is a zip file, unzip it.","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" 1. Open the `index.html` (in the unzipped report directory) using a browser.","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" 1. If the report was not loaded automatically, click on the `choose file` button in the shown web page, and select the `archive.zip` (in the same directory) manually.\u003cbr\u003e","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" If even the `choose file` button is not showing up, try a different browser.","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"## Report structure","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"Here is an example of how a typical report looks like:","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"![report](../images/report-features.png)","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"The report is divided into two sections: [_**Chart panel**_](#chart-panel) and the [_**Code panel**_](#code-panel). In some situations, the [_**Commits panel**_](#commits-panel) will appear in place of the _code panel_. All three are explained in the sections below.","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"Links to external webpages (repository link, author\u0027s profile, blame view, etc.) is only properly supported when RepoSense analyzes a remote repository belonging to GitHub, GitLab or BitBucket.","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"## Chart panel","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"![Ramp Charts](../images/rampchart.png)\u003cbr\u003e","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"The `Chart panel` (an example is shown above) contains a series of _ramp chart_ + _contribution bar_ pairs, possibly organized into sub-groups, with a _tool bar_ at the top.","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"#### Ramp charts","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"definition\" seamless\u003e","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"**Ramp chart**: This is a visualization of the frequency and quantity of contributions of an author for a specific repository. Each ramp chart (i.e., light blue rectangle) represents an author\u0027s contribution timeline for a particular repository. Contributions appear as ramps in the timeline.","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"definition\" seamless\u003e","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"**Ramp**: The name we use to refer to the triangular saw-tooth-like shape that represents a code contribution. A ramp can represent a single commit, a sum of the commits done in a certain period, depending on the granularity used.","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"* The ramp\u0027s area is proportional to the amount of contribution the author made at that time period.","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"* The position of the right edge of the ramp (perpendicular to the blue bar) represents the period (the day or the week) in which the contribution was made.","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"* Hover the pointer over a ramp to see the total number of lines represented by that ramp.","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"* Click on the ramp to view details about the list of commits represented in the ramp.","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" * At the commit-level of granularity, it links to the commit in the remote repository.","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" * At higher levels of granularity, it displays the list of commits in the Code Panel.","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"* To make the comparison between two authors easier, the color of the ramps that represent different authors\u0027 contributions at the same time period are the same.","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"* Ramps representing big contributions can overlap with earlier time periods. This represents the possibility that if the work committed during a specific period is big, it could have started at an earlier time period.","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"#### Contribution bars","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"definition\" seamless\u003e","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"**Contribution bar**: It\u0027s the bar that appears below each ramp chart. Its length represents the total amount of code contributed by an author during the _total analysis period_.","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"* Hover over a contribution bar to see the exact amount of the contribution.","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"* If an author contributed significantly higher than other authors, the contribution bar could _overflow_ into multiple lines.","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"We allow contribution bars to overflow into multiple lines (rather than adjust the scale to fit the maximum bar length) to prevent a minority of \u003ctooltip content\u003d\"i.e., those contributing an unusually high amount of code\"\u003eoutliers\u003c/tooltip\u003e from affecting the scale of the majority.","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":"#### Tool bar","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"The `Tool Bar` at the top of the Chart panel provides a set of configuration options that control the Chart panel.","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"* `Search`: filters the author and repository by keywords.","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" * Multiple keywords/terms can be used, separated by spaces.","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" * Entries that contain _any_ (not necessarily _all_) of the search terms will be displayed.","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" * The keywords used to filter the author and repository are case-insensitive.","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"jonasongg"},"content":" * Starting a search with `tag:` will filter author and repository by git tags. Similar search rules as above (like separating multiple tag names by space) apply.","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"* `Group by`: grouping criteria for the rows of results.","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" * `None`: results will not be grouped in any particular way.","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" * `Repo/Branch`: results will be grouped by repositories and its\u0027 associating branches.","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" * `Author`: results will be grouped by the name of the author. Contributions made to multiple repositories by a particular author will be grouped under the author.","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"* `Sort groups by`: sorting criteria for the main group. See note [1] below.","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" * `Group title`: groups will be sorted by the title of the group (in bold text) in alphabetical order.","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" * `Contribution`: groups will be sorted by the combined contributions within a group, in the order of number of lines added.","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" * `Variance`: groups will be sorted by how far the daily contributions are spread out from their average value among all authors involved. A detailed definition of variance is located [here](https://en.wikipedia.org/wiki/Variance).","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"* `Sort within groups by`: sorting criteria within each group.","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" * `Title`: each group will be internally sorted by its title in alphabetical order.","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" * `Contribution`: each group will be internally sorted by individual contributions in the order of number of lines added.","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" * `Variance`: each group will be internally sorted by how far the daily contributions are spread out from their average value by each author into a particular repo. A detailed definition of variance is located [here](https://en.wikipedia.org/wiki/Variance).","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":"* `Granularity`: the period of time for which commits are aggregated in the Ramp Chart.","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" * `Commit`: each commit made is shown as one ramp.","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" * `Day`: commits within a day (commits made within 00:00 to 23:59) are shown as one ramp.","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" * `Week`: commits within a week (from Monday 00:00 to Sunday 23:59) are shown as one ramp.","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"* `Since`, `Until`: the date range for the Ramp Chart (not applied to the Contribution Bars).","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"* `Reset date range`: resets the date range of the Ramp Chart to the default date range.","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"* `Breakdown by file type`: toggles the contribution bar to either display the bar by :","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" * the total lines of codes added (if the checkbox is left unchecked), or","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" * a breakdown of the number of lines of codes added to each file type (if the checkbox is checked). More info on note [3] below.","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"* `Merge group`: merges all the ramp charts of each group into a single ramp chart; aggregates the contribution of each group.","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" * viewing of authored code of the group as a whole is available when `group by repos`.","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"jonasongg"},"content":"* `Show tags`: shows the tags of all the repos under a group","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"jonasongg"},"content":"* `Trim timeline`: trims the starting and ending portion of each ramp where no commits were made; only the part of each ramp where commits were made will be shown.","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"Notes:\u003cbr\u003e","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":"[1] **`Sort groups by`**: each main group has its own index and percentile according to its ranking position after sorting (e.g., if the groups are sorted by contribution in descending order, a 25% percentile indicates that the group is in the top 25% of the whole cohort in terms of contribution)\u003cbr\u003e.","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"[2] **`Repo/Branch`**: the repo/branch name is constructed as `ORGANIZATION/REPOSITORY[BRANCH]` (e.g., `reposense/reposense[master]`)\u003cbr\u003e","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"[3] The total contribution of each group will get updated based on the checked file types and will be taken into account when the sorting criteria is contribution.","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"tip\" seamless\u003e","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"**RepoSense support _intelligent_ bookmarks**: Note how the browser URL changes as you modify settings in the report. If you send that URL to someone else, that person will be able to use that URL to view the report in the same _view configuration_ you had when you copied the URL. For example, [this URL](https://nus-cs2113-ay1920s2.github.io/tp-dashboard/) and [this URL](https://nus-cs2113-ay1920s2.github.io/tp-dashboard/#search\u003d\u0026sort\u003dgroupTitle\u0026sortWithin\u003dtitle\u0026since\u003d2020-03-01\u0026timeframe\u003dday\u0026mergegroup\u003dtrue\u0026groupSelect\u003dgroupByRepos\u0026breakdown\u003dtrue) give two different views of the same report.","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"## Code panel","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"\u003cimg src\u003d\"../images/code-panel.png\" alt\u003d\"code panel\" width\u003d\"468\"\u003e","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"The `Code panel` allows users to see the code attributed to a specific author. Click on the `\u003c/\u003e` icon beside the author\u0027s name in the `Chart panel` to display the `Code panel` on the right.","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"* The Code panel shows the files that contain the author\u0027s contributions, sorted by the number of lines written.","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":"* Select the radio button to enable one of the following 2 filters. Note that only 1 of the 2 filters is active at any time.","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" * Type file path glob in glob filter to include files matching the glob expression.","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" * Select the checkboxes to include files of preferred file extensions.","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" The number right beside the file extension shows the total number of lines written by the author in such file extension files. In contrast, the number inside the parenthesis indicates the number of non-blank lines written by the author.","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"* Clicking the file title toggles the file content.","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":"* Clicking the first icon beside the file title opens the history view of the file on the remote repository.","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"* Clicking the second icon beside the file title opens the blame view of the file on the remote repository.","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"* When using the code panel for a specific author, code attributed to the author is highlighted in green.","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" * When using the `merge group` option with `group by repos`, the code panel will consist of multiple authors\u0027 contributions. Code attributed to these authors can be differentiated by the highlight colors of the code. The color legend is shown at the top of each file and consists only those authors that edited a particular file.","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"* Non-trivial code segments that the selected author has not written are hidden by default, but you can toggle them by clicking on the %%:fas-plus-circle:%% icon.","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"Changing binary files, such as images (`.jpg`, `.png`), applications (`.exe`), zip files (`.zip`, `.rar`) and certain document types (`.docx`, `.pptx`), is not counted towards the total number of lines of code contributed by an author.","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"## Commits panel","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"\u003cimg src\u003d\"../images/commits-panel.png\" alt\u003d\"commits panel\" width\u003d\"468\"\u003e","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"The `Commits panel` allows users to see the commits attributed to a specific author.","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"* To view all commits attributed to an author, locate the author\u0027s ramp chart in the chart panel, and click on the %%:fas-list-ul:%% icon above the ramp chart.","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":"* To view commits of a specific period, locate the author\u0027s ramp chart in the chart panel, hold down the \u003ckbd\u003eCtrl\u003c/kbd\u003e key (\u003ckbd\u003e\u0026#8984;\u003c/kbd\u003e in MacOS), and click on the start and end positions of the period (on the ramp chart) you want to view. \u003cbr\u003e","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"![Opening commits panel](../images/opening-commits-panel.gif)","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"* The commits can be sorted by the date it was committed or by LoC.","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"* The tags of the commits will also be displayed on top if any. Clicking on a tag will direct you to the commit having that particular tag.","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"* The date range for the `Chart panel` can be updated by clicking on the \"Show ramp chart for this period\" below the name of the author.","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"* The ramp chart at the top of the `Commits panel` represents individual commits (not weekly or daily contributions).","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":"* The commit messages body can be expanded or collapsed by clicking on the %%:fas-ellipsis-h:%% icon beside each commit message title.","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":"* To promote and encourage the 50/72 rule for commit messages, a dotted vertical line will be shown for:","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" * Commit message subject that exceeds 50 characters.","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" * Commit message body after the 72nd character mark.","isFullCredit":false}],"authorContributionMap":{"-":173,"jonasongg":3}},{"path":"frontend/.eslintrc.json","fileType":"json","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" \"env\": {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"sopa301"},"content":" \"browser\": true,","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"sopa301"},"content":" \"node\": true,","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"sopa301"},"content":" \"es2022\": true","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" \"extends\": [","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" \"airbnb-base\",","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" \"plugin:vue/recommended\",","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" \"@vue/typescript\",","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"sopa301"},"content":" \"plugin:import/typescript\",","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"sopa301"},"content":" \"plugin:@stylistic/disable-legacy\"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"sopa301"},"content":" \"plugins\": [","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"sopa301"},"content":" \"@stylistic\"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" \"rules\": {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" \"vue/component-definition-name-casing\": [","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" \"error\",","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" \"kebab-case\"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" \"vue/require-prop-types\": 0,","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" \"no-param-reassign\": 0,","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"sopa301"},"content":" \"@stylistic/arrow-parens\": [","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" \"error\",","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" \"always\"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"sopa301"},"content":" \"@stylistic/indent\": [","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" \"error\",","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" 2,","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" \"ignoredNodes\": [","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" \"ConditionalExpression\"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" ]","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" \"prefer-destructuring\": 0,","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" \"func-names\": [","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" \"error\",","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" \"as-needed\"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" \"no-alert\": 0,","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"sopa301"},"content":" \"@stylistic/linebreak-style\": 0,","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"sopa301"},"content":" \"@stylistic/max-len\": [","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" \"error\",","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" \"code\": 120","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" \"prefer-object-spread\": 0,","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"sopa301"},"content":" \"@stylistic/function-call-argument-newline\": 0,","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" \"vue/no-computed-properties-in-data\": 0,","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" \"import/extensions\": [","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" \"error\",","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" \"js\": \"never\",","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" \"ts\": \"never\"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" ]","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" \"parserOptions\": {","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" \"parser\": \"@typescript-eslint/parser\"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" \"overrides\": [","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" \"files\": [\"*.ts\"],","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" \"extends\": [","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" \"airbnb-typescript/base\",","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"sopa301"},"content":" \"plugin:@typescript-eslint/recommended\",","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"sopa301"},"content":" \"plugin:@stylistic/disable-legacy\"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" \"parserOptions\": {","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" \"project\": [\"./tsconfig.json\"]","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" \"rules\": {","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"sopa301"},"content":" \"@stylistic/indent\": [","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" \"error\",","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" 2,","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" \"ignoredNodes\": [","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" \"ConditionalExpression\"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"sopa301"},"content":" \"@stylistic/member-delimiter-style\": \"error\",","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"sopa301"},"content":" \"@stylistic/type-annotation-spacing\": \"error\",","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/array-type\": [","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"sopa301"},"content":" \"error\",","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"sopa301"},"content":" \"default\": \"array-simple\",","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"sopa301"},"content":" \"readonly\": \"array-simple\"","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"sopa301"},"content":" \"files\": [\"*.vue\"],","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"sopa301"},"content":" \"rules\": {","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/array-type\": [","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"sopa301"},"content":" \"error\",","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"sopa301"},"content":" \"default\": \"generic\",","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"sopa301"},"content":" \"readonly\": \"generic\"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"supermii2"},"content":" \"no-unused-vars\": \"off\",","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"supermii2"},"content":" \"@typescript-eslint/no-unused-vars\": [\"error\"]","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" ]","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"supermii2":2,"sopa301":36,"-":73}},{"path":"frontend/.stylelintrc.json","fileType":"json","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" \"plugins\": [","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"sopa301"},"content":" \"@stylistic/stylelint-plugin\",","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" \"stylelint-order\"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" \"extends\": [","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-standard\",","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-standard-scss\",","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" \"stylelint-config-recommended-vue\"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" \"rules\": {","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"sopa301"},"content":" \"declaration-no-important\": true,","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"sopa301"},"content":" \"declaration-block-single-line-max-declarations\": 1,","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"sopa301"},"content":" \"no-invalid-double-slash-comments\": true,","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"sopa301"},"content":" \"function-no-unknown\": null,","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"sopa301"},"content":" \"no-descending-specificity\": null,","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"sopa301"},"content":" \"selector-type-no-unknown\": null,","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"sopa301"},"content":" \"at-rule-no-unknown\": null,","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"sopa301"},"content":" \"no-duplicate-selectors\": null,","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"sopa301"},"content":" \"length-zero-no-unit\": true,","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"sopa301"},"content":" \"value-keyword-case\": \"lower\",","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"sopa301"},"content":" \"selector-type-case\": \"lower\",","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" \"color-no-invalid-hex\": true,","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" \"string-no-newline\": true,","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" \"unit-no-unknown\": true,","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" \"property-no-unknown\": true,","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" \"block-no-empty\": true,","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" \"comment-no-empty\": true,","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"sopa301"},"content":" \"shorthand-property-no-redundant-values\": null,","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"sopa301"},"content":" \"declaration-empty-line-before\": null,","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"sopa301"},"content":" \"selector-class-pattern\": null,","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"sopa301"},"content":" \"color-function-notation\": null,","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"sopa301"},"content":" \"alpha-value-notation\": null,","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"sopa301"},"content":" \"comment-empty-line-before\": null,","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"sopa301"},"content":" \"property-no-vendor-prefix\": null,","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"sopa301"},"content":" \"selector-pseudo-element-colon-notation\": null,","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"sopa301"},"content":" \"at-rule-empty-line-before\": null,","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"sopa301"},"content":" \"font-family-name-quotes\": null,","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"sopa301"},"content":" \"color-hex-length\": null,","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"sopa301"},"content":" \"@stylistic/no-extra-semicolons\": true,","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"sopa301"},"content":" \"@stylistic/number-leading-zero\": \"never\",","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"sopa301"},"content":" \"@stylistic/number-no-trailing-zeros\": null,","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"sopa301"},"content":" \"@stylistic/property-case\": \"lower\",","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"sopa301"},"content":" \"@stylistic/string-quotes\": \"single\",","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"sopa301"},"content":" \"@stylistic/declaration-colon-space-after\": \"always\",","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"sopa301"},"content":" \"@stylistic/selector-list-comma-newline-after\": \"always\",","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"sopa301"},"content":" \"@stylistic/no-eol-whitespace\": true,","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"sopa301"},"content":" \"@stylistic/indentation\": 2,","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"sopa301"},"content":" \"@stylistic/block-opening-brace-space-before\": \"always\",","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"sopa301"},"content":" \"@stylistic/declaration-colon-space-before\": \"never\",","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" \"order/properties-alphabetical-order\": true,","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" \"scss/no-global-function-names\": null,","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"sopa301"},"content":" \"scss/at-import-no-partial-leading-underscore\": null,","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"sopa301"},"content":" \"scss/at-import-partial-extension\": null,","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"sopa301"},"content":" \"scss/load-no-partial-leading-underscore\": null,","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"sopa301"},"content":" \"scss/double-slash-comment-empty-line-before\": null,","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"sopa301"},"content":" \"scss/double-slash-comment-whitespace-inside\": null,","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"sopa301"},"content":" \"scss/dollar-variable-pattern\": null","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"sopa301":42,"-":18}},{"path":"frontend/cypress/config/blurbs.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/RepoSense/tree/cypress","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"first blurb","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003e------------------------------------","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"https://gitlab.com/reposense/testrepo-gitlab/-/tree/main","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"unseen blurb","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003e------------------------------------","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/publish-RepoSense/tree/master","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"## third blurb in h2 markdown tag","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003e------------------------------------","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/RepoSense-auth-helper/tree/master","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"\u003ch1\u003esecond blurb in h1 tag\u003c/h1\u003e","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":11}},{"path":"frontend/cypress/cypress.config.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"const { defineConfig } \u003d require(\u0027cypress\u0027)","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"module.exports \u003d defineConfig({","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" fixturesFolder: false,","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" video: false,","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" defaultCommandTimeout: 30000,","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" pageLoadTimeout: 400000,","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" e2e: {","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" setupNodeEvents(on, config) {},","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" baseUrl: \u0027http://localhost:9000\u0027,","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"sopa301"},"content":" chromeWebSecurity: false,","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" specPattern: \u0027tests/**/*.cy.{js,jsx,ts,tsx}\u0027,","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" supportFile: \u0027support.js\u0027,","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"})","isFullCredit":false}],"authorContributionMap":{"sopa301":1,"-":14}},{"path":"frontend/cypress/package-lock.json","fileType":"json","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"sopa301"},"content":" \"name\": \"cypress\",","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"sopa301"},"content":" \"lockfileVersion\": 2,","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" \"requires\": true,","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"sopa301"},"content":" \"packages\": {","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"sopa301"},"content":" \"\": {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"sopa301"},"content":" \"devDependencies\": {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"sopa301"},"content":" \"cypress\": \"^13.6.4\"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"sopa301"},"content":" \"node_modules/@colors/colors\": {","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.5.0\",","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz\",","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.1.90\"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"sopa301"},"content":" \"node_modules/@cypress/request\": {","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz\",","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"sopa301"},"content":" \"aws-sign2\": \"~0.7.0\",","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"sopa301"},"content":" \"aws4\": \"^1.8.0\",","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"sopa301"},"content":" \"caseless\": \"~0.12.0\",","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"sopa301"},"content":" \"combined-stream\": \"~1.0.6\",","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"sopa301"},"content":" \"extend\": \"~3.0.2\",","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"sopa301"},"content":" \"forever-agent\": \"~0.6.1\",","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"sopa301"},"content":" \"form-data\": \"~2.3.2\",","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"sopa301"},"content":" \"http-signature\": \"~1.3.6\",","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"sopa301"},"content":" \"is-typedarray\": \"~1.0.0\",","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"sopa301"},"content":" \"isstream\": \"~0.1.2\",","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"sopa301"},"content":" \"json-stringify-safe\": \"~5.0.1\",","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"sopa301"},"content":" \"mime-types\": \"~2.1.19\",","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"sopa301"},"content":" \"performance-now\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"sopa301"},"content":" \"qs\": \"6.10.4\",","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"sopa301"},"content":" \"safe-buffer\": \"^5.1.2\",","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"sopa301"},"content":" \"tough-cookie\": \"^4.1.3\",","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"sopa301"},"content":" \"tunnel-agent\": \"^0.6.0\",","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"sopa301"},"content":" \"uuid\": \"^8.3.2\"","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"sopa301"},"content":" \"node_modules/@cypress/xvfb\": {","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.4\",","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz\",","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"sopa301"},"content":" \"lodash.once\": \"^4.1.1\"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"sopa301"},"content":" \"node_modules/@cypress/xvfb/node_modules/debug\": {","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.2.7\",","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/debug/-/debug-3.2.7.tgz\",","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"sopa301"},"content":" \"ms\": \"^2.1.1\"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/node\": {","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"sopa301"},"content":" \"version\": \"18.18.3\",","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-18.18.3.tgz\",","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-0OVfGupTl3NBFr8+iXpfZ8NR7jfFO+P1Q+IO/q0wbo02wYkP5gy36phojeYWpLQ6WAMjl+VfmqUk2YbUfp0irA\u003d\u003d\",","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/sinonjs__fake-timers\": {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.1.1\",","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz\",","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g\u003d\u003d\",","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/sizzle\": {","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.4\",","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.4.tgz\",","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-jA2llq2zNkg8HrALI7DtWzhALcVH0l7i89yhY3iBdOz6cBPeACoFq+fkQrjHA39t1hnSFOboZ7A/AY5MMZSlag\u003d\u003d\",","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/yauzl\": {","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.10.1\",","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.1.tgz\",","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw\u003d\u003d\",","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"sopa301"},"content":" \"@types/node\": \"*\"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"sopa301"},"content":" \"node_modules/aggregate-error\": {","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz\",","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA\u003d\u003d\",","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"sopa301"},"content":" \"clean-stack\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"sopa301"},"content":" \"indent-string\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"sopa301"},"content":" \"node_modules/ansi-colors\": {","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.3\",","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz\",","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw\u003d\u003d\",","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"sopa301"},"content":" \"node_modules/ansi-escapes\": {","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.2\",","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz\",","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"sopa301"},"content":" \"type-fest\": \"^0.21.3\"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"sopa301"},"content":" \"node_modules/ansi-regex\": {","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.1\",","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"sopa301"},"content":" \"node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg\u003d\u003d\",","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"sopa301"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"sopa301"},"content":" \"node_modules/arch\": {","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/arch/-/arch-2.2.0.tgz\",","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"sopa301"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"sopa301"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"sopa301"},"content":" \"node_modules/asn1\": {","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.2.6\",","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz\",","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"sopa301"},"content":" \"safer-buffer\": \"~2.1.0\"","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"sopa301"},"content":" \"node_modules/assert-plus\": {","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw\u003d\u003d\",","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.8\"","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"sopa301"},"content":" \"node_modules/astral-regex\": {","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"sopa301"},"content":" \"node_modules/async\": {","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.2.4\",","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/async/-/async-3.2.4.tgz\",","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"sopa301"},"content":" \"node_modules/asynckit\": {","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz\",","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"sopa301"},"content":" \"node_modules/at-least-node\": {","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg\u003d\u003d\",","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 4.0.0\"","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"sopa301"},"content":" \"node_modules/aws-sign2\": {","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.7.0\",","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz\",","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA\u003d\u003d\",","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"sopa301"},"content":" \"node_modules/aws4\": {","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.12.0\",","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz\",","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg\u003d\u003d\",","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"sopa301"},"content":" \"node_modules/balanced-match\": {","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw\u003d\u003d\",","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"sopa301"},"content":" \"node_modules/base64-js\": {","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.5.1\",","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz\",","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA\u003d\u003d\",","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"sopa301"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"sopa301"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"sopa301"},"content":" \"node_modules/bcrypt-pbkdf\": {","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w\u003d\u003d\",","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"sopa301"},"content":" \"tweetnacl\": \"^0.14.3\"","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"sopa301"},"content":" \"node_modules/blob-util\": {","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz\",","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"sopa301"},"content":" \"node_modules/bluebird\": {","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.7.2\",","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz\",","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg\u003d\u003d\",","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"sopa301"},"content":" \"node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz\",","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"sopa301"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"sopa301"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"sopa301"},"content":" \"node_modules/buffer\": {","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.7.1\",","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz\",","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"sopa301"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"sopa301"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"sopa301"},"content":" \"base64-js\": \"^1.3.1\",","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"sopa301"},"content":" \"ieee754\": \"^1.1.13\"","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"sopa301"},"content":" \"node_modules/buffer-crc32\": {","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.2.13\",","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz\",","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"sopa301"},"content":" \"node_modules/cachedir\": {","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.4.0\",","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz\",","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"sopa301"},"content":" \"node_modules/call-bind\": {","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA\u003d\u003d\",","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"sopa301"},"content":" \"function-bind\": \"^1.1.1\",","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"sopa301"},"content":" \"get-intrinsic\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"sopa301"},"content":" \"node_modules/caseless\": {","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.12.0\",","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz\",","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw\u003d\u003d\",","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"sopa301"},"content":" \"node_modules/chalk\": {","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA\u003d\u003d\",","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"sopa301"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"sopa301"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"sopa301"},"content":" \"node_modules/chalk/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw\u003d\u003d\",","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"sopa301"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"sopa301"},"content":" \"node_modules/check-more-types\": {","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.24.0\",","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz\",","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA\u003d\u003d\",","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.8.0\"","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"sopa301"},"content":" \"node_modules/ci-info\": {","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.9.0\",","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz\",","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sibiraj-s\"","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"sopa301"},"content":" \"node_modules/clean-stack\": {","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz\",","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A\u003d\u003d\",","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"sopa301"},"content":" \"node_modules/cli-cursor\": {","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz\",","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw\u003d\u003d\",","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"sopa301"},"content":" \"restore-cursor\": \"^3.1.0\"","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"sopa301"},"content":" \"node_modules/cli-table3\": {","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.6.3\",","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz\",","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg\u003d\u003d\",","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"sopa301"},"content":" \"string-width\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"sopa301"},"content":" \"node\": \"10.* || \u003e\u003d 12.*\"","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"sopa301"},"content":" \"optionalDependencies\": {","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"sopa301"},"content":" \"@colors/colors\": \"1.5.0\"","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"sopa301"},"content":" \"node_modules/cli-truncate\": {","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz\",","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg\u003d\u003d\",","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"sopa301"},"content":" \"slice-ansi\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"sopa301"},"content":" \"string-width\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"sopa301"},"content":" \"node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"sopa301"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"sopa301"},"content":" \"node_modules/color-name\": {","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA\u003d\u003d\",","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"sopa301"},"content":" \"node_modules/colorette\": {","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.20\",","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz\",","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w\u003d\u003d\",","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"sopa301"},"content":" \"node_modules/combined-stream\": {","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.8\",","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz\",","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg\u003d\u003d\",","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"sopa301"},"content":" \"delayed-stream\": \"~1.0.0\"","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"sopa301"},"content":" \"node_modules/commander\": {","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.2.1\",","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/commander/-/commander-6.2.1.tgz\",","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA\u003d\u003d\",","isFullCredit":false},{"lineNumber":504,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":505,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":506,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":507,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":508,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":509,"author":{"gitId":"sopa301"},"content":" \"node_modules/common-tags\": {","isFullCredit":false},{"lineNumber":510,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.8.2\",","isFullCredit":false},{"lineNumber":511,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz\",","isFullCredit":false},{"lineNumber":512,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA\u003d\u003d\",","isFullCredit":false},{"lineNumber":513,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":514,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":515,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4.0.0\"","isFullCredit":false},{"lineNumber":516,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":517,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":518,"author":{"gitId":"sopa301"},"content":" \"node_modules/concat-map\": {","isFullCredit":false},{"lineNumber":519,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.0.1\",","isFullCredit":false},{"lineNumber":520,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz\",","isFullCredit":false},{"lineNumber":521,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg\u003d\u003d\",","isFullCredit":false},{"lineNumber":522,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":523,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":524,"author":{"gitId":"sopa301"},"content":" \"node_modules/core-util-is\": {","isFullCredit":false},{"lineNumber":525,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":526,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":527,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":528,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":529,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":530,"author":{"gitId":"sopa301"},"content":" \"node_modules/cross-spawn\": {","isFullCredit":false},{"lineNumber":531,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.0.3\",","isFullCredit":false},{"lineNumber":532,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz\",","isFullCredit":false},{"lineNumber":533,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w\u003d\u003d\",","isFullCredit":false},{"lineNumber":534,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":535,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":536,"author":{"gitId":"sopa301"},"content":" \"path-key\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":537,"author":{"gitId":"sopa301"},"content":" \"shebang-command\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":538,"author":{"gitId":"sopa301"},"content":" \"which\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":539,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":540,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":541,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":542,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":543,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":544,"author":{"gitId":"sopa301"},"content":" \"node_modules/cypress\": {","isFullCredit":false},{"lineNumber":545,"author":{"gitId":"sopa301"},"content":" \"version\": \"13.6.6\",","isFullCredit":false},{"lineNumber":546,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/cypress/-/cypress-13.6.6.tgz\",","isFullCredit":false},{"lineNumber":547,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-S+2S9S94611hXimH9a3EAYt81QM913ZVA03pUmGDfLTFa5gyp85NJ8dJGSlEAEmyRsYkioS1TtnWtbv/Fzt11A\u003d\u003d\",","isFullCredit":false},{"lineNumber":548,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":549,"author":{"gitId":"sopa301"},"content":" \"hasInstallScript\": true,","isFullCredit":false},{"lineNumber":550,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":551,"author":{"gitId":"sopa301"},"content":" \"@cypress/request\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":552,"author":{"gitId":"sopa301"},"content":" \"@cypress/xvfb\": \"^1.2.4\",","isFullCredit":false},{"lineNumber":553,"author":{"gitId":"sopa301"},"content":" \"@types/sinonjs__fake-timers\": \"8.1.1\",","isFullCredit":false},{"lineNumber":554,"author":{"gitId":"sopa301"},"content":" \"@types/sizzle\": \"^2.3.2\",","isFullCredit":false},{"lineNumber":555,"author":{"gitId":"sopa301"},"content":" \"arch\": \"^2.2.0\",","isFullCredit":false},{"lineNumber":556,"author":{"gitId":"sopa301"},"content":" \"blob-util\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":557,"author":{"gitId":"sopa301"},"content":" \"bluebird\": \"^3.7.2\",","isFullCredit":false},{"lineNumber":558,"author":{"gitId":"sopa301"},"content":" \"buffer\": \"^5.7.1\",","isFullCredit":false},{"lineNumber":559,"author":{"gitId":"sopa301"},"content":" \"cachedir\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":560,"author":{"gitId":"sopa301"},"content":" \"chalk\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":561,"author":{"gitId":"sopa301"},"content":" \"check-more-types\": \"^2.24.0\",","isFullCredit":false},{"lineNumber":562,"author":{"gitId":"sopa301"},"content":" \"cli-cursor\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":563,"author":{"gitId":"sopa301"},"content":" \"cli-table3\": \"~0.6.1\",","isFullCredit":false},{"lineNumber":564,"author":{"gitId":"sopa301"},"content":" \"commander\": \"^6.2.1\",","isFullCredit":false},{"lineNumber":565,"author":{"gitId":"sopa301"},"content":" \"common-tags\": \"^1.8.0\",","isFullCredit":false},{"lineNumber":566,"author":{"gitId":"sopa301"},"content":" \"dayjs\": \"^1.10.4\",","isFullCredit":false},{"lineNumber":567,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^4.3.4\",","isFullCredit":false},{"lineNumber":568,"author":{"gitId":"sopa301"},"content":" \"enquirer\": \"^2.3.6\",","isFullCredit":false},{"lineNumber":569,"author":{"gitId":"sopa301"},"content":" \"eventemitter2\": \"6.4.7\",","isFullCredit":false},{"lineNumber":570,"author":{"gitId":"sopa301"},"content":" \"execa\": \"4.1.0\",","isFullCredit":false},{"lineNumber":571,"author":{"gitId":"sopa301"},"content":" \"executable\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":572,"author":{"gitId":"sopa301"},"content":" \"extract-zip\": \"2.0.1\",","isFullCredit":false},{"lineNumber":573,"author":{"gitId":"sopa301"},"content":" \"figures\": \"^3.2.0\",","isFullCredit":false},{"lineNumber":574,"author":{"gitId":"sopa301"},"content":" \"fs-extra\": \"^9.1.0\",","isFullCredit":false},{"lineNumber":575,"author":{"gitId":"sopa301"},"content":" \"getos\": \"^3.2.1\",","isFullCredit":false},{"lineNumber":576,"author":{"gitId":"sopa301"},"content":" \"is-ci\": \"^3.0.1\",","isFullCredit":false},{"lineNumber":577,"author":{"gitId":"sopa301"},"content":" \"is-installed-globally\": \"~0.4.0\",","isFullCredit":false},{"lineNumber":578,"author":{"gitId":"sopa301"},"content":" \"lazy-ass\": \"^1.6.0\",","isFullCredit":false},{"lineNumber":579,"author":{"gitId":"sopa301"},"content":" \"listr2\": \"^3.8.3\",","isFullCredit":false},{"lineNumber":580,"author":{"gitId":"sopa301"},"content":" \"lodash\": \"^4.17.21\",","isFullCredit":false},{"lineNumber":581,"author":{"gitId":"sopa301"},"content":" \"log-symbols\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":582,"author":{"gitId":"sopa301"},"content":" \"minimist\": \"^1.2.8\",","isFullCredit":false},{"lineNumber":583,"author":{"gitId":"sopa301"},"content":" \"ospath\": \"^1.2.2\",","isFullCredit":false},{"lineNumber":584,"author":{"gitId":"sopa301"},"content":" \"pretty-bytes\": \"^5.6.0\",","isFullCredit":false},{"lineNumber":585,"author":{"gitId":"sopa301"},"content":" \"process\": \"^0.11.10\",","isFullCredit":false},{"lineNumber":586,"author":{"gitId":"sopa301"},"content":" \"proxy-from-env\": \"1.0.0\",","isFullCredit":false},{"lineNumber":587,"author":{"gitId":"sopa301"},"content":" \"request-progress\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":588,"author":{"gitId":"sopa301"},"content":" \"semver\": \"^7.5.3\",","isFullCredit":false},{"lineNumber":589,"author":{"gitId":"sopa301"},"content":" \"supports-color\": \"^8.1.1\",","isFullCredit":false},{"lineNumber":590,"author":{"gitId":"sopa301"},"content":" \"tmp\": \"~0.2.1\",","isFullCredit":false},{"lineNumber":591,"author":{"gitId":"sopa301"},"content":" \"untildify\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":592,"author":{"gitId":"sopa301"},"content":" \"yauzl\": \"^2.10.0\"","isFullCredit":false},{"lineNumber":593,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":594,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":595,"author":{"gitId":"sopa301"},"content":" \"cypress\": \"bin/cypress\"","isFullCredit":false},{"lineNumber":596,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":597,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":598,"author":{"gitId":"sopa301"},"content":" \"node\": \"^16.0.0 || ^18.0.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":599,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":600,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":601,"author":{"gitId":"sopa301"},"content":" \"node_modules/dashdash\": {","isFullCredit":false},{"lineNumber":602,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.14.1\",","isFullCredit":false},{"lineNumber":603,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz\",","isFullCredit":false},{"lineNumber":604,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g\u003d\u003d\",","isFullCredit":false},{"lineNumber":605,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":606,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":607,"author":{"gitId":"sopa301"},"content":" \"assert-plus\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":608,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":609,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":610,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10\"","isFullCredit":false},{"lineNumber":611,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":612,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":613,"author":{"gitId":"sopa301"},"content":" \"node_modules/dayjs\": {","isFullCredit":false},{"lineNumber":614,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.10\",","isFullCredit":false},{"lineNumber":615,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz\",","isFullCredit":false},{"lineNumber":616,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":617,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":618,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":619,"author":{"gitId":"sopa301"},"content":" \"node_modules/debug\": {","isFullCredit":false},{"lineNumber":620,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.4\",","isFullCredit":false},{"lineNumber":621,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz\",","isFullCredit":false},{"lineNumber":622,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":623,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":624,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":625,"author":{"gitId":"sopa301"},"content":" \"ms\": \"2.1.2\"","isFullCredit":false},{"lineNumber":626,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":627,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":628,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6.0\"","isFullCredit":false},{"lineNumber":629,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":630,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":631,"author":{"gitId":"sopa301"},"content":" \"supports-color\": {","isFullCredit":false},{"lineNumber":632,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":633,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":634,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":635,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":636,"author":{"gitId":"sopa301"},"content":" \"node_modules/debug/node_modules/ms\": {","isFullCredit":false},{"lineNumber":637,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.2\",","isFullCredit":false},{"lineNumber":638,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz\",","isFullCredit":false},{"lineNumber":639,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w\u003d\u003d\",","isFullCredit":false},{"lineNumber":640,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":641,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":642,"author":{"gitId":"sopa301"},"content":" \"node_modules/delayed-stream\": {","isFullCredit":false},{"lineNumber":643,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":644,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":645,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":646,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":647,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":648,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.4.0\"","isFullCredit":false},{"lineNumber":649,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":650,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":651,"author":{"gitId":"sopa301"},"content":" \"node_modules/ecc-jsbn\": {","isFullCredit":false},{"lineNumber":652,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.1.2\",","isFullCredit":false},{"lineNumber":653,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz\",","isFullCredit":false},{"lineNumber":654,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw\u003d\u003d\",","isFullCredit":false},{"lineNumber":655,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":656,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":657,"author":{"gitId":"sopa301"},"content":" \"jsbn\": \"~0.1.0\",","isFullCredit":false},{"lineNumber":658,"author":{"gitId":"sopa301"},"content":" \"safer-buffer\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":659,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":660,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":661,"author":{"gitId":"sopa301"},"content":" \"node_modules/emoji-regex\": {","isFullCredit":false},{"lineNumber":662,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.0.0\",","isFullCredit":false},{"lineNumber":663,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",","isFullCredit":false},{"lineNumber":664,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A\u003d\u003d\",","isFullCredit":false},{"lineNumber":665,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":666,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":667,"author":{"gitId":"sopa301"},"content":" \"node_modules/end-of-stream\": {","isFullCredit":false},{"lineNumber":668,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.4.4\",","isFullCredit":false},{"lineNumber":669,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz\",","isFullCredit":false},{"lineNumber":670,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":671,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":672,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":673,"author":{"gitId":"sopa301"},"content":" \"once\": \"^1.4.0\"","isFullCredit":false},{"lineNumber":674,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":675,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":676,"author":{"gitId":"sopa301"},"content":" \"node_modules/enquirer\": {","isFullCredit":false},{"lineNumber":677,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.4.1\",","isFullCredit":false},{"lineNumber":678,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz\",","isFullCredit":false},{"lineNumber":679,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":680,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":681,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":682,"author":{"gitId":"sopa301"},"content":" \"ansi-colors\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":683,"author":{"gitId":"sopa301"},"content":" \"strip-ansi\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":684,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":685,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":686,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8.6\"","isFullCredit":false},{"lineNumber":687,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":688,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":689,"author":{"gitId":"sopa301"},"content":" \"node_modules/escape-string-regexp\": {","isFullCredit":false},{"lineNumber":690,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":691,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz\",","isFullCredit":false},{"lineNumber":692,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg\u003d\u003d\",","isFullCredit":false},{"lineNumber":693,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":694,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":695,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.8.0\"","isFullCredit":false},{"lineNumber":696,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":697,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":698,"author":{"gitId":"sopa301"},"content":" \"node_modules/eventemitter2\": {","isFullCredit":false},{"lineNumber":699,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.4.7\",","isFullCredit":false},{"lineNumber":700,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz\",","isFullCredit":false},{"lineNumber":701,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg\u003d\u003d\",","isFullCredit":false},{"lineNumber":702,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":703,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":704,"author":{"gitId":"sopa301"},"content":" \"node_modules/execa\": {","isFullCredit":false},{"lineNumber":705,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":706,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/execa/-/execa-4.1.0.tgz\",","isFullCredit":false},{"lineNumber":707,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA\u003d\u003d\",","isFullCredit":false},{"lineNumber":708,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":709,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":710,"author":{"gitId":"sopa301"},"content":" \"cross-spawn\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":711,"author":{"gitId":"sopa301"},"content":" \"get-stream\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":712,"author":{"gitId":"sopa301"},"content":" \"human-signals\": \"^1.1.1\",","isFullCredit":false},{"lineNumber":713,"author":{"gitId":"sopa301"},"content":" \"is-stream\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":714,"author":{"gitId":"sopa301"},"content":" \"merge-stream\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":715,"author":{"gitId":"sopa301"},"content":" \"npm-run-path\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":716,"author":{"gitId":"sopa301"},"content":" \"onetime\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":717,"author":{"gitId":"sopa301"},"content":" \"signal-exit\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":718,"author":{"gitId":"sopa301"},"content":" \"strip-final-newline\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":719,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":720,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":721,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":722,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":723,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":724,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sindresorhus/execa?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":725,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":726,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":727,"author":{"gitId":"sopa301"},"content":" \"node_modules/executable\": {","isFullCredit":false},{"lineNumber":728,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.1\",","isFullCredit":false},{"lineNumber":729,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/executable/-/executable-4.1.1.tgz\",","isFullCredit":false},{"lineNumber":730,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg\u003d\u003d\",","isFullCredit":false},{"lineNumber":731,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":732,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":733,"author":{"gitId":"sopa301"},"content":" \"pify\": \"^2.2.0\"","isFullCredit":false},{"lineNumber":734,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":735,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":736,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":737,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":738,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":739,"author":{"gitId":"sopa301"},"content":" \"node_modules/extend\": {","isFullCredit":false},{"lineNumber":740,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.2\",","isFullCredit":false},{"lineNumber":741,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/extend/-/extend-3.0.2.tgz\",","isFullCredit":false},{"lineNumber":742,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g\u003d\u003d\",","isFullCredit":false},{"lineNumber":743,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":744,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":745,"author":{"gitId":"sopa301"},"content":" \"node_modules/extract-zip\": {","isFullCredit":false},{"lineNumber":746,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":747,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz\",","isFullCredit":false},{"lineNumber":748,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg\u003d\u003d\",","isFullCredit":false},{"lineNumber":749,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":750,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":751,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":752,"author":{"gitId":"sopa301"},"content":" \"get-stream\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":753,"author":{"gitId":"sopa301"},"content":" \"yauzl\": \"^2.10.0\"","isFullCredit":false},{"lineNumber":754,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":755,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":756,"author":{"gitId":"sopa301"},"content":" \"extract-zip\": \"cli.js\"","isFullCredit":false},{"lineNumber":757,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":758,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":759,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 10.17.0\"","isFullCredit":false},{"lineNumber":760,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":761,"author":{"gitId":"sopa301"},"content":" \"optionalDependencies\": {","isFullCredit":false},{"lineNumber":762,"author":{"gitId":"sopa301"},"content":" \"@types/yauzl\": \"^2.9.1\"","isFullCredit":false},{"lineNumber":763,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":764,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":765,"author":{"gitId":"sopa301"},"content":" \"node_modules/extsprintf\": {","isFullCredit":false},{"lineNumber":766,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.3.0\",","isFullCredit":false},{"lineNumber":767,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz\",","isFullCredit":false},{"lineNumber":768,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g\u003d\u003d\",","isFullCredit":false},{"lineNumber":769,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":770,"author":{"gitId":"sopa301"},"content":" \"engines\": [","isFullCredit":false},{"lineNumber":771,"author":{"gitId":"sopa301"},"content":" \"node \u003e\u003d0.6.0\"","isFullCredit":false},{"lineNumber":772,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":773,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":774,"author":{"gitId":"sopa301"},"content":" \"node_modules/fd-slicer\": {","isFullCredit":false},{"lineNumber":775,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.0\",","isFullCredit":false},{"lineNumber":776,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz\",","isFullCredit":false},{"lineNumber":777,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g\u003d\u003d\",","isFullCredit":false},{"lineNumber":778,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":779,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":780,"author":{"gitId":"sopa301"},"content":" \"pend\": \"~1.2.0\"","isFullCredit":false},{"lineNumber":781,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":782,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":783,"author":{"gitId":"sopa301"},"content":" \"node_modules/figures\": {","isFullCredit":false},{"lineNumber":784,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.2.0\",","isFullCredit":false},{"lineNumber":785,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/figures/-/figures-3.2.0.tgz\",","isFullCredit":false},{"lineNumber":786,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg\u003d\u003d\",","isFullCredit":false},{"lineNumber":787,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":788,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":789,"author":{"gitId":"sopa301"},"content":" \"escape-string-regexp\": \"^1.0.5\"","isFullCredit":false},{"lineNumber":790,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":791,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":792,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":793,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":794,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":795,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":796,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":797,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":798,"author":{"gitId":"sopa301"},"content":" \"node_modules/forever-agent\": {","isFullCredit":false},{"lineNumber":799,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.6.1\",","isFullCredit":false},{"lineNumber":800,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz\",","isFullCredit":false},{"lineNumber":801,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw\u003d\u003d\",","isFullCredit":false},{"lineNumber":802,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":803,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":804,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":805,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":806,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":807,"author":{"gitId":"sopa301"},"content":" \"node_modules/form-data\": {","isFullCredit":false},{"lineNumber":808,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.3\",","isFullCredit":false},{"lineNumber":809,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz\",","isFullCredit":false},{"lineNumber":810,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":811,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":812,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":813,"author":{"gitId":"sopa301"},"content":" \"asynckit\": \"^0.4.0\",","isFullCredit":false},{"lineNumber":814,"author":{"gitId":"sopa301"},"content":" \"combined-stream\": \"^1.0.6\",","isFullCredit":false},{"lineNumber":815,"author":{"gitId":"sopa301"},"content":" \"mime-types\": \"^2.1.12\"","isFullCredit":false},{"lineNumber":816,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":817,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":818,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.12\"","isFullCredit":false},{"lineNumber":819,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":820,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":821,"author":{"gitId":"sopa301"},"content":" \"node_modules/fs-extra\": {","isFullCredit":false},{"lineNumber":822,"author":{"gitId":"sopa301"},"content":" \"version\": \"9.1.0\",","isFullCredit":false},{"lineNumber":823,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz\",","isFullCredit":false},{"lineNumber":824,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":825,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":826,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":827,"author":{"gitId":"sopa301"},"content":" \"at-least-node\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":828,"author":{"gitId":"sopa301"},"content":" \"graceful-fs\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":829,"author":{"gitId":"sopa301"},"content":" \"jsonfile\": \"^6.0.1\",","isFullCredit":false},{"lineNumber":830,"author":{"gitId":"sopa301"},"content":" \"universalify\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":831,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":832,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":833,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":834,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":835,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":836,"author":{"gitId":"sopa301"},"content":" \"node_modules/fs-extra/node_modules/universalify\": {","isFullCredit":false},{"lineNumber":837,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":838,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":839,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":840,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":841,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":842,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 10.0.0\"","isFullCredit":false},{"lineNumber":843,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":844,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":845,"author":{"gitId":"sopa301"},"content":" \"node_modules/fs.realpath\": {","isFullCredit":false},{"lineNumber":846,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":847,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":848,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw\u003d\u003d\",","isFullCredit":false},{"lineNumber":849,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":850,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":851,"author":{"gitId":"sopa301"},"content":" \"node_modules/function-bind\": {","isFullCredit":false},{"lineNumber":852,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.1\",","isFullCredit":false},{"lineNumber":853,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz\",","isFullCredit":false},{"lineNumber":854,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A\u003d\u003d\",","isFullCredit":false},{"lineNumber":855,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":856,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":857,"author":{"gitId":"sopa301"},"content":" \"node_modules/get-intrinsic\": {","isFullCredit":false},{"lineNumber":858,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":859,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz\",","isFullCredit":false},{"lineNumber":860,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw\u003d\u003d\",","isFullCredit":false},{"lineNumber":861,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":862,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":863,"author":{"gitId":"sopa301"},"content":" \"function-bind\": \"^1.1.1\",","isFullCredit":false},{"lineNumber":864,"author":{"gitId":"sopa301"},"content":" \"has\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":865,"author":{"gitId":"sopa301"},"content":" \"has-proto\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":866,"author":{"gitId":"sopa301"},"content":" \"has-symbols\": \"^1.0.3\"","isFullCredit":false},{"lineNumber":867,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":868,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":869,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":870,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":871,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":872,"author":{"gitId":"sopa301"},"content":" \"node_modules/get-stream\": {","isFullCredit":false},{"lineNumber":873,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.2.0\",","isFullCredit":false},{"lineNumber":874,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz\",","isFullCredit":false},{"lineNumber":875,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA\u003d\u003d\",","isFullCredit":false},{"lineNumber":876,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":877,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":878,"author":{"gitId":"sopa301"},"content":" \"pump\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":879,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":880,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":881,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":882,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":883,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":884,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":885,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":886,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":887,"author":{"gitId":"sopa301"},"content":" \"node_modules/getos\": {","isFullCredit":false},{"lineNumber":888,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.2.1\",","isFullCredit":false},{"lineNumber":889,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/getos/-/getos-3.2.1.tgz\",","isFullCredit":false},{"lineNumber":890,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":891,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":892,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":893,"author":{"gitId":"sopa301"},"content":" \"async\": \"^3.2.0\"","isFullCredit":false},{"lineNumber":894,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":895,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":896,"author":{"gitId":"sopa301"},"content":" \"node_modules/getpass\": {","isFullCredit":false},{"lineNumber":897,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.1.7\",","isFullCredit":false},{"lineNumber":898,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz\",","isFullCredit":false},{"lineNumber":899,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng\u003d\u003d\",","isFullCredit":false},{"lineNumber":900,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":901,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":902,"author":{"gitId":"sopa301"},"content":" \"assert-plus\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":903,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":904,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":905,"author":{"gitId":"sopa301"},"content":" \"node_modules/glob\": {","isFullCredit":false},{"lineNumber":906,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.2.3\",","isFullCredit":false},{"lineNumber":907,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/glob/-/glob-7.2.3.tgz\",","isFullCredit":false},{"lineNumber":908,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":909,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":910,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":911,"author":{"gitId":"sopa301"},"content":" \"fs.realpath\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":912,"author":{"gitId":"sopa301"},"content":" \"inflight\": \"^1.0.4\",","isFullCredit":false},{"lineNumber":913,"author":{"gitId":"sopa301"},"content":" \"inherits\": \"2\",","isFullCredit":false},{"lineNumber":914,"author":{"gitId":"sopa301"},"content":" \"minimatch\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":915,"author":{"gitId":"sopa301"},"content":" \"once\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":916,"author":{"gitId":"sopa301"},"content":" \"path-is-absolute\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":917,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":918,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":919,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":920,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":921,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":922,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/isaacs\"","isFullCredit":false},{"lineNumber":923,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":924,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":925,"author":{"gitId":"sopa301"},"content":" \"node_modules/global-dirs\": {","isFullCredit":false},{"lineNumber":926,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":927,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz\",","isFullCredit":false},{"lineNumber":928,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA\u003d\u003d\",","isFullCredit":false},{"lineNumber":929,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":930,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":931,"author":{"gitId":"sopa301"},"content":" \"ini\": \"2.0.0\"","isFullCredit":false},{"lineNumber":932,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":933,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":934,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":935,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":936,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":937,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":938,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":939,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":940,"author":{"gitId":"sopa301"},"content":" \"node_modules/graceful-fs\": {","isFullCredit":false},{"lineNumber":941,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.2.11\",","isFullCredit":false},{"lineNumber":942,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz\",","isFullCredit":false},{"lineNumber":943,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":944,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":945,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":946,"author":{"gitId":"sopa301"},"content":" \"node_modules/has\": {","isFullCredit":false},{"lineNumber":947,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":948,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/has/-/has-1.0.4.tgz\",","isFullCredit":false},{"lineNumber":949,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":950,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":951,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":952,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4.0\"","isFullCredit":false},{"lineNumber":953,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":954,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":955,"author":{"gitId":"sopa301"},"content":" \"node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":956,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":957,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":958,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":959,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":960,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":961,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":962,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":963,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":964,"author":{"gitId":"sopa301"},"content":" \"node_modules/has-proto\": {","isFullCredit":false},{"lineNumber":965,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":966,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz\",","isFullCredit":false},{"lineNumber":967,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg\u003d\u003d\",","isFullCredit":false},{"lineNumber":968,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":969,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":970,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":971,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":972,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":973,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":974,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":975,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":976,"author":{"gitId":"sopa301"},"content":" \"node_modules/has-symbols\": {","isFullCredit":false},{"lineNumber":977,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":978,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz\",","isFullCredit":false},{"lineNumber":979,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A\u003d\u003d\",","isFullCredit":false},{"lineNumber":980,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":981,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":982,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":983,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":984,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":985,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":986,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":987,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":988,"author":{"gitId":"sopa301"},"content":" \"node_modules/http-signature\": {","isFullCredit":false},{"lineNumber":989,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.3.6\",","isFullCredit":false},{"lineNumber":990,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz\",","isFullCredit":false},{"lineNumber":991,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw\u003d\u003d\",","isFullCredit":false},{"lineNumber":992,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":993,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":994,"author":{"gitId":"sopa301"},"content":" \"assert-plus\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":995,"author":{"gitId":"sopa301"},"content":" \"jsprim\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":996,"author":{"gitId":"sopa301"},"content":" \"sshpk\": \"^1.14.1\"","isFullCredit":false},{"lineNumber":997,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":998,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":999,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10\"","isFullCredit":false},{"lineNumber":1000,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1001,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1002,"author":{"gitId":"sopa301"},"content":" \"node_modules/human-signals\": {","isFullCredit":false},{"lineNumber":1003,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.1\",","isFullCredit":false},{"lineNumber":1004,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz\",","isFullCredit":false},{"lineNumber":1005,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1006,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1007,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1008,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8.12.0\"","isFullCredit":false},{"lineNumber":1009,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1010,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1011,"author":{"gitId":"sopa301"},"content":" \"node_modules/ieee754\": {","isFullCredit":false},{"lineNumber":1012,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":1013,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz\",","isFullCredit":false},{"lineNumber":1014,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1015,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1016,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":1017,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":1018,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":1019,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":1020,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1021,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":1022,"author":{"gitId":"sopa301"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":1023,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":1024,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1025,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":1026,"author":{"gitId":"sopa301"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":1027,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":1028,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1029,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1030,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1031,"author":{"gitId":"sopa301"},"content":" \"node_modules/indent-string\": {","isFullCredit":false},{"lineNumber":1032,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1033,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1034,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1035,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1036,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1037,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1038,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1039,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1040,"author":{"gitId":"sopa301"},"content":" \"node_modules/inflight\": {","isFullCredit":false},{"lineNumber":1041,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.6\",","isFullCredit":false},{"lineNumber":1042,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz\",","isFullCredit":false},{"lineNumber":1043,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1044,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1045,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1046,"author":{"gitId":"sopa301"},"content":" \"once\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":1047,"author":{"gitId":"sopa301"},"content":" \"wrappy\": \"1\"","isFullCredit":false},{"lineNumber":1048,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1049,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1050,"author":{"gitId":"sopa301"},"content":" \"node_modules/inherits\": {","isFullCredit":false},{"lineNumber":1051,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.4\",","isFullCredit":false},{"lineNumber":1052,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz\",","isFullCredit":false},{"lineNumber":1053,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1054,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1055,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1056,"author":{"gitId":"sopa301"},"content":" \"node_modules/ini\": {","isFullCredit":false},{"lineNumber":1057,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":1058,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ini/-/ini-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":1059,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1060,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1061,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1062,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1063,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1064,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1065,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-ci\": {","isFullCredit":false},{"lineNumber":1066,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":1067,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz\",","isFullCredit":false},{"lineNumber":1068,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1069,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1070,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1071,"author":{"gitId":"sopa301"},"content":" \"ci-info\": \"^3.2.0\"","isFullCredit":false},{"lineNumber":1072,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1073,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":1074,"author":{"gitId":"sopa301"},"content":" \"is-ci\": \"bin.js\"","isFullCredit":false},{"lineNumber":1075,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1076,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1077,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-fullwidth-code-point\": {","isFullCredit":false},{"lineNumber":1078,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":1079,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":1080,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1081,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1082,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1083,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1084,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1085,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1086,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-installed-globally\": {","isFullCredit":false},{"lineNumber":1087,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":1088,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz\",","isFullCredit":false},{"lineNumber":1089,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1090,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1091,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1092,"author":{"gitId":"sopa301"},"content":" \"global-dirs\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":1093,"author":{"gitId":"sopa301"},"content":" \"is-path-inside\": \"^3.0.2\"","isFullCredit":false},{"lineNumber":1094,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1095,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1096,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1097,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1098,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1099,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1100,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1101,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1102,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-path-inside\": {","isFullCredit":false},{"lineNumber":1103,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.3\",","isFullCredit":false},{"lineNumber":1104,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz\",","isFullCredit":false},{"lineNumber":1105,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1106,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1107,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1108,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1109,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1110,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1111,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-stream\": {","isFullCredit":false},{"lineNumber":1112,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":1113,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz\",","isFullCredit":false},{"lineNumber":1114,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1115,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1116,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1117,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1118,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1119,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1120,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1121,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1122,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1123,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-typedarray\": {","isFullCredit":false},{"lineNumber":1124,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":1125,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":1126,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1127,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1128,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1129,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-unicode-supported\": {","isFullCredit":false},{"lineNumber":1130,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.1.0\",","isFullCredit":false},{"lineNumber":1131,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz\",","isFullCredit":false},{"lineNumber":1132,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1133,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1134,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1135,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1136,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1137,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1138,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1139,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1140,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1141,"author":{"gitId":"sopa301"},"content":" \"node_modules/isexe\": {","isFullCredit":false},{"lineNumber":1142,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":1143,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":1144,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1145,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1146,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1147,"author":{"gitId":"sopa301"},"content":" \"node_modules/isstream\": {","isFullCredit":false},{"lineNumber":1148,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.1.2\",","isFullCredit":false},{"lineNumber":1149,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz\",","isFullCredit":false},{"lineNumber":1150,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g\u003d\u003d\",","isFullCredit":false},{"lineNumber":1151,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1152,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1153,"author":{"gitId":"sopa301"},"content":" \"node_modules/jsbn\": {","isFullCredit":false},{"lineNumber":1154,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.1.1\",","isFullCredit":false},{"lineNumber":1155,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz\",","isFullCredit":false},{"lineNumber":1156,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1157,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1158,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1159,"author":{"gitId":"sopa301"},"content":" \"node_modules/json-schema\": {","isFullCredit":false},{"lineNumber":1160,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":1161,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz\",","isFullCredit":false},{"lineNumber":1162,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1163,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1164,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1165,"author":{"gitId":"sopa301"},"content":" \"node_modules/json-stringify-safe\": {","isFullCredit":false},{"lineNumber":1166,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.1\",","isFullCredit":false},{"lineNumber":1167,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz\",","isFullCredit":false},{"lineNumber":1168,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1169,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1170,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1171,"author":{"gitId":"sopa301"},"content":" \"node_modules/jsonfile\": {","isFullCredit":false},{"lineNumber":1172,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.1.0\",","isFullCredit":false},{"lineNumber":1173,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz\",","isFullCredit":false},{"lineNumber":1174,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1175,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1176,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1177,"author":{"gitId":"sopa301"},"content":" \"universalify\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":1178,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1179,"author":{"gitId":"sopa301"},"content":" \"optionalDependencies\": {","isFullCredit":false},{"lineNumber":1180,"author":{"gitId":"sopa301"},"content":" \"graceful-fs\": \"^4.1.6\"","isFullCredit":false},{"lineNumber":1181,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1182,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1183,"author":{"gitId":"sopa301"},"content":" \"node_modules/jsonfile/node_modules/universalify\": {","isFullCredit":false},{"lineNumber":1184,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":1185,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":1186,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1187,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1188,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1189,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 10.0.0\"","isFullCredit":false},{"lineNumber":1190,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1191,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1192,"author":{"gitId":"sopa301"},"content":" \"node_modules/jsprim\": {","isFullCredit":false},{"lineNumber":1193,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":1194,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz\",","isFullCredit":false},{"lineNumber":1195,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1196,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1197,"author":{"gitId":"sopa301"},"content":" \"engines\": [","isFullCredit":false},{"lineNumber":1198,"author":{"gitId":"sopa301"},"content":" \"node \u003e\u003d0.6.0\"","isFullCredit":false},{"lineNumber":1199,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1200,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1201,"author":{"gitId":"sopa301"},"content":" \"assert-plus\": \"1.0.0\",","isFullCredit":false},{"lineNumber":1202,"author":{"gitId":"sopa301"},"content":" \"extsprintf\": \"1.3.0\",","isFullCredit":false},{"lineNumber":1203,"author":{"gitId":"sopa301"},"content":" \"json-schema\": \"0.4.0\",","isFullCredit":false},{"lineNumber":1204,"author":{"gitId":"sopa301"},"content":" \"verror\": \"1.10.0\"","isFullCredit":false},{"lineNumber":1205,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1206,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1207,"author":{"gitId":"sopa301"},"content":" \"node_modules/lazy-ass\": {","isFullCredit":false},{"lineNumber":1208,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.6.0\",","isFullCredit":false},{"lineNumber":1209,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz\",","isFullCredit":false},{"lineNumber":1210,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1211,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1212,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1213,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e 0.8\"","isFullCredit":false},{"lineNumber":1214,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1215,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1216,"author":{"gitId":"sopa301"},"content":" \"node_modules/listr2\": {","isFullCredit":false},{"lineNumber":1217,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.14.0\",","isFullCredit":false},{"lineNumber":1218,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz\",","isFullCredit":false},{"lineNumber":1219,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g\u003d\u003d\",","isFullCredit":false},{"lineNumber":1220,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1221,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1222,"author":{"gitId":"sopa301"},"content":" \"cli-truncate\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":1223,"author":{"gitId":"sopa301"},"content":" \"colorette\": \"^2.0.16\",","isFullCredit":false},{"lineNumber":1224,"author":{"gitId":"sopa301"},"content":" \"log-update\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":1225,"author":{"gitId":"sopa301"},"content":" \"p-map\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":1226,"author":{"gitId":"sopa301"},"content":" \"rfdc\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":1227,"author":{"gitId":"sopa301"},"content":" \"rxjs\": \"^7.5.1\",","isFullCredit":false},{"lineNumber":1228,"author":{"gitId":"sopa301"},"content":" \"through\": \"^2.3.8\",","isFullCredit":false},{"lineNumber":1229,"author":{"gitId":"sopa301"},"content":" \"wrap-ansi\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":1230,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1231,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1232,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10.0.0\"","isFullCredit":false},{"lineNumber":1233,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1234,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1235,"author":{"gitId":"sopa301"},"content":" \"enquirer\": \"\u003e\u003d 2.3.0 \u003c 3\"","isFullCredit":false},{"lineNumber":1236,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1237,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":1238,"author":{"gitId":"sopa301"},"content":" \"enquirer\": {","isFullCredit":false},{"lineNumber":1239,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":1240,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1241,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1242,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1243,"author":{"gitId":"sopa301"},"content":" \"node_modules/lodash\": {","isFullCredit":false},{"lineNumber":1244,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.21\",","isFullCredit":false},{"lineNumber":1245,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",","isFullCredit":false},{"lineNumber":1246,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1247,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1248,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1249,"author":{"gitId":"sopa301"},"content":" \"node_modules/lodash.once\": {","isFullCredit":false},{"lineNumber":1250,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.1\",","isFullCredit":false},{"lineNumber":1251,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz\",","isFullCredit":false},{"lineNumber":1252,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1253,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1254,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1255,"author":{"gitId":"sopa301"},"content":" \"node_modules/log-symbols\": {","isFullCredit":false},{"lineNumber":1256,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":1257,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz\",","isFullCredit":false},{"lineNumber":1258,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1259,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1260,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1261,"author":{"gitId":"sopa301"},"content":" \"chalk\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":1262,"author":{"gitId":"sopa301"},"content":" \"is-unicode-supported\": \"^0.1.0\"","isFullCredit":false},{"lineNumber":1263,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1264,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1265,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1266,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1267,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1268,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1269,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1270,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1271,"author":{"gitId":"sopa301"},"content":" \"node_modules/log-update\": {","isFullCredit":false},{"lineNumber":1272,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1273,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1274,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1275,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1276,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1277,"author":{"gitId":"sopa301"},"content":" \"ansi-escapes\": \"^4.3.0\",","isFullCredit":false},{"lineNumber":1278,"author":{"gitId":"sopa301"},"content":" \"cli-cursor\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":1279,"author":{"gitId":"sopa301"},"content":" \"slice-ansi\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":1280,"author":{"gitId":"sopa301"},"content":" \"wrap-ansi\": \"^6.2.0\"","isFullCredit":false},{"lineNumber":1281,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1282,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1283,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1284,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1285,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1286,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1287,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1288,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1289,"author":{"gitId":"sopa301"},"content":" \"node_modules/log-update/node_modules/slice-ansi\": {","isFullCredit":false},{"lineNumber":1290,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1291,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1292,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1293,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1294,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1295,"author":{"gitId":"sopa301"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":1296,"author":{"gitId":"sopa301"},"content":" \"astral-regex\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":1297,"author":{"gitId":"sopa301"},"content":" \"is-fullwidth-code-point\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":1298,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1299,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1300,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1301,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1302,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1303,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/slice-ansi?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":1304,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1305,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1306,"author":{"gitId":"sopa301"},"content":" \"node_modules/log-update/node_modules/wrap-ansi\": {","isFullCredit":false},{"lineNumber":1307,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.2.0\",","isFullCredit":false},{"lineNumber":1308,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz\",","isFullCredit":false},{"lineNumber":1309,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1310,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1311,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1312,"author":{"gitId":"sopa301"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":1313,"author":{"gitId":"sopa301"},"content":" \"string-width\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":1314,"author":{"gitId":"sopa301"},"content":" \"strip-ansi\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":1315,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1316,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1317,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1318,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1319,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1320,"author":{"gitId":"sopa301"},"content":" \"node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":1321,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":1322,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":1323,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1324,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1325,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1326,"author":{"gitId":"sopa301"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":1327,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1328,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1329,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1330,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1331,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1332,"author":{"gitId":"sopa301"},"content":" \"node_modules/merge-stream\": {","isFullCredit":false},{"lineNumber":1333,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":1334,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":1335,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w\u003d\u003d\",","isFullCredit":false},{"lineNumber":1336,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1337,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1338,"author":{"gitId":"sopa301"},"content":" \"node_modules/mime-db\": {","isFullCredit":false},{"lineNumber":1339,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.52.0\",","isFullCredit":false},{"lineNumber":1340,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz\",","isFullCredit":false},{"lineNumber":1341,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1342,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1343,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1344,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":1345,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1346,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1347,"author":{"gitId":"sopa301"},"content":" \"node_modules/mime-types\": {","isFullCredit":false},{"lineNumber":1348,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.35\",","isFullCredit":false},{"lineNumber":1349,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz\",","isFullCredit":false},{"lineNumber":1350,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1351,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1352,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1353,"author":{"gitId":"sopa301"},"content":" \"mime-db\": \"1.52.0\"","isFullCredit":false},{"lineNumber":1354,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1355,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1356,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":1357,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1358,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1359,"author":{"gitId":"sopa301"},"content":" \"node_modules/mimic-fn\": {","isFullCredit":false},{"lineNumber":1360,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":1361,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz\",","isFullCredit":false},{"lineNumber":1362,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1363,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1364,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1365,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":1366,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1367,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1368,"author":{"gitId":"sopa301"},"content":" \"node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":1369,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":1370,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz\",","isFullCredit":false},{"lineNumber":1371,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1372,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1373,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1374,"author":{"gitId":"sopa301"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":1375,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1376,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1377,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":1378,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1379,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1380,"author":{"gitId":"sopa301"},"content":" \"node_modules/minimist\": {","isFullCredit":false},{"lineNumber":1381,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.8\",","isFullCredit":false},{"lineNumber":1382,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz\",","isFullCredit":false},{"lineNumber":1383,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1384,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1385,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1386,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":1387,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1388,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1389,"author":{"gitId":"sopa301"},"content":" \"node_modules/ms\": {","isFullCredit":false},{"lineNumber":1390,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.3\",","isFullCredit":false},{"lineNumber":1391,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",","isFullCredit":false},{"lineNumber":1392,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1393,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1394,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1395,"author":{"gitId":"sopa301"},"content":" \"node_modules/npm-run-path\": {","isFullCredit":false},{"lineNumber":1396,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.1\",","isFullCredit":false},{"lineNumber":1397,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz\",","isFullCredit":false},{"lineNumber":1398,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1399,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1400,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1401,"author":{"gitId":"sopa301"},"content":" \"path-key\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":1402,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1403,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1404,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1405,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1406,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1407,"author":{"gitId":"sopa301"},"content":" \"node_modules/object-inspect\": {","isFullCredit":false},{"lineNumber":1408,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.12.3\",","isFullCredit":false},{"lineNumber":1409,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz\",","isFullCredit":false},{"lineNumber":1410,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g\u003d\u003d\",","isFullCredit":false},{"lineNumber":1411,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1412,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1413,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":1414,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1415,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1416,"author":{"gitId":"sopa301"},"content":" \"node_modules/once\": {","isFullCredit":false},{"lineNumber":1417,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":1418,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/once/-/once-1.4.0.tgz\",","isFullCredit":false},{"lineNumber":1419,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w\u003d\u003d\",","isFullCredit":false},{"lineNumber":1420,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1421,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1422,"author":{"gitId":"sopa301"},"content":" \"wrappy\": \"1\"","isFullCredit":false},{"lineNumber":1423,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1424,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1425,"author":{"gitId":"sopa301"},"content":" \"node_modules/onetime\": {","isFullCredit":false},{"lineNumber":1426,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.1.2\",","isFullCredit":false},{"lineNumber":1427,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz\",","isFullCredit":false},{"lineNumber":1428,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1429,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1430,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1431,"author":{"gitId":"sopa301"},"content":" \"mimic-fn\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":1432,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1433,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1434,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":1435,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1436,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1437,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1438,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1439,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1440,"author":{"gitId":"sopa301"},"content":" \"node_modules/ospath\": {","isFullCredit":false},{"lineNumber":1441,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.2\",","isFullCredit":false},{"lineNumber":1442,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz\",","isFullCredit":false},{"lineNumber":1443,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1444,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1445,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1446,"author":{"gitId":"sopa301"},"content":" \"node_modules/p-map\": {","isFullCredit":false},{"lineNumber":1447,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1448,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1449,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1450,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1451,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1452,"author":{"gitId":"sopa301"},"content":" \"aggregate-error\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":1453,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1454,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1455,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1456,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1457,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1458,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1459,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1460,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1461,"author":{"gitId":"sopa301"},"content":" \"node_modules/path-is-absolute\": {","isFullCredit":false},{"lineNumber":1462,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":1463,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz\",","isFullCredit":false},{"lineNumber":1464,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1465,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1466,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1467,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":1468,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1469,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1470,"author":{"gitId":"sopa301"},"content":" \"node_modules/path-key\": {","isFullCredit":false},{"lineNumber":1471,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":1472,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz\",","isFullCredit":false},{"lineNumber":1473,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":1474,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1475,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1476,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1477,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1478,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1479,"author":{"gitId":"sopa301"},"content":" \"node_modules/pend\": {","isFullCredit":false},{"lineNumber":1480,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":1481,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/pend/-/pend-1.2.0.tgz\",","isFullCredit":false},{"lineNumber":1482,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1483,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1484,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1485,"author":{"gitId":"sopa301"},"content":" \"node_modules/performance-now\": {","isFullCredit":false},{"lineNumber":1486,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":1487,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz\",","isFullCredit":false},{"lineNumber":1488,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow\u003d\u003d\",","isFullCredit":false},{"lineNumber":1489,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1490,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1491,"author":{"gitId":"sopa301"},"content":" \"node_modules/pify\": {","isFullCredit":false},{"lineNumber":1492,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":1493,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/pify/-/pify-2.3.0.tgz\",","isFullCredit":false},{"lineNumber":1494,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog\u003d\u003d\",","isFullCredit":false},{"lineNumber":1495,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1496,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1497,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":1498,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1499,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1500,"author":{"gitId":"sopa301"},"content":" \"node_modules/pretty-bytes\": {","isFullCredit":false},{"lineNumber":1501,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.6.0\",","isFullCredit":false},{"lineNumber":1502,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz\",","isFullCredit":false},{"lineNumber":1503,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1504,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1505,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1506,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":1507,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1508,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1509,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1510,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1511,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1512,"author":{"gitId":"sopa301"},"content":" \"node_modules/process\": {","isFullCredit":false},{"lineNumber":1513,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.11.10\",","isFullCredit":false},{"lineNumber":1514,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/process/-/process-0.11.10.tgz\",","isFullCredit":false},{"lineNumber":1515,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1516,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1517,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1518,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.6.0\"","isFullCredit":false},{"lineNumber":1519,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1520,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1521,"author":{"gitId":"sopa301"},"content":" \"node_modules/proxy-from-env\": {","isFullCredit":false},{"lineNumber":1522,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":1523,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":1524,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1525,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1526,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1527,"author":{"gitId":"sopa301"},"content":" \"node_modules/psl\": {","isFullCredit":false},{"lineNumber":1528,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.9.0\",","isFullCredit":false},{"lineNumber":1529,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/psl/-/psl-1.9.0.tgz\",","isFullCredit":false},{"lineNumber":1530,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag\u003d\u003d\",","isFullCredit":false},{"lineNumber":1531,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1532,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1533,"author":{"gitId":"sopa301"},"content":" \"node_modules/pump\": {","isFullCredit":false},{"lineNumber":1534,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":1535,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/pump/-/pump-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":1536,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww\u003d\u003d\",","isFullCredit":false},{"lineNumber":1537,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1538,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1539,"author":{"gitId":"sopa301"},"content":" \"end-of-stream\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":1540,"author":{"gitId":"sopa301"},"content":" \"once\": \"^1.3.1\"","isFullCredit":false},{"lineNumber":1541,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1542,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1543,"author":{"gitId":"sopa301"},"content":" \"node_modules/punycode\": {","isFullCredit":false},{"lineNumber":1544,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":1545,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz\",","isFullCredit":false},{"lineNumber":1546,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1547,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1548,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1549,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":1550,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1551,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1552,"author":{"gitId":"sopa301"},"content":" \"node_modules/qs\": {","isFullCredit":false},{"lineNumber":1553,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.10.4\",","isFullCredit":false},{"lineNumber":1554,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/qs/-/qs-6.10.4.tgz\",","isFullCredit":false},{"lineNumber":1555,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g\u003d\u003d\",","isFullCredit":false},{"lineNumber":1556,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1557,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1558,"author":{"gitId":"sopa301"},"content":" \"side-channel\": \"^1.0.4\"","isFullCredit":false},{"lineNumber":1559,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1560,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1561,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.6\"","isFullCredit":false},{"lineNumber":1562,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1563,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1564,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":1565,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1566,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1567,"author":{"gitId":"sopa301"},"content":" \"node_modules/querystringify\": {","isFullCredit":false},{"lineNumber":1568,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":1569,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz\",","isFullCredit":false},{"lineNumber":1570,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1571,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1572,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1573,"author":{"gitId":"sopa301"},"content":" \"node_modules/request-progress\": {","isFullCredit":false},{"lineNumber":1574,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":1575,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":1576,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1577,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1578,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1579,"author":{"gitId":"sopa301"},"content":" \"throttleit\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":1580,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1581,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1582,"author":{"gitId":"sopa301"},"content":" \"node_modules/requires-port\": {","isFullCredit":false},{"lineNumber":1583,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":1584,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":1585,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1586,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1587,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1588,"author":{"gitId":"sopa301"},"content":" \"node_modules/restore-cursor\": {","isFullCredit":false},{"lineNumber":1589,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":1590,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz\",","isFullCredit":false},{"lineNumber":1591,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1592,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1593,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1594,"author":{"gitId":"sopa301"},"content":" \"onetime\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":1595,"author":{"gitId":"sopa301"},"content":" \"signal-exit\": \"^3.0.2\"","isFullCredit":false},{"lineNumber":1596,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1597,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1598,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1599,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1600,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1601,"author":{"gitId":"sopa301"},"content":" \"node_modules/rfdc\": {","isFullCredit":false},{"lineNumber":1602,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.3.0\",","isFullCredit":false},{"lineNumber":1603,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz\",","isFullCredit":false},{"lineNumber":1604,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1605,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1606,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1607,"author":{"gitId":"sopa301"},"content":" \"node_modules/rimraf\": {","isFullCredit":false},{"lineNumber":1608,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.2\",","isFullCredit":false},{"lineNumber":1609,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz\",","isFullCredit":false},{"lineNumber":1610,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1611,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1612,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1613,"author":{"gitId":"sopa301"},"content":" \"glob\": \"^7.1.3\"","isFullCredit":false},{"lineNumber":1614,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1615,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":1616,"author":{"gitId":"sopa301"},"content":" \"rimraf\": \"bin.js\"","isFullCredit":false},{"lineNumber":1617,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1618,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1619,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/isaacs\"","isFullCredit":false},{"lineNumber":1620,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1621,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1622,"author":{"gitId":"sopa301"},"content":" \"node_modules/rxjs\": {","isFullCredit":false},{"lineNumber":1623,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.8.1\",","isFullCredit":false},{"lineNumber":1624,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz\",","isFullCredit":false},{"lineNumber":1625,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1626,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1627,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1628,"author":{"gitId":"sopa301"},"content":" \"tslib\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":1629,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1630,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1631,"author":{"gitId":"sopa301"},"content":" \"node_modules/safe-buffer\": {","isFullCredit":false},{"lineNumber":1632,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.2.1\",","isFullCredit":false},{"lineNumber":1633,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz\",","isFullCredit":false},{"lineNumber":1634,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1635,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1636,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":1637,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":1638,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":1639,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":1640,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1641,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":1642,"author":{"gitId":"sopa301"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":1643,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":1644,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1645,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":1646,"author":{"gitId":"sopa301"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":1647,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":1648,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1649,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1650,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1651,"author":{"gitId":"sopa301"},"content":" \"node_modules/safer-buffer\": {","isFullCredit":false},{"lineNumber":1652,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.2\",","isFullCredit":false},{"lineNumber":1653,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz\",","isFullCredit":false},{"lineNumber":1654,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1655,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1656,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1657,"author":{"gitId":"sopa301"},"content":" \"node_modules/semver\": {","isFullCredit":false},{"lineNumber":1658,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.5.4\",","isFullCredit":false},{"lineNumber":1659,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.5.4.tgz\",","isFullCredit":false},{"lineNumber":1660,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1661,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1662,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1663,"author":{"gitId":"sopa301"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":1664,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1665,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":1666,"author":{"gitId":"sopa301"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":1667,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1668,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1669,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1670,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1671,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1672,"author":{"gitId":"sopa301"},"content":" \"node_modules/shebang-command\": {","isFullCredit":false},{"lineNumber":1673,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":1674,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":1675,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1676,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1677,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1678,"author":{"gitId":"sopa301"},"content":" \"shebang-regex\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":1679,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1680,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1681,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1682,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1683,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1684,"author":{"gitId":"sopa301"},"content":" \"node_modules/shebang-regex\": {","isFullCredit":false},{"lineNumber":1685,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":1686,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":1687,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1688,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1689,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1690,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1691,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1692,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1693,"author":{"gitId":"sopa301"},"content":" \"node_modules/side-channel\": {","isFullCredit":false},{"lineNumber":1694,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":1695,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz\",","isFullCredit":false},{"lineNumber":1696,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1697,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1698,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1699,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":1700,"author":{"gitId":"sopa301"},"content":" \"get-intrinsic\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":1701,"author":{"gitId":"sopa301"},"content":" \"object-inspect\": \"^1.9.0\"","isFullCredit":false},{"lineNumber":1702,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1703,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1704,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":1705,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1706,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1707,"author":{"gitId":"sopa301"},"content":" \"node_modules/signal-exit\": {","isFullCredit":false},{"lineNumber":1708,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.7\",","isFullCredit":false},{"lineNumber":1709,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz\",","isFullCredit":false},{"lineNumber":1710,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1711,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1712,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1713,"author":{"gitId":"sopa301"},"content":" \"node_modules/slice-ansi\": {","isFullCredit":false},{"lineNumber":1714,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":1715,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":1716,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1717,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1718,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1719,"author":{"gitId":"sopa301"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":1720,"author":{"gitId":"sopa301"},"content":" \"astral-regex\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":1721,"author":{"gitId":"sopa301"},"content":" \"is-fullwidth-code-point\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":1722,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1723,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1724,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1725,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1726,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1727,"author":{"gitId":"sopa301"},"content":" \"node_modules/sshpk\": {","isFullCredit":false},{"lineNumber":1728,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.17.0\",","isFullCredit":false},{"lineNumber":1729,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz\",","isFullCredit":false},{"lineNumber":1730,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1731,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1732,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1733,"author":{"gitId":"sopa301"},"content":" \"asn1\": \"~0.2.3\",","isFullCredit":false},{"lineNumber":1734,"author":{"gitId":"sopa301"},"content":" \"assert-plus\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":1735,"author":{"gitId":"sopa301"},"content":" \"bcrypt-pbkdf\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":1736,"author":{"gitId":"sopa301"},"content":" \"dashdash\": \"^1.12.0\",","isFullCredit":false},{"lineNumber":1737,"author":{"gitId":"sopa301"},"content":" \"ecc-jsbn\": \"~0.1.1\",","isFullCredit":false},{"lineNumber":1738,"author":{"gitId":"sopa301"},"content":" \"getpass\": \"^0.1.1\",","isFullCredit":false},{"lineNumber":1739,"author":{"gitId":"sopa301"},"content":" \"jsbn\": \"~0.1.0\",","isFullCredit":false},{"lineNumber":1740,"author":{"gitId":"sopa301"},"content":" \"safer-buffer\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":1741,"author":{"gitId":"sopa301"},"content":" \"tweetnacl\": \"~0.14.0\"","isFullCredit":false},{"lineNumber":1742,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1743,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":1744,"author":{"gitId":"sopa301"},"content":" \"sshpk-conv\": \"bin/sshpk-conv\",","isFullCredit":false},{"lineNumber":1745,"author":{"gitId":"sopa301"},"content":" \"sshpk-sign\": \"bin/sshpk-sign\",","isFullCredit":false},{"lineNumber":1746,"author":{"gitId":"sopa301"},"content":" \"sshpk-verify\": \"bin/sshpk-verify\"","isFullCredit":false},{"lineNumber":1747,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1748,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1749,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":1750,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1751,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1752,"author":{"gitId":"sopa301"},"content":" \"node_modules/string-width\": {","isFullCredit":false},{"lineNumber":1753,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.2.3\",","isFullCredit":false},{"lineNumber":1754,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",","isFullCredit":false},{"lineNumber":1755,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g\u003d\u003d\",","isFullCredit":false},{"lineNumber":1756,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1757,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1758,"author":{"gitId":"sopa301"},"content":" \"emoji-regex\": \"^8.0.0\",","isFullCredit":false},{"lineNumber":1759,"author":{"gitId":"sopa301"},"content":" \"is-fullwidth-code-point\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":1760,"author":{"gitId":"sopa301"},"content":" \"strip-ansi\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":1761,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1762,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1763,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1764,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1765,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1766,"author":{"gitId":"sopa301"},"content":" \"node_modules/strip-ansi\": {","isFullCredit":false},{"lineNumber":1767,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.1\",","isFullCredit":false},{"lineNumber":1768,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",","isFullCredit":false},{"lineNumber":1769,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1770,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1771,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1772,"author":{"gitId":"sopa301"},"content":" \"ansi-regex\": \"^5.0.1\"","isFullCredit":false},{"lineNumber":1773,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1774,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1775,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1776,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1777,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1778,"author":{"gitId":"sopa301"},"content":" \"node_modules/strip-final-newline\": {","isFullCredit":false},{"lineNumber":1779,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":1780,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":1781,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1782,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1783,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1784,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":1785,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1786,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1787,"author":{"gitId":"sopa301"},"content":" \"node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":1788,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.1.1\",","isFullCredit":false},{"lineNumber":1789,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",","isFullCredit":false},{"lineNumber":1790,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":1791,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1792,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1793,"author":{"gitId":"sopa301"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":1794,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1795,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1796,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1797,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1798,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1799,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/supports-color?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":1800,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1801,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1802,"author":{"gitId":"sopa301"},"content":" \"node_modules/throttleit\": {","isFullCredit":false},{"lineNumber":1803,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":1804,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":1805,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g\u003d\u003d\",","isFullCredit":false},{"lineNumber":1806,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1807,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1808,"author":{"gitId":"sopa301"},"content":" \"node_modules/through\": {","isFullCredit":false},{"lineNumber":1809,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.8\",","isFullCredit":false},{"lineNumber":1810,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/through/-/through-2.3.8.tgz\",","isFullCredit":false},{"lineNumber":1811,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1812,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1813,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1814,"author":{"gitId":"sopa301"},"content":" \"node_modules/tmp\": {","isFullCredit":false},{"lineNumber":1815,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.2.1\",","isFullCredit":false},{"lineNumber":1816,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz\",","isFullCredit":false},{"lineNumber":1817,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1818,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1819,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1820,"author":{"gitId":"sopa301"},"content":" \"rimraf\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":1821,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1822,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1823,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8.17.0\"","isFullCredit":false},{"lineNumber":1824,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1825,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1826,"author":{"gitId":"sopa301"},"content":" \"node_modules/tough-cookie\": {","isFullCredit":false},{"lineNumber":1827,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.3\",","isFullCredit":false},{"lineNumber":1828,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz\",","isFullCredit":false},{"lineNumber":1829,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1830,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1831,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1832,"author":{"gitId":"sopa301"},"content":" \"psl\": \"^1.1.33\",","isFullCredit":false},{"lineNumber":1833,"author":{"gitId":"sopa301"},"content":" \"punycode\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":1834,"author":{"gitId":"sopa301"},"content":" \"universalify\": \"^0.2.0\",","isFullCredit":false},{"lineNumber":1835,"author":{"gitId":"sopa301"},"content":" \"url-parse\": \"^1.5.3\"","isFullCredit":false},{"lineNumber":1836,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1837,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1838,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":1839,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1840,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1841,"author":{"gitId":"sopa301"},"content":" \"node_modules/tslib\": {","isFullCredit":false},{"lineNumber":1842,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.6.2\",","isFullCredit":false},{"lineNumber":1843,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz\",","isFullCredit":false},{"lineNumber":1844,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":1845,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1846,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1847,"author":{"gitId":"sopa301"},"content":" \"node_modules/tunnel-agent\": {","isFullCredit":false},{"lineNumber":1848,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.6.0\",","isFullCredit":false},{"lineNumber":1849,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz\",","isFullCredit":false},{"lineNumber":1850,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w\u003d\u003d\",","isFullCredit":false},{"lineNumber":1851,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1852,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1853,"author":{"gitId":"sopa301"},"content":" \"safe-buffer\": \"^5.0.1\"","isFullCredit":false},{"lineNumber":1854,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1855,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1856,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":1857,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1858,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1859,"author":{"gitId":"sopa301"},"content":" \"node_modules/tweetnacl\": {","isFullCredit":false},{"lineNumber":1860,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.14.5\",","isFullCredit":false},{"lineNumber":1861,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz\",","isFullCredit":false},{"lineNumber":1862,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1863,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1864,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1865,"author":{"gitId":"sopa301"},"content":" \"node_modules/type-fest\": {","isFullCredit":false},{"lineNumber":1866,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.21.3\",","isFullCredit":false},{"lineNumber":1867,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz\",","isFullCredit":false},{"lineNumber":1868,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w\u003d\u003d\",","isFullCredit":false},{"lineNumber":1869,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1870,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1871,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1872,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1873,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1874,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1875,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1876,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1877,"author":{"gitId":"sopa301"},"content":" \"node_modules/universalify\": {","isFullCredit":false},{"lineNumber":1878,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.2.0\",","isFullCredit":false},{"lineNumber":1879,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz\",","isFullCredit":false},{"lineNumber":1880,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1881,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1882,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1883,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 4.0.0\"","isFullCredit":false},{"lineNumber":1884,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1885,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1886,"author":{"gitId":"sopa301"},"content":" \"node_modules/untildify\": {","isFullCredit":false},{"lineNumber":1887,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1888,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1889,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1890,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1891,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1892,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1893,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1894,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1895,"author":{"gitId":"sopa301"},"content":" \"node_modules/url-parse\": {","isFullCredit":false},{"lineNumber":1896,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.5.10\",","isFullCredit":false},{"lineNumber":1897,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz\",","isFullCredit":false},{"lineNumber":1898,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1899,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1900,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1901,"author":{"gitId":"sopa301"},"content":" \"querystringify\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":1902,"author":{"gitId":"sopa301"},"content":" \"requires-port\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":1903,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1904,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1905,"author":{"gitId":"sopa301"},"content":" \"node_modules/uuid\": {","isFullCredit":false},{"lineNumber":1906,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.3.2\",","isFullCredit":false},{"lineNumber":1907,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz\",","isFullCredit":false},{"lineNumber":1908,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1909,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1910,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":1911,"author":{"gitId":"sopa301"},"content":" \"uuid\": \"dist/bin/uuid\"","isFullCredit":false},{"lineNumber":1912,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1913,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1914,"author":{"gitId":"sopa301"},"content":" \"node_modules/verror\": {","isFullCredit":false},{"lineNumber":1915,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.10.0\",","isFullCredit":false},{"lineNumber":1916,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/verror/-/verror-1.10.0.tgz\",","isFullCredit":false},{"lineNumber":1917,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1918,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1919,"author":{"gitId":"sopa301"},"content":" \"engines\": [","isFullCredit":false},{"lineNumber":1920,"author":{"gitId":"sopa301"},"content":" \"node \u003e\u003d0.6.0\"","isFullCredit":false},{"lineNumber":1921,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1922,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1923,"author":{"gitId":"sopa301"},"content":" \"assert-plus\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":1924,"author":{"gitId":"sopa301"},"content":" \"core-util-is\": \"1.0.2\",","isFullCredit":false},{"lineNumber":1925,"author":{"gitId":"sopa301"},"content":" \"extsprintf\": \"^1.2.0\"","isFullCredit":false},{"lineNumber":1926,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1927,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1928,"author":{"gitId":"sopa301"},"content":" \"node_modules/which\": {","isFullCredit":false},{"lineNumber":1929,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":1930,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/which/-/which-2.0.2.tgz\",","isFullCredit":false},{"lineNumber":1931,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1932,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1933,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1934,"author":{"gitId":"sopa301"},"content":" \"isexe\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":1935,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1936,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":1937,"author":{"gitId":"sopa301"},"content":" \"node-which\": \"bin/node-which\"","isFullCredit":false},{"lineNumber":1938,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1939,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1940,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":1941,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1942,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1943,"author":{"gitId":"sopa301"},"content":" \"node_modules/wrap-ansi\": {","isFullCredit":false},{"lineNumber":1944,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.0.0\",","isFullCredit":false},{"lineNumber":1945,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",","isFullCredit":false},{"lineNumber":1946,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":1947,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1948,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1949,"author":{"gitId":"sopa301"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":1950,"author":{"gitId":"sopa301"},"content":" \"string-width\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":1951,"author":{"gitId":"sopa301"},"content":" \"strip-ansi\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":1952,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1953,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1954,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1955,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1956,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1957,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/wrap-ansi?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":1958,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1959,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1960,"author":{"gitId":"sopa301"},"content":" \"node_modules/wrappy\": {","isFullCredit":false},{"lineNumber":1961,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":1962,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":1963,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1964,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1965,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1966,"author":{"gitId":"sopa301"},"content":" \"node_modules/yallist\": {","isFullCredit":false},{"lineNumber":1967,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1968,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1969,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1970,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1971,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1972,"author":{"gitId":"sopa301"},"content":" \"node_modules/yauzl\": {","isFullCredit":false},{"lineNumber":1973,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.10.0\",","isFullCredit":false},{"lineNumber":1974,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz\",","isFullCredit":false},{"lineNumber":1975,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g\u003d\u003d\",","isFullCredit":false},{"lineNumber":1976,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1977,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1978,"author":{"gitId":"sopa301"},"content":" \"buffer-crc32\": \"~0.2.3\",","isFullCredit":false},{"lineNumber":1979,"author":{"gitId":"sopa301"},"content":" \"fd-slicer\": \"~1.1.0\"","isFullCredit":false},{"lineNumber":1980,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1981,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1982,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1983,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1984,"author":{"gitId":"-"},"content":" \"@colors/colors\": {","isFullCredit":false},{"lineNumber":1985,"author":{"gitId":"-"},"content":" \"version\": \"1.5.0\",","isFullCredit":false},{"lineNumber":1986,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz\",","isFullCredit":false},{"lineNumber":1987,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1988,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1989,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":1990,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1991,"author":{"gitId":"-"},"content":" \"@cypress/request\": {","isFullCredit":false},{"lineNumber":1992,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":1993,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz\",","isFullCredit":false},{"lineNumber":1994,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1995,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1996,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":1997,"author":{"gitId":"-"},"content":" \"aws-sign2\": \"~0.7.0\",","isFullCredit":false},{"lineNumber":1998,"author":{"gitId":"-"},"content":" \"aws4\": \"^1.8.0\",","isFullCredit":false},{"lineNumber":1999,"author":{"gitId":"-"},"content":" \"caseless\": \"~0.12.0\",","isFullCredit":false},{"lineNumber":2000,"author":{"gitId":"-"},"content":" \"combined-stream\": \"~1.0.6\",","isFullCredit":false},{"lineNumber":2001,"author":{"gitId":"-"},"content":" \"extend\": \"~3.0.2\",","isFullCredit":false},{"lineNumber":2002,"author":{"gitId":"-"},"content":" \"forever-agent\": \"~0.6.1\",","isFullCredit":false},{"lineNumber":2003,"author":{"gitId":"-"},"content":" \"form-data\": \"~2.3.2\",","isFullCredit":false},{"lineNumber":2004,"author":{"gitId":"-"},"content":" \"http-signature\": \"~1.3.6\",","isFullCredit":false},{"lineNumber":2005,"author":{"gitId":"-"},"content":" \"is-typedarray\": \"~1.0.0\",","isFullCredit":false},{"lineNumber":2006,"author":{"gitId":"-"},"content":" \"isstream\": \"~0.1.2\",","isFullCredit":false},{"lineNumber":2007,"author":{"gitId":"-"},"content":" \"json-stringify-safe\": \"~5.0.1\",","isFullCredit":false},{"lineNumber":2008,"author":{"gitId":"-"},"content":" \"mime-types\": \"~2.1.19\",","isFullCredit":false},{"lineNumber":2009,"author":{"gitId":"-"},"content":" \"performance-now\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":2010,"author":{"gitId":"-"},"content":" \"qs\": \"6.10.4\",","isFullCredit":false},{"lineNumber":2011,"author":{"gitId":"-"},"content":" \"safe-buffer\": \"^5.1.2\",","isFullCredit":false},{"lineNumber":2012,"author":{"gitId":"-"},"content":" \"tough-cookie\": \"^4.1.3\",","isFullCredit":false},{"lineNumber":2013,"author":{"gitId":"-"},"content":" \"tunnel-agent\": \"^0.6.0\",","isFullCredit":false},{"lineNumber":2014,"author":{"gitId":"-"},"content":" \"uuid\": \"^8.3.2\"","isFullCredit":false},{"lineNumber":2015,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2016,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2017,"author":{"gitId":"-"},"content":" \"@cypress/xvfb\": {","isFullCredit":false},{"lineNumber":2018,"author":{"gitId":"-"},"content":" \"version\": \"1.2.4\",","isFullCredit":false},{"lineNumber":2019,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz\",","isFullCredit":false},{"lineNumber":2020,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":2021,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2022,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2023,"author":{"gitId":"-"},"content":" \"debug\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":2024,"author":{"gitId":"-"},"content":" \"lodash.once\": \"^4.1.1\"","isFullCredit":false},{"lineNumber":2025,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2026,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2027,"author":{"gitId":"-"},"content":" \"debug\": {","isFullCredit":false},{"lineNumber":2028,"author":{"gitId":"-"},"content":" \"version\": \"3.2.7\",","isFullCredit":false},{"lineNumber":2029,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/debug/-/debug-3.2.7.tgz\",","isFullCredit":false},{"lineNumber":2030,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2031,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2032,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2033,"author":{"gitId":"-"},"content":" \"ms\": \"^2.1.1\"","isFullCredit":false},{"lineNumber":2034,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2035,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2036,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2037,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2038,"author":{"gitId":"-"},"content":" \"@types/node\": {","isFullCredit":false},{"lineNumber":2039,"author":{"gitId":"-"},"content":" \"version\": \"18.18.3\",","isFullCredit":false},{"lineNumber":2040,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-18.18.3.tgz\",","isFullCredit":false},{"lineNumber":2041,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-0OVfGupTl3NBFr8+iXpfZ8NR7jfFO+P1Q+IO/q0wbo02wYkP5gy36phojeYWpLQ6WAMjl+VfmqUk2YbUfp0irA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2042,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2043,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":2044,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2045,"author":{"gitId":"-"},"content":" \"@types/sinonjs__fake-timers\": {","isFullCredit":false},{"lineNumber":2046,"author":{"gitId":"-"},"content":" \"version\": \"8.1.1\",","isFullCredit":false},{"lineNumber":2047,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz\",","isFullCredit":false},{"lineNumber":2048,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g\u003d\u003d\",","isFullCredit":false},{"lineNumber":2049,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2050,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2051,"author":{"gitId":"-"},"content":" \"@types/sizzle\": {","isFullCredit":false},{"lineNumber":2052,"author":{"gitId":"-"},"content":" \"version\": \"2.3.4\",","isFullCredit":false},{"lineNumber":2053,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.4.tgz\",","isFullCredit":false},{"lineNumber":2054,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-jA2llq2zNkg8HrALI7DtWzhALcVH0l7i89yhY3iBdOz6cBPeACoFq+fkQrjHA39t1hnSFOboZ7A/AY5MMZSlag\u003d\u003d\",","isFullCredit":false},{"lineNumber":2055,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2056,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2057,"author":{"gitId":"-"},"content":" \"@types/yauzl\": {","isFullCredit":false},{"lineNumber":2058,"author":{"gitId":"-"},"content":" \"version\": \"2.10.1\",","isFullCredit":false},{"lineNumber":2059,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.1.tgz\",","isFullCredit":false},{"lineNumber":2060,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2061,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2062,"author":{"gitId":"-"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":2063,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2064,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\"","isFullCredit":false},{"lineNumber":2065,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2066,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2067,"author":{"gitId":"-"},"content":" \"aggregate-error\": {","isFullCredit":false},{"lineNumber":2068,"author":{"gitId":"-"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":2069,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz\",","isFullCredit":false},{"lineNumber":2070,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2071,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2072,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2073,"author":{"gitId":"-"},"content":" \"clean-stack\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":2074,"author":{"gitId":"-"},"content":" \"indent-string\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":2075,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2076,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2077,"author":{"gitId":"-"},"content":" \"ansi-colors\": {","isFullCredit":false},{"lineNumber":2078,"author":{"gitId":"-"},"content":" \"version\": \"4.1.3\",","isFullCredit":false},{"lineNumber":2079,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz\",","isFullCredit":false},{"lineNumber":2080,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2081,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2082,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2083,"author":{"gitId":"-"},"content":" \"ansi-escapes\": {","isFullCredit":false},{"lineNumber":2084,"author":{"gitId":"-"},"content":" \"version\": \"4.3.2\",","isFullCredit":false},{"lineNumber":2085,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz\",","isFullCredit":false},{"lineNumber":2086,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2087,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2088,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2089,"author":{"gitId":"-"},"content":" \"type-fest\": \"^0.21.3\"","isFullCredit":false},{"lineNumber":2090,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2091,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2092,"author":{"gitId":"-"},"content":" \"ansi-regex\": {","isFullCredit":false},{"lineNumber":2093,"author":{"gitId":"-"},"content":" \"version\": \"5.0.1\",","isFullCredit":false},{"lineNumber":2094,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",","isFullCredit":false},{"lineNumber":2095,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2096,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2097,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2098,"author":{"gitId":"-"},"content":" \"ansi-styles\": {","isFullCredit":false},{"lineNumber":2099,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":2100,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",","isFullCredit":false},{"lineNumber":2101,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2102,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2103,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2104,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":2105,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2106,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2107,"author":{"gitId":"-"},"content":" \"arch\": {","isFullCredit":false},{"lineNumber":2108,"author":{"gitId":"-"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":2109,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/arch/-/arch-2.2.0.tgz\",","isFullCredit":false},{"lineNumber":2110,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2111,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2112,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2113,"author":{"gitId":"-"},"content":" \"asn1\": {","isFullCredit":false},{"lineNumber":2114,"author":{"gitId":"-"},"content":" \"version\": \"0.2.6\",","isFullCredit":false},{"lineNumber":2115,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz\",","isFullCredit":false},{"lineNumber":2116,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2117,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2118,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2119,"author":{"gitId":"-"},"content":" \"safer-buffer\": \"~2.1.0\"","isFullCredit":false},{"lineNumber":2120,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2121,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2122,"author":{"gitId":"-"},"content":" \"assert-plus\": {","isFullCredit":false},{"lineNumber":2123,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2124,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":2125,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2126,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2127,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2128,"author":{"gitId":"-"},"content":" \"astral-regex\": {","isFullCredit":false},{"lineNumber":2129,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":2130,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":2131,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2132,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2133,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2134,"author":{"gitId":"-"},"content":" \"async\": {","isFullCredit":false},{"lineNumber":2135,"author":{"gitId":"-"},"content":" \"version\": \"3.2.4\",","isFullCredit":false},{"lineNumber":2136,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/async/-/async-3.2.4.tgz\",","isFullCredit":false},{"lineNumber":2137,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2138,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2139,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2140,"author":{"gitId":"-"},"content":" \"asynckit\": {","isFullCredit":false},{"lineNumber":2141,"author":{"gitId":"-"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":2142,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz\",","isFullCredit":false},{"lineNumber":2143,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":2144,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2145,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2146,"author":{"gitId":"-"},"content":" \"at-least-node\": {","isFullCredit":false},{"lineNumber":2147,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2148,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":2149,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2150,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2151,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2152,"author":{"gitId":"-"},"content":" \"aws-sign2\": {","isFullCredit":false},{"lineNumber":2153,"author":{"gitId":"-"},"content":" \"version\": \"0.7.0\",","isFullCredit":false},{"lineNumber":2154,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz\",","isFullCredit":false},{"lineNumber":2155,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2156,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2157,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2158,"author":{"gitId":"-"},"content":" \"aws4\": {","isFullCredit":false},{"lineNumber":2159,"author":{"gitId":"-"},"content":" \"version\": \"1.12.0\",","isFullCredit":false},{"lineNumber":2160,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz\",","isFullCredit":false},{"lineNumber":2161,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2162,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2163,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2164,"author":{"gitId":"-"},"content":" \"balanced-match\": {","isFullCredit":false},{"lineNumber":2165,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":2166,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":2167,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2168,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2169,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2170,"author":{"gitId":"-"},"content":" \"base64-js\": {","isFullCredit":false},{"lineNumber":2171,"author":{"gitId":"-"},"content":" \"version\": \"1.5.1\",","isFullCredit":false},{"lineNumber":2172,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz\",","isFullCredit":false},{"lineNumber":2173,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2174,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2175,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2176,"author":{"gitId":"-"},"content":" \"bcrypt-pbkdf\": {","isFullCredit":false},{"lineNumber":2177,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":2178,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":2179,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w\u003d\u003d\",","isFullCredit":false},{"lineNumber":2180,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2181,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2182,"author":{"gitId":"-"},"content":" \"tweetnacl\": \"^0.14.3\"","isFullCredit":false},{"lineNumber":2183,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2184,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2185,"author":{"gitId":"-"},"content":" \"blob-util\": {","isFullCredit":false},{"lineNumber":2186,"author":{"gitId":"-"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":2187,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz\",","isFullCredit":false},{"lineNumber":2188,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2189,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2190,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2191,"author":{"gitId":"-"},"content":" \"bluebird\": {","isFullCredit":false},{"lineNumber":2192,"author":{"gitId":"-"},"content":" \"version\": \"3.7.2\",","isFullCredit":false},{"lineNumber":2193,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz\",","isFullCredit":false},{"lineNumber":2194,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2195,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2196,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2197,"author":{"gitId":"-"},"content":" \"brace-expansion\": {","isFullCredit":false},{"lineNumber":2198,"author":{"gitId":"-"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":2199,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz\",","isFullCredit":false},{"lineNumber":2200,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2201,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2202,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2203,"author":{"gitId":"-"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":2204,"author":{"gitId":"-"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":2205,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2206,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2207,"author":{"gitId":"-"},"content":" \"buffer\": {","isFullCredit":false},{"lineNumber":2208,"author":{"gitId":"-"},"content":" \"version\": \"5.7.1\",","isFullCredit":false},{"lineNumber":2209,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz\",","isFullCredit":false},{"lineNumber":2210,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2211,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2212,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2213,"author":{"gitId":"-"},"content":" \"base64-js\": \"^1.3.1\",","isFullCredit":false},{"lineNumber":2214,"author":{"gitId":"-"},"content":" \"ieee754\": \"^1.1.13\"","isFullCredit":false},{"lineNumber":2215,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2216,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2217,"author":{"gitId":"-"},"content":" \"buffer-crc32\": {","isFullCredit":false},{"lineNumber":2218,"author":{"gitId":"-"},"content":" \"version\": \"0.2.13\",","isFullCredit":false},{"lineNumber":2219,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz\",","isFullCredit":false},{"lineNumber":2220,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2221,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2222,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2223,"author":{"gitId":"-"},"content":" \"cachedir\": {","isFullCredit":false},{"lineNumber":2224,"author":{"gitId":"-"},"content":" \"version\": \"2.4.0\",","isFullCredit":false},{"lineNumber":2225,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz\",","isFullCredit":false},{"lineNumber":2226,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2227,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2228,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2229,"author":{"gitId":"-"},"content":" \"call-bind\": {","isFullCredit":false},{"lineNumber":2230,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":2231,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":2232,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2233,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2234,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2235,"author":{"gitId":"-"},"content":" \"function-bind\": \"^1.1.1\",","isFullCredit":false},{"lineNumber":2236,"author":{"gitId":"-"},"content":" \"get-intrinsic\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":2237,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2238,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2239,"author":{"gitId":"-"},"content":" \"caseless\": {","isFullCredit":false},{"lineNumber":2240,"author":{"gitId":"-"},"content":" \"version\": \"0.12.0\",","isFullCredit":false},{"lineNumber":2241,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz\",","isFullCredit":false},{"lineNumber":2242,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2243,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2244,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2245,"author":{"gitId":"-"},"content":" \"chalk\": {","isFullCredit":false},{"lineNumber":2246,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":2247,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",","isFullCredit":false},{"lineNumber":2248,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2249,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2250,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2251,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":2252,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":2253,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2254,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2255,"author":{"gitId":"-"},"content":" \"supports-color\": {","isFullCredit":false},{"lineNumber":2256,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":2257,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",","isFullCredit":false},{"lineNumber":2258,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2259,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2260,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2261,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":2262,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2263,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2264,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2265,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2266,"author":{"gitId":"-"},"content":" \"check-more-types\": {","isFullCredit":false},{"lineNumber":2267,"author":{"gitId":"-"},"content":" \"version\": \"2.24.0\",","isFullCredit":false},{"lineNumber":2268,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz\",","isFullCredit":false},{"lineNumber":2269,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2270,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2271,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2272,"author":{"gitId":"-"},"content":" \"ci-info\": {","isFullCredit":false},{"lineNumber":2273,"author":{"gitId":"-"},"content":" \"version\": \"3.9.0\",","isFullCredit":false},{"lineNumber":2274,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz\",","isFullCredit":false},{"lineNumber":2275,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2276,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2277,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2278,"author":{"gitId":"-"},"content":" \"clean-stack\": {","isFullCredit":false},{"lineNumber":2279,"author":{"gitId":"-"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":2280,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz\",","isFullCredit":false},{"lineNumber":2281,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A\u003d\u003d\",","isFullCredit":false},{"lineNumber":2282,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2283,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2284,"author":{"gitId":"-"},"content":" \"cli-cursor\": {","isFullCredit":false},{"lineNumber":2285,"author":{"gitId":"-"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":2286,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz\",","isFullCredit":false},{"lineNumber":2287,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2288,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2289,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2290,"author":{"gitId":"-"},"content":" \"restore-cursor\": \"^3.1.0\"","isFullCredit":false},{"lineNumber":2291,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2292,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2293,"author":{"gitId":"-"},"content":" \"cli-table3\": {","isFullCredit":false},{"lineNumber":2294,"author":{"gitId":"-"},"content":" \"version\": \"0.6.3\",","isFullCredit":false},{"lineNumber":2295,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz\",","isFullCredit":false},{"lineNumber":2296,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2297,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2298,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2299,"author":{"gitId":"-"},"content":" \"@colors/colors\": \"1.5.0\",","isFullCredit":false},{"lineNumber":2300,"author":{"gitId":"-"},"content":" \"string-width\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":2301,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2302,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2303,"author":{"gitId":"-"},"content":" \"cli-truncate\": {","isFullCredit":false},{"lineNumber":2304,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":2305,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz\",","isFullCredit":false},{"lineNumber":2306,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2307,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2308,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2309,"author":{"gitId":"-"},"content":" \"slice-ansi\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":2310,"author":{"gitId":"-"},"content":" \"string-width\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":2311,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2312,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2313,"author":{"gitId":"-"},"content":" \"color-convert\": {","isFullCredit":false},{"lineNumber":2314,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":2315,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",","isFullCredit":false},{"lineNumber":2316,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2317,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2318,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2319,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":2320,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2321,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2322,"author":{"gitId":"-"},"content":" \"color-name\": {","isFullCredit":false},{"lineNumber":2323,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":2324,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",","isFullCredit":false},{"lineNumber":2325,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2326,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2327,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2328,"author":{"gitId":"-"},"content":" \"colorette\": {","isFullCredit":false},{"lineNumber":2329,"author":{"gitId":"-"},"content":" \"version\": \"2.0.20\",","isFullCredit":false},{"lineNumber":2330,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz\",","isFullCredit":false},{"lineNumber":2331,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w\u003d\u003d\",","isFullCredit":false},{"lineNumber":2332,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2333,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2334,"author":{"gitId":"-"},"content":" \"combined-stream\": {","isFullCredit":false},{"lineNumber":2335,"author":{"gitId":"-"},"content":" \"version\": \"1.0.8\",","isFullCredit":false},{"lineNumber":2336,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz\",","isFullCredit":false},{"lineNumber":2337,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2338,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2339,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2340,"author":{"gitId":"-"},"content":" \"delayed-stream\": \"~1.0.0\"","isFullCredit":false},{"lineNumber":2341,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2342,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2343,"author":{"gitId":"-"},"content":" \"commander\": {","isFullCredit":false},{"lineNumber":2344,"author":{"gitId":"-"},"content":" \"version\": \"6.2.1\",","isFullCredit":false},{"lineNumber":2345,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/commander/-/commander-6.2.1.tgz\",","isFullCredit":false},{"lineNumber":2346,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2347,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2348,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2349,"author":{"gitId":"-"},"content":" \"common-tags\": {","isFullCredit":false},{"lineNumber":2350,"author":{"gitId":"-"},"content":" \"version\": \"1.8.2\",","isFullCredit":false},{"lineNumber":2351,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz\",","isFullCredit":false},{"lineNumber":2352,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2353,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2354,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2355,"author":{"gitId":"-"},"content":" \"concat-map\": {","isFullCredit":false},{"lineNumber":2356,"author":{"gitId":"-"},"content":" \"version\": \"0.0.1\",","isFullCredit":false},{"lineNumber":2357,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz\",","isFullCredit":false},{"lineNumber":2358,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2359,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2360,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2361,"author":{"gitId":"-"},"content":" \"core-util-is\": {","isFullCredit":false},{"lineNumber":2362,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":2363,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":2364,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2365,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2366,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2367,"author":{"gitId":"-"},"content":" \"cross-spawn\": {","isFullCredit":false},{"lineNumber":2368,"author":{"gitId":"-"},"content":" \"version\": \"7.0.3\",","isFullCredit":false},{"lineNumber":2369,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz\",","isFullCredit":false},{"lineNumber":2370,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w\u003d\u003d\",","isFullCredit":false},{"lineNumber":2371,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2372,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2373,"author":{"gitId":"-"},"content":" \"path-key\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":2374,"author":{"gitId":"-"},"content":" \"shebang-command\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":2375,"author":{"gitId":"-"},"content":" \"which\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":2376,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2377,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2378,"author":{"gitId":"-"},"content":" \"cypress\": {","isFullCredit":false},{"lineNumber":2379,"author":{"gitId":"sopa301"},"content":" \"version\": \"13.6.6\",","isFullCredit":false},{"lineNumber":2380,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/cypress/-/cypress-13.6.6.tgz\",","isFullCredit":false},{"lineNumber":2381,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-S+2S9S94611hXimH9a3EAYt81QM913ZVA03pUmGDfLTFa5gyp85NJ8dJGSlEAEmyRsYkioS1TtnWtbv/Fzt11A\u003d\u003d\",","isFullCredit":false},{"lineNumber":2382,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2383,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2384,"author":{"gitId":"-"},"content":" \"@cypress/request\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":2385,"author":{"gitId":"-"},"content":" \"@cypress/xvfb\": \"^1.2.4\",","isFullCredit":false},{"lineNumber":2386,"author":{"gitId":"-"},"content":" \"@types/sinonjs__fake-timers\": \"8.1.1\",","isFullCredit":false},{"lineNumber":2387,"author":{"gitId":"-"},"content":" \"@types/sizzle\": \"^2.3.2\",","isFullCredit":false},{"lineNumber":2388,"author":{"gitId":"-"},"content":" \"arch\": \"^2.2.0\",","isFullCredit":false},{"lineNumber":2389,"author":{"gitId":"-"},"content":" \"blob-util\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":2390,"author":{"gitId":"-"},"content":" \"bluebird\": \"^3.7.2\",","isFullCredit":false},{"lineNumber":2391,"author":{"gitId":"sopa301"},"content":" \"buffer\": \"^5.7.1\",","isFullCredit":false},{"lineNumber":2392,"author":{"gitId":"-"},"content":" \"cachedir\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":2393,"author":{"gitId":"-"},"content":" \"chalk\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":2394,"author":{"gitId":"-"},"content":" \"check-more-types\": \"^2.24.0\",","isFullCredit":false},{"lineNumber":2395,"author":{"gitId":"-"},"content":" \"cli-cursor\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":2396,"author":{"gitId":"-"},"content":" \"cli-table3\": \"~0.6.1\",","isFullCredit":false},{"lineNumber":2397,"author":{"gitId":"-"},"content":" \"commander\": \"^6.2.1\",","isFullCredit":false},{"lineNumber":2398,"author":{"gitId":"-"},"content":" \"common-tags\": \"^1.8.0\",","isFullCredit":false},{"lineNumber":2399,"author":{"gitId":"-"},"content":" \"dayjs\": \"^1.10.4\",","isFullCredit":false},{"lineNumber":2400,"author":{"gitId":"-"},"content":" \"debug\": \"^4.3.4\",","isFullCredit":false},{"lineNumber":2401,"author":{"gitId":"-"},"content":" \"enquirer\": \"^2.3.6\",","isFullCredit":false},{"lineNumber":2402,"author":{"gitId":"-"},"content":" \"eventemitter2\": \"6.4.7\",","isFullCredit":false},{"lineNumber":2403,"author":{"gitId":"-"},"content":" \"execa\": \"4.1.0\",","isFullCredit":false},{"lineNumber":2404,"author":{"gitId":"-"},"content":" \"executable\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":2405,"author":{"gitId":"-"},"content":" \"extract-zip\": \"2.0.1\",","isFullCredit":false},{"lineNumber":2406,"author":{"gitId":"-"},"content":" \"figures\": \"^3.2.0\",","isFullCredit":false},{"lineNumber":2407,"author":{"gitId":"-"},"content":" \"fs-extra\": \"^9.1.0\",","isFullCredit":false},{"lineNumber":2408,"author":{"gitId":"-"},"content":" \"getos\": \"^3.2.1\",","isFullCredit":false},{"lineNumber":2409,"author":{"gitId":"sopa301"},"content":" \"is-ci\": \"^3.0.1\",","isFullCredit":false},{"lineNumber":2410,"author":{"gitId":"-"},"content":" \"is-installed-globally\": \"~0.4.0\",","isFullCredit":false},{"lineNumber":2411,"author":{"gitId":"-"},"content":" \"lazy-ass\": \"^1.6.0\",","isFullCredit":false},{"lineNumber":2412,"author":{"gitId":"-"},"content":" \"listr2\": \"^3.8.3\",","isFullCredit":false},{"lineNumber":2413,"author":{"gitId":"-"},"content":" \"lodash\": \"^4.17.21\",","isFullCredit":false},{"lineNumber":2414,"author":{"gitId":"-"},"content":" \"log-symbols\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2415,"author":{"gitId":"-"},"content":" \"minimist\": \"^1.2.8\",","isFullCredit":false},{"lineNumber":2416,"author":{"gitId":"-"},"content":" \"ospath\": \"^1.2.2\",","isFullCredit":false},{"lineNumber":2417,"author":{"gitId":"-"},"content":" \"pretty-bytes\": \"^5.6.0\",","isFullCredit":false},{"lineNumber":2418,"author":{"gitId":"-"},"content":" \"process\": \"^0.11.10\",","isFullCredit":false},{"lineNumber":2419,"author":{"gitId":"-"},"content":" \"proxy-from-env\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2420,"author":{"gitId":"-"},"content":" \"request-progress\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":2421,"author":{"gitId":"-"},"content":" \"semver\": \"^7.5.3\",","isFullCredit":false},{"lineNumber":2422,"author":{"gitId":"-"},"content":" \"supports-color\": \"^8.1.1\",","isFullCredit":false},{"lineNumber":2423,"author":{"gitId":"-"},"content":" \"tmp\": \"~0.2.1\",","isFullCredit":false},{"lineNumber":2424,"author":{"gitId":"-"},"content":" \"untildify\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2425,"author":{"gitId":"-"},"content":" \"yauzl\": \"^2.10.0\"","isFullCredit":false},{"lineNumber":2426,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2427,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2428,"author":{"gitId":"-"},"content":" \"dashdash\": {","isFullCredit":false},{"lineNumber":2429,"author":{"gitId":"-"},"content":" \"version\": \"1.14.1\",","isFullCredit":false},{"lineNumber":2430,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz\",","isFullCredit":false},{"lineNumber":2431,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g\u003d\u003d\",","isFullCredit":false},{"lineNumber":2432,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2433,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2434,"author":{"gitId":"-"},"content":" \"assert-plus\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":2435,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2436,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2437,"author":{"gitId":"-"},"content":" \"dayjs\": {","isFullCredit":false},{"lineNumber":2438,"author":{"gitId":"-"},"content":" \"version\": \"1.11.10\",","isFullCredit":false},{"lineNumber":2439,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz\",","isFullCredit":false},{"lineNumber":2440,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2441,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2442,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2443,"author":{"gitId":"-"},"content":" \"debug\": {","isFullCredit":false},{"lineNumber":2444,"author":{"gitId":"-"},"content":" \"version\": \"4.3.4\",","isFullCredit":false},{"lineNumber":2445,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz\",","isFullCredit":false},{"lineNumber":2446,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2447,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2448,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2449,"author":{"gitId":"-"},"content":" \"ms\": \"2.1.2\"","isFullCredit":false},{"lineNumber":2450,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2451,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2452,"author":{"gitId":"-"},"content":" \"ms\": {","isFullCredit":false},{"lineNumber":2453,"author":{"gitId":"-"},"content":" \"version\": \"2.1.2\",","isFullCredit":false},{"lineNumber":2454,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz\",","isFullCredit":false},{"lineNumber":2455,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w\u003d\u003d\",","isFullCredit":false},{"lineNumber":2456,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2457,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2458,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2459,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2460,"author":{"gitId":"-"},"content":" \"delayed-stream\": {","isFullCredit":false},{"lineNumber":2461,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2462,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":2463,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2464,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2465,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2466,"author":{"gitId":"-"},"content":" \"ecc-jsbn\": {","isFullCredit":false},{"lineNumber":2467,"author":{"gitId":"-"},"content":" \"version\": \"0.1.2\",","isFullCredit":false},{"lineNumber":2468,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz\",","isFullCredit":false},{"lineNumber":2469,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2470,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2471,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2472,"author":{"gitId":"-"},"content":" \"jsbn\": \"~0.1.0\",","isFullCredit":false},{"lineNumber":2473,"author":{"gitId":"-"},"content":" \"safer-buffer\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":2474,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2475,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2476,"author":{"gitId":"-"},"content":" \"emoji-regex\": {","isFullCredit":false},{"lineNumber":2477,"author":{"gitId":"-"},"content":" \"version\": \"8.0.0\",","isFullCredit":false},{"lineNumber":2478,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",","isFullCredit":false},{"lineNumber":2479,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A\u003d\u003d\",","isFullCredit":false},{"lineNumber":2480,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2481,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2482,"author":{"gitId":"-"},"content":" \"end-of-stream\": {","isFullCredit":false},{"lineNumber":2483,"author":{"gitId":"-"},"content":" \"version\": \"1.4.4\",","isFullCredit":false},{"lineNumber":2484,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz\",","isFullCredit":false},{"lineNumber":2485,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":2486,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2487,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2488,"author":{"gitId":"-"},"content":" \"once\": \"^1.4.0\"","isFullCredit":false},{"lineNumber":2489,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2490,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2491,"author":{"gitId":"-"},"content":" \"enquirer\": {","isFullCredit":false},{"lineNumber":2492,"author":{"gitId":"-"},"content":" \"version\": \"2.4.1\",","isFullCredit":false},{"lineNumber":2493,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz\",","isFullCredit":false},{"lineNumber":2494,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2495,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2496,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2497,"author":{"gitId":"-"},"content":" \"ansi-colors\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":2498,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":2499,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2500,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2501,"author":{"gitId":"-"},"content":" \"escape-string-regexp\": {","isFullCredit":false},{"lineNumber":2502,"author":{"gitId":"-"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":2503,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz\",","isFullCredit":false},{"lineNumber":2504,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2505,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2506,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2507,"author":{"gitId":"-"},"content":" \"eventemitter2\": {","isFullCredit":false},{"lineNumber":2508,"author":{"gitId":"-"},"content":" \"version\": \"6.4.7\",","isFullCredit":false},{"lineNumber":2509,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz\",","isFullCredit":false},{"lineNumber":2510,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2511,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2512,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2513,"author":{"gitId":"-"},"content":" \"execa\": {","isFullCredit":false},{"lineNumber":2514,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":2515,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/execa/-/execa-4.1.0.tgz\",","isFullCredit":false},{"lineNumber":2516,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2517,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2518,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2519,"author":{"gitId":"-"},"content":" \"cross-spawn\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":2520,"author":{"gitId":"-"},"content":" \"get-stream\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":2521,"author":{"gitId":"-"},"content":" \"human-signals\": \"^1.1.1\",","isFullCredit":false},{"lineNumber":2522,"author":{"gitId":"-"},"content":" \"is-stream\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":2523,"author":{"gitId":"-"},"content":" \"merge-stream\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":2524,"author":{"gitId":"-"},"content":" \"npm-run-path\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2525,"author":{"gitId":"-"},"content":" \"onetime\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":2526,"author":{"gitId":"-"},"content":" \"signal-exit\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":2527,"author":{"gitId":"-"},"content":" \"strip-final-newline\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":2528,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2529,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2530,"author":{"gitId":"-"},"content":" \"executable\": {","isFullCredit":false},{"lineNumber":2531,"author":{"gitId":"-"},"content":" \"version\": \"4.1.1\",","isFullCredit":false},{"lineNumber":2532,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/executable/-/executable-4.1.1.tgz\",","isFullCredit":false},{"lineNumber":2533,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2534,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2535,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2536,"author":{"gitId":"-"},"content":" \"pify\": \"^2.2.0\"","isFullCredit":false},{"lineNumber":2537,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2538,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2539,"author":{"gitId":"-"},"content":" \"extend\": {","isFullCredit":false},{"lineNumber":2540,"author":{"gitId":"-"},"content":" \"version\": \"3.0.2\",","isFullCredit":false},{"lineNumber":2541,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/extend/-/extend-3.0.2.tgz\",","isFullCredit":false},{"lineNumber":2542,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g\u003d\u003d\",","isFullCredit":false},{"lineNumber":2543,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2544,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2545,"author":{"gitId":"-"},"content":" \"extract-zip\": {","isFullCredit":false},{"lineNumber":2546,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":2547,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz\",","isFullCredit":false},{"lineNumber":2548,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2549,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2550,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2551,"author":{"gitId":"-"},"content":" \"@types/yauzl\": \"^2.9.1\",","isFullCredit":false},{"lineNumber":2552,"author":{"gitId":"-"},"content":" \"debug\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":2553,"author":{"gitId":"-"},"content":" \"get-stream\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":2554,"author":{"gitId":"-"},"content":" \"yauzl\": \"^2.10.0\"","isFullCredit":false},{"lineNumber":2555,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2556,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2557,"author":{"gitId":"-"},"content":" \"extsprintf\": {","isFullCredit":false},{"lineNumber":2558,"author":{"gitId":"-"},"content":" \"version\": \"1.3.0\",","isFullCredit":false},{"lineNumber":2559,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz\",","isFullCredit":false},{"lineNumber":2560,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g\u003d\u003d\",","isFullCredit":false},{"lineNumber":2561,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2562,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2563,"author":{"gitId":"-"},"content":" \"fd-slicer\": {","isFullCredit":false},{"lineNumber":2564,"author":{"gitId":"-"},"content":" \"version\": \"1.1.0\",","isFullCredit":false},{"lineNumber":2565,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz\",","isFullCredit":false},{"lineNumber":2566,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g\u003d\u003d\",","isFullCredit":false},{"lineNumber":2567,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2568,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2569,"author":{"gitId":"-"},"content":" \"pend\": \"~1.2.0\"","isFullCredit":false},{"lineNumber":2570,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2571,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2572,"author":{"gitId":"-"},"content":" \"figures\": {","isFullCredit":false},{"lineNumber":2573,"author":{"gitId":"-"},"content":" \"version\": \"3.2.0\",","isFullCredit":false},{"lineNumber":2574,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/figures/-/figures-3.2.0.tgz\",","isFullCredit":false},{"lineNumber":2575,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2576,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2577,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2578,"author":{"gitId":"-"},"content":" \"escape-string-regexp\": \"^1.0.5\"","isFullCredit":false},{"lineNumber":2579,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2580,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2581,"author":{"gitId":"-"},"content":" \"forever-agent\": {","isFullCredit":false},{"lineNumber":2582,"author":{"gitId":"-"},"content":" \"version\": \"0.6.1\",","isFullCredit":false},{"lineNumber":2583,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz\",","isFullCredit":false},{"lineNumber":2584,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2585,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2586,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2587,"author":{"gitId":"-"},"content":" \"form-data\": {","isFullCredit":false},{"lineNumber":2588,"author":{"gitId":"-"},"content":" \"version\": \"2.3.3\",","isFullCredit":false},{"lineNumber":2589,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz\",","isFullCredit":false},{"lineNumber":2590,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2591,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2592,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2593,"author":{"gitId":"-"},"content":" \"asynckit\": \"^0.4.0\",","isFullCredit":false},{"lineNumber":2594,"author":{"gitId":"-"},"content":" \"combined-stream\": \"^1.0.6\",","isFullCredit":false},{"lineNumber":2595,"author":{"gitId":"-"},"content":" \"mime-types\": \"^2.1.12\"","isFullCredit":false},{"lineNumber":2596,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2597,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2598,"author":{"gitId":"-"},"content":" \"fs-extra\": {","isFullCredit":false},{"lineNumber":2599,"author":{"gitId":"-"},"content":" \"version\": \"9.1.0\",","isFullCredit":false},{"lineNumber":2600,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz\",","isFullCredit":false},{"lineNumber":2601,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2602,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2603,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2604,"author":{"gitId":"-"},"content":" \"at-least-node\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":2605,"author":{"gitId":"-"},"content":" \"graceful-fs\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":2606,"author":{"gitId":"-"},"content":" \"jsonfile\": \"^6.0.1\",","isFullCredit":false},{"lineNumber":2607,"author":{"gitId":"-"},"content":" \"universalify\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":2608,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2609,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2610,"author":{"gitId":"-"},"content":" \"universalify\": {","isFullCredit":false},{"lineNumber":2611,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":2612,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":2613,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2614,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2615,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2616,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2617,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2618,"author":{"gitId":"-"},"content":" \"fs.realpath\": {","isFullCredit":false},{"lineNumber":2619,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2620,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":2621,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2622,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2623,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2624,"author":{"gitId":"-"},"content":" \"function-bind\": {","isFullCredit":false},{"lineNumber":2625,"author":{"gitId":"-"},"content":" \"version\": \"1.1.1\",","isFullCredit":false},{"lineNumber":2626,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz\",","isFullCredit":false},{"lineNumber":2627,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A\u003d\u003d\",","isFullCredit":false},{"lineNumber":2628,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2629,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2630,"author":{"gitId":"-"},"content":" \"get-intrinsic\": {","isFullCredit":false},{"lineNumber":2631,"author":{"gitId":"-"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":2632,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz\",","isFullCredit":false},{"lineNumber":2633,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2634,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2635,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2636,"author":{"gitId":"-"},"content":" \"function-bind\": \"^1.1.1\",","isFullCredit":false},{"lineNumber":2637,"author":{"gitId":"-"},"content":" \"has\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":2638,"author":{"gitId":"-"},"content":" \"has-proto\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":2639,"author":{"gitId":"-"},"content":" \"has-symbols\": \"^1.0.3\"","isFullCredit":false},{"lineNumber":2640,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2641,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2642,"author":{"gitId":"-"},"content":" \"get-stream\": {","isFullCredit":false},{"lineNumber":2643,"author":{"gitId":"-"},"content":" \"version\": \"5.2.0\",","isFullCredit":false},{"lineNumber":2644,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz\",","isFullCredit":false},{"lineNumber":2645,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2646,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2647,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2648,"author":{"gitId":"-"},"content":" \"pump\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":2649,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2650,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2651,"author":{"gitId":"-"},"content":" \"getos\": {","isFullCredit":false},{"lineNumber":2652,"author":{"gitId":"-"},"content":" \"version\": \"3.2.1\",","isFullCredit":false},{"lineNumber":2653,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/getos/-/getos-3.2.1.tgz\",","isFullCredit":false},{"lineNumber":2654,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":2655,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2656,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2657,"author":{"gitId":"-"},"content":" \"async\": \"^3.2.0\"","isFullCredit":false},{"lineNumber":2658,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2659,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2660,"author":{"gitId":"-"},"content":" \"getpass\": {","isFullCredit":false},{"lineNumber":2661,"author":{"gitId":"-"},"content":" \"version\": \"0.1.7\",","isFullCredit":false},{"lineNumber":2662,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz\",","isFullCredit":false},{"lineNumber":2663,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng\u003d\u003d\",","isFullCredit":false},{"lineNumber":2664,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2665,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2666,"author":{"gitId":"-"},"content":" \"assert-plus\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":2667,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2668,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2669,"author":{"gitId":"-"},"content":" \"glob\": {","isFullCredit":false},{"lineNumber":2670,"author":{"gitId":"-"},"content":" \"version\": \"7.2.3\",","isFullCredit":false},{"lineNumber":2671,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/glob/-/glob-7.2.3.tgz\",","isFullCredit":false},{"lineNumber":2672,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":2673,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2674,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2675,"author":{"gitId":"-"},"content":" \"fs.realpath\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":2676,"author":{"gitId":"-"},"content":" \"inflight\": \"^1.0.4\",","isFullCredit":false},{"lineNumber":2677,"author":{"gitId":"-"},"content":" \"inherits\": \"2\",","isFullCredit":false},{"lineNumber":2678,"author":{"gitId":"-"},"content":" \"minimatch\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":2679,"author":{"gitId":"-"},"content":" \"once\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":2680,"author":{"gitId":"-"},"content":" \"path-is-absolute\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":2681,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2682,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2683,"author":{"gitId":"-"},"content":" \"global-dirs\": {","isFullCredit":false},{"lineNumber":2684,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":2685,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz\",","isFullCredit":false},{"lineNumber":2686,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2687,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2688,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2689,"author":{"gitId":"-"},"content":" \"ini\": \"2.0.0\"","isFullCredit":false},{"lineNumber":2690,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2691,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2692,"author":{"gitId":"-"},"content":" \"graceful-fs\": {","isFullCredit":false},{"lineNumber":2693,"author":{"gitId":"-"},"content":" \"version\": \"4.2.11\",","isFullCredit":false},{"lineNumber":2694,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz\",","isFullCredit":false},{"lineNumber":2695,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2696,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2697,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2698,"author":{"gitId":"-"},"content":" \"has\": {","isFullCredit":false},{"lineNumber":2699,"author":{"gitId":"-"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":2700,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/has/-/has-1.0.4.tgz\",","isFullCredit":false},{"lineNumber":2701,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2702,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2703,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2704,"author":{"gitId":"-"},"content":" \"has-flag\": {","isFullCredit":false},{"lineNumber":2705,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":2706,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":2707,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2708,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2709,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2710,"author":{"gitId":"-"},"content":" \"has-proto\": {","isFullCredit":false},{"lineNumber":2711,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":2712,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz\",","isFullCredit":false},{"lineNumber":2713,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2714,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2715,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2716,"author":{"gitId":"-"},"content":" \"has-symbols\": {","isFullCredit":false},{"lineNumber":2717,"author":{"gitId":"-"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":2718,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz\",","isFullCredit":false},{"lineNumber":2719,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A\u003d\u003d\",","isFullCredit":false},{"lineNumber":2720,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2721,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2722,"author":{"gitId":"-"},"content":" \"http-signature\": {","isFullCredit":false},{"lineNumber":2723,"author":{"gitId":"-"},"content":" \"version\": \"1.3.6\",","isFullCredit":false},{"lineNumber":2724,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz\",","isFullCredit":false},{"lineNumber":2725,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2726,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2727,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2728,"author":{"gitId":"-"},"content":" \"assert-plus\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":2729,"author":{"gitId":"-"},"content":" \"jsprim\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":2730,"author":{"gitId":"-"},"content":" \"sshpk\": \"^1.14.1\"","isFullCredit":false},{"lineNumber":2731,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2732,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2733,"author":{"gitId":"-"},"content":" \"human-signals\": {","isFullCredit":false},{"lineNumber":2734,"author":{"gitId":"-"},"content":" \"version\": \"1.1.1\",","isFullCredit":false},{"lineNumber":2735,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz\",","isFullCredit":false},{"lineNumber":2736,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2737,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2738,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2739,"author":{"gitId":"-"},"content":" \"ieee754\": {","isFullCredit":false},{"lineNumber":2740,"author":{"gitId":"-"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":2741,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz\",","isFullCredit":false},{"lineNumber":2742,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2743,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2744,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2745,"author":{"gitId":"-"},"content":" \"indent-string\": {","isFullCredit":false},{"lineNumber":2746,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":2747,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":2748,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2749,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2750,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2751,"author":{"gitId":"-"},"content":" \"inflight\": {","isFullCredit":false},{"lineNumber":2752,"author":{"gitId":"-"},"content":" \"version\": \"1.0.6\",","isFullCredit":false},{"lineNumber":2753,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz\",","isFullCredit":false},{"lineNumber":2754,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2755,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2756,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2757,"author":{"gitId":"-"},"content":" \"once\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":2758,"author":{"gitId":"-"},"content":" \"wrappy\": \"1\"","isFullCredit":false},{"lineNumber":2759,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2760,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2761,"author":{"gitId":"-"},"content":" \"inherits\": {","isFullCredit":false},{"lineNumber":2762,"author":{"gitId":"-"},"content":" \"version\": \"2.0.4\",","isFullCredit":false},{"lineNumber":2763,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz\",","isFullCredit":false},{"lineNumber":2764,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2765,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2766,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2767,"author":{"gitId":"-"},"content":" \"ini\": {","isFullCredit":false},{"lineNumber":2768,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":2769,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ini/-/ini-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":2770,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2771,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2772,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2773,"author":{"gitId":"-"},"content":" \"is-ci\": {","isFullCredit":false},{"lineNumber":2774,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":2775,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz\",","isFullCredit":false},{"lineNumber":2776,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2777,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2778,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2779,"author":{"gitId":"-"},"content":" \"ci-info\": \"^3.2.0\"","isFullCredit":false},{"lineNumber":2780,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2781,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2782,"author":{"gitId":"-"},"content":" \"is-fullwidth-code-point\": {","isFullCredit":false},{"lineNumber":2783,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":2784,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":2785,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2786,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2787,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2788,"author":{"gitId":"-"},"content":" \"is-installed-globally\": {","isFullCredit":false},{"lineNumber":2789,"author":{"gitId":"-"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":2790,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz\",","isFullCredit":false},{"lineNumber":2791,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2792,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2793,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2794,"author":{"gitId":"-"},"content":" \"global-dirs\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":2795,"author":{"gitId":"-"},"content":" \"is-path-inside\": \"^3.0.2\"","isFullCredit":false},{"lineNumber":2796,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2797,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2798,"author":{"gitId":"-"},"content":" \"is-path-inside\": {","isFullCredit":false},{"lineNumber":2799,"author":{"gitId":"-"},"content":" \"version\": \"3.0.3\",","isFullCredit":false},{"lineNumber":2800,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz\",","isFullCredit":false},{"lineNumber":2801,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2802,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2803,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2804,"author":{"gitId":"-"},"content":" \"is-stream\": {","isFullCredit":false},{"lineNumber":2805,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":2806,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz\",","isFullCredit":false},{"lineNumber":2807,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2808,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2809,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2810,"author":{"gitId":"-"},"content":" \"is-typedarray\": {","isFullCredit":false},{"lineNumber":2811,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2812,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":2813,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2814,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2815,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2816,"author":{"gitId":"-"},"content":" \"is-unicode-supported\": {","isFullCredit":false},{"lineNumber":2817,"author":{"gitId":"-"},"content":" \"version\": \"0.1.0\",","isFullCredit":false},{"lineNumber":2818,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz\",","isFullCredit":false},{"lineNumber":2819,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2820,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2821,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2822,"author":{"gitId":"-"},"content":" \"isexe\": {","isFullCredit":false},{"lineNumber":2823,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":2824,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":2825,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2826,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2827,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2828,"author":{"gitId":"-"},"content":" \"isstream\": {","isFullCredit":false},{"lineNumber":2829,"author":{"gitId":"-"},"content":" \"version\": \"0.1.2\",","isFullCredit":false},{"lineNumber":2830,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz\",","isFullCredit":false},{"lineNumber":2831,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g\u003d\u003d\",","isFullCredit":false},{"lineNumber":2832,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2833,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2834,"author":{"gitId":"-"},"content":" \"jsbn\": {","isFullCredit":false},{"lineNumber":2835,"author":{"gitId":"-"},"content":" \"version\": \"0.1.1\",","isFullCredit":false},{"lineNumber":2836,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz\",","isFullCredit":false},{"lineNumber":2837,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2838,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2839,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2840,"author":{"gitId":"-"},"content":" \"json-schema\": {","isFullCredit":false},{"lineNumber":2841,"author":{"gitId":"-"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":2842,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz\",","isFullCredit":false},{"lineNumber":2843,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2844,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2845,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2846,"author":{"gitId":"-"},"content":" \"json-stringify-safe\": {","isFullCredit":false},{"lineNumber":2847,"author":{"gitId":"-"},"content":" \"version\": \"5.0.1\",","isFullCredit":false},{"lineNumber":2848,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz\",","isFullCredit":false},{"lineNumber":2849,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2850,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2851,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2852,"author":{"gitId":"-"},"content":" \"jsonfile\": {","isFullCredit":false},{"lineNumber":2853,"author":{"gitId":"-"},"content":" \"version\": \"6.1.0\",","isFullCredit":false},{"lineNumber":2854,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz\",","isFullCredit":false},{"lineNumber":2855,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2856,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2857,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2858,"author":{"gitId":"-"},"content":" \"graceful-fs\": \"^4.1.6\",","isFullCredit":false},{"lineNumber":2859,"author":{"gitId":"-"},"content":" \"universalify\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":2860,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2861,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2862,"author":{"gitId":"-"},"content":" \"universalify\": {","isFullCredit":false},{"lineNumber":2863,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":2864,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":2865,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2866,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2867,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2868,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2869,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2870,"author":{"gitId":"-"},"content":" \"jsprim\": {","isFullCredit":false},{"lineNumber":2871,"author":{"gitId":"-"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":2872,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz\",","isFullCredit":false},{"lineNumber":2873,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2874,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2875,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2876,"author":{"gitId":"-"},"content":" \"assert-plus\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2877,"author":{"gitId":"-"},"content":" \"extsprintf\": \"1.3.0\",","isFullCredit":false},{"lineNumber":2878,"author":{"gitId":"-"},"content":" \"json-schema\": \"0.4.0\",","isFullCredit":false},{"lineNumber":2879,"author":{"gitId":"-"},"content":" \"verror\": \"1.10.0\"","isFullCredit":false},{"lineNumber":2880,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2881,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2882,"author":{"gitId":"-"},"content":" \"lazy-ass\": {","isFullCredit":false},{"lineNumber":2883,"author":{"gitId":"-"},"content":" \"version\": \"1.6.0\",","isFullCredit":false},{"lineNumber":2884,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz\",","isFullCredit":false},{"lineNumber":2885,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2886,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2887,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2888,"author":{"gitId":"-"},"content":" \"listr2\": {","isFullCredit":false},{"lineNumber":2889,"author":{"gitId":"-"},"content":" \"version\": \"3.14.0\",","isFullCredit":false},{"lineNumber":2890,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz\",","isFullCredit":false},{"lineNumber":2891,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g\u003d\u003d\",","isFullCredit":false},{"lineNumber":2892,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2893,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2894,"author":{"gitId":"-"},"content":" \"cli-truncate\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":2895,"author":{"gitId":"-"},"content":" \"colorette\": \"^2.0.16\",","isFullCredit":false},{"lineNumber":2896,"author":{"gitId":"-"},"content":" \"log-update\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2897,"author":{"gitId":"-"},"content":" \"p-map\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2898,"author":{"gitId":"-"},"content":" \"rfdc\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":2899,"author":{"gitId":"-"},"content":" \"rxjs\": \"^7.5.1\",","isFullCredit":false},{"lineNumber":2900,"author":{"gitId":"-"},"content":" \"through\": \"^2.3.8\",","isFullCredit":false},{"lineNumber":2901,"author":{"gitId":"-"},"content":" \"wrap-ansi\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":2902,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2903,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2904,"author":{"gitId":"-"},"content":" \"lodash\": {","isFullCredit":false},{"lineNumber":2905,"author":{"gitId":"-"},"content":" \"version\": \"4.17.21\",","isFullCredit":false},{"lineNumber":2906,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",","isFullCredit":false},{"lineNumber":2907,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2908,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2909,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2910,"author":{"gitId":"-"},"content":" \"lodash.once\": {","isFullCredit":false},{"lineNumber":2911,"author":{"gitId":"-"},"content":" \"version\": \"4.1.1\",","isFullCredit":false},{"lineNumber":2912,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz\",","isFullCredit":false},{"lineNumber":2913,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2914,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2915,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2916,"author":{"gitId":"-"},"content":" \"log-symbols\": {","isFullCredit":false},{"lineNumber":2917,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":2918,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz\",","isFullCredit":false},{"lineNumber":2919,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2920,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2921,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2922,"author":{"gitId":"-"},"content":" \"chalk\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":2923,"author":{"gitId":"-"},"content":" \"is-unicode-supported\": \"^0.1.0\"","isFullCredit":false},{"lineNumber":2924,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2925,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2926,"author":{"gitId":"-"},"content":" \"log-update\": {","isFullCredit":false},{"lineNumber":2927,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":2928,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":2929,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2930,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2931,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2932,"author":{"gitId":"-"},"content":" \"ansi-escapes\": \"^4.3.0\",","isFullCredit":false},{"lineNumber":2933,"author":{"gitId":"-"},"content":" \"cli-cursor\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":2934,"author":{"gitId":"-"},"content":" \"slice-ansi\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2935,"author":{"gitId":"-"},"content":" \"wrap-ansi\": \"^6.2.0\"","isFullCredit":false},{"lineNumber":2936,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2937,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2938,"author":{"gitId":"-"},"content":" \"slice-ansi\": {","isFullCredit":false},{"lineNumber":2939,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":2940,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":2941,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2942,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2943,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2944,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2945,"author":{"gitId":"-"},"content":" \"astral-regex\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":2946,"author":{"gitId":"-"},"content":" \"is-fullwidth-code-point\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":2947,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2948,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2949,"author":{"gitId":"-"},"content":" \"wrap-ansi\": {","isFullCredit":false},{"lineNumber":2950,"author":{"gitId":"-"},"content":" \"version\": \"6.2.0\",","isFullCredit":false},{"lineNumber":2951,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz\",","isFullCredit":false},{"lineNumber":2952,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2953,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2954,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2955,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2956,"author":{"gitId":"-"},"content":" \"string-width\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":2957,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":2958,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2959,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2960,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2961,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2962,"author":{"gitId":"-"},"content":" \"lru-cache\": {","isFullCredit":false},{"lineNumber":2963,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":2964,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":2965,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2966,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2967,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2968,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":2969,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2970,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2971,"author":{"gitId":"-"},"content":" \"merge-stream\": {","isFullCredit":false},{"lineNumber":2972,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":2973,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":2974,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w\u003d\u003d\",","isFullCredit":false},{"lineNumber":2975,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2976,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2977,"author":{"gitId":"-"},"content":" \"mime-db\": {","isFullCredit":false},{"lineNumber":2978,"author":{"gitId":"-"},"content":" \"version\": \"1.52.0\",","isFullCredit":false},{"lineNumber":2979,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz\",","isFullCredit":false},{"lineNumber":2980,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2981,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2982,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2983,"author":{"gitId":"-"},"content":" \"mime-types\": {","isFullCredit":false},{"lineNumber":2984,"author":{"gitId":"-"},"content":" \"version\": \"2.1.35\",","isFullCredit":false},{"lineNumber":2985,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz\",","isFullCredit":false},{"lineNumber":2986,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2987,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2988,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2989,"author":{"gitId":"-"},"content":" \"mime-db\": \"1.52.0\"","isFullCredit":false},{"lineNumber":2990,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2991,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2992,"author":{"gitId":"-"},"content":" \"mimic-fn\": {","isFullCredit":false},{"lineNumber":2993,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":2994,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz\",","isFullCredit":false},{"lineNumber":2995,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2996,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2997,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2998,"author":{"gitId":"-"},"content":" \"minimatch\": {","isFullCredit":false},{"lineNumber":2999,"author":{"gitId":"-"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":3000,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz\",","isFullCredit":false},{"lineNumber":3001,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw\u003d\u003d\",","isFullCredit":false},{"lineNumber":3002,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3003,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3004,"author":{"gitId":"-"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":3005,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3006,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3007,"author":{"gitId":"-"},"content":" \"minimist\": {","isFullCredit":false},{"lineNumber":3008,"author":{"gitId":"-"},"content":" \"version\": \"1.2.8\",","isFullCredit":false},{"lineNumber":3009,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz\",","isFullCredit":false},{"lineNumber":3010,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3011,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3012,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3013,"author":{"gitId":"-"},"content":" \"ms\": {","isFullCredit":false},{"lineNumber":3014,"author":{"gitId":"-"},"content":" \"version\": \"2.1.3\",","isFullCredit":false},{"lineNumber":3015,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",","isFullCredit":false},{"lineNumber":3016,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3017,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3018,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3019,"author":{"gitId":"-"},"content":" \"npm-run-path\": {","isFullCredit":false},{"lineNumber":3020,"author":{"gitId":"-"},"content":" \"version\": \"4.0.1\",","isFullCredit":false},{"lineNumber":3021,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz\",","isFullCredit":false},{"lineNumber":3022,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw\u003d\u003d\",","isFullCredit":false},{"lineNumber":3023,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3024,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3025,"author":{"gitId":"-"},"content":" \"path-key\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":3026,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3027,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3028,"author":{"gitId":"-"},"content":" \"object-inspect\": {","isFullCredit":false},{"lineNumber":3029,"author":{"gitId":"-"},"content":" \"version\": \"1.12.3\",","isFullCredit":false},{"lineNumber":3030,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz\",","isFullCredit":false},{"lineNumber":3031,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g\u003d\u003d\",","isFullCredit":false},{"lineNumber":3032,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3033,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3034,"author":{"gitId":"-"},"content":" \"once\": {","isFullCredit":false},{"lineNumber":3035,"author":{"gitId":"-"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":3036,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/once/-/once-1.4.0.tgz\",","isFullCredit":false},{"lineNumber":3037,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w\u003d\u003d\",","isFullCredit":false},{"lineNumber":3038,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3039,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3040,"author":{"gitId":"-"},"content":" \"wrappy\": \"1\"","isFullCredit":false},{"lineNumber":3041,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3042,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3043,"author":{"gitId":"-"},"content":" \"onetime\": {","isFullCredit":false},{"lineNumber":3044,"author":{"gitId":"-"},"content":" \"version\": \"5.1.2\",","isFullCredit":false},{"lineNumber":3045,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz\",","isFullCredit":false},{"lineNumber":3046,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3047,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3048,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3049,"author":{"gitId":"-"},"content":" \"mimic-fn\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":3050,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3051,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3052,"author":{"gitId":"-"},"content":" \"ospath\": {","isFullCredit":false},{"lineNumber":3053,"author":{"gitId":"-"},"content":" \"version\": \"1.2.2\",","isFullCredit":false},{"lineNumber":3054,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz\",","isFullCredit":false},{"lineNumber":3055,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3056,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3057,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3058,"author":{"gitId":"-"},"content":" \"p-map\": {","isFullCredit":false},{"lineNumber":3059,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":3060,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":3061,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3062,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3063,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3064,"author":{"gitId":"-"},"content":" \"aggregate-error\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":3065,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3066,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3067,"author":{"gitId":"-"},"content":" \"path-is-absolute\": {","isFullCredit":false},{"lineNumber":3068,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":3069,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz\",","isFullCredit":false},{"lineNumber":3070,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3071,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3072,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3073,"author":{"gitId":"-"},"content":" \"path-key\": {","isFullCredit":false},{"lineNumber":3074,"author":{"gitId":"-"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":3075,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz\",","isFullCredit":false},{"lineNumber":3076,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":3077,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3078,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3079,"author":{"gitId":"-"},"content":" \"pend\": {","isFullCredit":false},{"lineNumber":3080,"author":{"gitId":"-"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":3081,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/pend/-/pend-1.2.0.tgz\",","isFullCredit":false},{"lineNumber":3082,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3083,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3084,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3085,"author":{"gitId":"-"},"content":" \"performance-now\": {","isFullCredit":false},{"lineNumber":3086,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":3087,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz\",","isFullCredit":false},{"lineNumber":3088,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow\u003d\u003d\",","isFullCredit":false},{"lineNumber":3089,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3090,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3091,"author":{"gitId":"-"},"content":" \"pify\": {","isFullCredit":false},{"lineNumber":3092,"author":{"gitId":"-"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":3093,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/pify/-/pify-2.3.0.tgz\",","isFullCredit":false},{"lineNumber":3094,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog\u003d\u003d\",","isFullCredit":false},{"lineNumber":3095,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3096,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3097,"author":{"gitId":"-"},"content":" \"pretty-bytes\": {","isFullCredit":false},{"lineNumber":3098,"author":{"gitId":"-"},"content":" \"version\": \"5.6.0\",","isFullCredit":false},{"lineNumber":3099,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz\",","isFullCredit":false},{"lineNumber":3100,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3101,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3102,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3103,"author":{"gitId":"-"},"content":" \"process\": {","isFullCredit":false},{"lineNumber":3104,"author":{"gitId":"-"},"content":" \"version\": \"0.11.10\",","isFullCredit":false},{"lineNumber":3105,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/process/-/process-0.11.10.tgz\",","isFullCredit":false},{"lineNumber":3106,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A\u003d\u003d\",","isFullCredit":false},{"lineNumber":3107,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3108,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3109,"author":{"gitId":"-"},"content":" \"proxy-from-env\": {","isFullCredit":false},{"lineNumber":3110,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":3111,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":3112,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A\u003d\u003d\",","isFullCredit":false},{"lineNumber":3113,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3114,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3115,"author":{"gitId":"-"},"content":" \"psl\": {","isFullCredit":false},{"lineNumber":3116,"author":{"gitId":"-"},"content":" \"version\": \"1.9.0\",","isFullCredit":false},{"lineNumber":3117,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/psl/-/psl-1.9.0.tgz\",","isFullCredit":false},{"lineNumber":3118,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag\u003d\u003d\",","isFullCredit":false},{"lineNumber":3119,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3120,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3121,"author":{"gitId":"-"},"content":" \"pump\": {","isFullCredit":false},{"lineNumber":3122,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":3123,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/pump/-/pump-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":3124,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww\u003d\u003d\",","isFullCredit":false},{"lineNumber":3125,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3126,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3127,"author":{"gitId":"-"},"content":" \"end-of-stream\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":3128,"author":{"gitId":"-"},"content":" \"once\": \"^1.3.1\"","isFullCredit":false},{"lineNumber":3129,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3130,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3131,"author":{"gitId":"-"},"content":" \"punycode\": {","isFullCredit":false},{"lineNumber":3132,"author":{"gitId":"-"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":3133,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz\",","isFullCredit":false},{"lineNumber":3134,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3135,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3136,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3137,"author":{"gitId":"-"},"content":" \"qs\": {","isFullCredit":false},{"lineNumber":3138,"author":{"gitId":"-"},"content":" \"version\": \"6.10.4\",","isFullCredit":false},{"lineNumber":3139,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/qs/-/qs-6.10.4.tgz\",","isFullCredit":false},{"lineNumber":3140,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g\u003d\u003d\",","isFullCredit":false},{"lineNumber":3141,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3142,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3143,"author":{"gitId":"-"},"content":" \"side-channel\": \"^1.0.4\"","isFullCredit":false},{"lineNumber":3144,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3145,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3146,"author":{"gitId":"-"},"content":" \"querystringify\": {","isFullCredit":false},{"lineNumber":3147,"author":{"gitId":"-"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":3148,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz\",","isFullCredit":false},{"lineNumber":3149,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3150,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3151,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3152,"author":{"gitId":"-"},"content":" \"request-progress\": {","isFullCredit":false},{"lineNumber":3153,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":3154,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":3155,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3156,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3157,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3158,"author":{"gitId":"-"},"content":" \"throttleit\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":3159,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3160,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3161,"author":{"gitId":"-"},"content":" \"requires-port\": {","isFullCredit":false},{"lineNumber":3162,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":3163,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":3164,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3165,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3166,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3167,"author":{"gitId":"-"},"content":" \"restore-cursor\": {","isFullCredit":false},{"lineNumber":3168,"author":{"gitId":"-"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":3169,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz\",","isFullCredit":false},{"lineNumber":3170,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3171,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3172,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3173,"author":{"gitId":"-"},"content":" \"onetime\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":3174,"author":{"gitId":"-"},"content":" \"signal-exit\": \"^3.0.2\"","isFullCredit":false},{"lineNumber":3175,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3176,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3177,"author":{"gitId":"-"},"content":" \"rfdc\": {","isFullCredit":false},{"lineNumber":3178,"author":{"gitId":"-"},"content":" \"version\": \"1.3.0\",","isFullCredit":false},{"lineNumber":3179,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz\",","isFullCredit":false},{"lineNumber":3180,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3181,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3182,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3183,"author":{"gitId":"-"},"content":" \"rimraf\": {","isFullCredit":false},{"lineNumber":3184,"author":{"gitId":"-"},"content":" \"version\": \"3.0.2\",","isFullCredit":false},{"lineNumber":3185,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz\",","isFullCredit":false},{"lineNumber":3186,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3187,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3188,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3189,"author":{"gitId":"-"},"content":" \"glob\": \"^7.1.3\"","isFullCredit":false},{"lineNumber":3190,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3191,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3192,"author":{"gitId":"-"},"content":" \"rxjs\": {","isFullCredit":false},{"lineNumber":3193,"author":{"gitId":"-"},"content":" \"version\": \"7.8.1\",","isFullCredit":false},{"lineNumber":3194,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz\",","isFullCredit":false},{"lineNumber":3195,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3196,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3197,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3198,"author":{"gitId":"-"},"content":" \"tslib\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":3199,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3200,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3201,"author":{"gitId":"-"},"content":" \"safe-buffer\": {","isFullCredit":false},{"lineNumber":3202,"author":{"gitId":"-"},"content":" \"version\": \"5.2.1\",","isFullCredit":false},{"lineNumber":3203,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz\",","isFullCredit":false},{"lineNumber":3204,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3205,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3206,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3207,"author":{"gitId":"-"},"content":" \"safer-buffer\": {","isFullCredit":false},{"lineNumber":3208,"author":{"gitId":"-"},"content":" \"version\": \"2.1.2\",","isFullCredit":false},{"lineNumber":3209,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz\",","isFullCredit":false},{"lineNumber":3210,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3211,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3212,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3213,"author":{"gitId":"-"},"content":" \"semver\": {","isFullCredit":false},{"lineNumber":3214,"author":{"gitId":"-"},"content":" \"version\": \"7.5.4\",","isFullCredit":false},{"lineNumber":3215,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.5.4.tgz\",","isFullCredit":false},{"lineNumber":3216,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3217,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3218,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3219,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":3220,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3221,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3222,"author":{"gitId":"-"},"content":" \"shebang-command\": {","isFullCredit":false},{"lineNumber":3223,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":3224,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":3225,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3226,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3227,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3228,"author":{"gitId":"-"},"content":" \"shebang-regex\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":3229,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3230,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3231,"author":{"gitId":"-"},"content":" \"shebang-regex\": {","isFullCredit":false},{"lineNumber":3232,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":3233,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":3234,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A\u003d\u003d\",","isFullCredit":false},{"lineNumber":3235,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3236,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3237,"author":{"gitId":"-"},"content":" \"side-channel\": {","isFullCredit":false},{"lineNumber":3238,"author":{"gitId":"-"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":3239,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz\",","isFullCredit":false},{"lineNumber":3240,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw\u003d\u003d\",","isFullCredit":false},{"lineNumber":3241,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3242,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3243,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":3244,"author":{"gitId":"-"},"content":" \"get-intrinsic\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":3245,"author":{"gitId":"-"},"content":" \"object-inspect\": \"^1.9.0\"","isFullCredit":false},{"lineNumber":3246,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3247,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3248,"author":{"gitId":"-"},"content":" \"signal-exit\": {","isFullCredit":false},{"lineNumber":3249,"author":{"gitId":"-"},"content":" \"version\": \"3.0.7\",","isFullCredit":false},{"lineNumber":3250,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz\",","isFullCredit":false},{"lineNumber":3251,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3252,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3253,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3254,"author":{"gitId":"-"},"content":" \"slice-ansi\": {","isFullCredit":false},{"lineNumber":3255,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":3256,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":3257,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3258,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3259,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3260,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":3261,"author":{"gitId":"-"},"content":" \"astral-regex\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":3262,"author":{"gitId":"-"},"content":" \"is-fullwidth-code-point\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":3263,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3264,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3265,"author":{"gitId":"-"},"content":" \"sshpk\": {","isFullCredit":false},{"lineNumber":3266,"author":{"gitId":"-"},"content":" \"version\": \"1.17.0\",","isFullCredit":false},{"lineNumber":3267,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz\",","isFullCredit":false},{"lineNumber":3268,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3269,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3270,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3271,"author":{"gitId":"-"},"content":" \"asn1\": \"~0.2.3\",","isFullCredit":false},{"lineNumber":3272,"author":{"gitId":"-"},"content":" \"assert-plus\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":3273,"author":{"gitId":"-"},"content":" \"bcrypt-pbkdf\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":3274,"author":{"gitId":"-"},"content":" \"dashdash\": \"^1.12.0\",","isFullCredit":false},{"lineNumber":3275,"author":{"gitId":"-"},"content":" \"ecc-jsbn\": \"~0.1.1\",","isFullCredit":false},{"lineNumber":3276,"author":{"gitId":"-"},"content":" \"getpass\": \"^0.1.1\",","isFullCredit":false},{"lineNumber":3277,"author":{"gitId":"-"},"content":" \"jsbn\": \"~0.1.0\",","isFullCredit":false},{"lineNumber":3278,"author":{"gitId":"-"},"content":" \"safer-buffer\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":3279,"author":{"gitId":"-"},"content":" \"tweetnacl\": \"~0.14.0\"","isFullCredit":false},{"lineNumber":3280,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3281,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3282,"author":{"gitId":"-"},"content":" \"string-width\": {","isFullCredit":false},{"lineNumber":3283,"author":{"gitId":"-"},"content":" \"version\": \"4.2.3\",","isFullCredit":false},{"lineNumber":3284,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",","isFullCredit":false},{"lineNumber":3285,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g\u003d\u003d\",","isFullCredit":false},{"lineNumber":3286,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3287,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3288,"author":{"gitId":"-"},"content":" \"emoji-regex\": \"^8.0.0\",","isFullCredit":false},{"lineNumber":3289,"author":{"gitId":"-"},"content":" \"is-fullwidth-code-point\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":3290,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":3291,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3292,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3293,"author":{"gitId":"-"},"content":" \"strip-ansi\": {","isFullCredit":false},{"lineNumber":3294,"author":{"gitId":"-"},"content":" \"version\": \"6.0.1\",","isFullCredit":false},{"lineNumber":3295,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",","isFullCredit":false},{"lineNumber":3296,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A\u003d\u003d\",","isFullCredit":false},{"lineNumber":3297,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3298,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3299,"author":{"gitId":"-"},"content":" \"ansi-regex\": \"^5.0.1\"","isFullCredit":false},{"lineNumber":3300,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3301,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3302,"author":{"gitId":"-"},"content":" \"strip-final-newline\": {","isFullCredit":false},{"lineNumber":3303,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":3304,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":3305,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3306,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3307,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3308,"author":{"gitId":"-"},"content":" \"supports-color\": {","isFullCredit":false},{"lineNumber":3309,"author":{"gitId":"-"},"content":" \"version\": \"8.1.1\",","isFullCredit":false},{"lineNumber":3310,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",","isFullCredit":false},{"lineNumber":3311,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":3312,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3313,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3314,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":3315,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3316,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3317,"author":{"gitId":"-"},"content":" \"throttleit\": {","isFullCredit":false},{"lineNumber":3318,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":3319,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":3320,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g\u003d\u003d\",","isFullCredit":false},{"lineNumber":3321,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3322,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3323,"author":{"gitId":"-"},"content":" \"through\": {","isFullCredit":false},{"lineNumber":3324,"author":{"gitId":"-"},"content":" \"version\": \"2.3.8\",","isFullCredit":false},{"lineNumber":3325,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/through/-/through-2.3.8.tgz\",","isFullCredit":false},{"lineNumber":3326,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3327,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3328,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3329,"author":{"gitId":"-"},"content":" \"tmp\": {","isFullCredit":false},{"lineNumber":3330,"author":{"gitId":"-"},"content":" \"version\": \"0.2.1\",","isFullCredit":false},{"lineNumber":3331,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz\",","isFullCredit":false},{"lineNumber":3332,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3333,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3334,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3335,"author":{"gitId":"-"},"content":" \"rimraf\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":3336,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3337,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3338,"author":{"gitId":"-"},"content":" \"tough-cookie\": {","isFullCredit":false},{"lineNumber":3339,"author":{"gitId":"-"},"content":" \"version\": \"4.1.3\",","isFullCredit":false},{"lineNumber":3340,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz\",","isFullCredit":false},{"lineNumber":3341,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw\u003d\u003d\",","isFullCredit":false},{"lineNumber":3342,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3343,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3344,"author":{"gitId":"-"},"content":" \"psl\": \"^1.1.33\",","isFullCredit":false},{"lineNumber":3345,"author":{"gitId":"-"},"content":" \"punycode\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":3346,"author":{"gitId":"-"},"content":" \"universalify\": \"^0.2.0\",","isFullCredit":false},{"lineNumber":3347,"author":{"gitId":"-"},"content":" \"url-parse\": \"^1.5.3\"","isFullCredit":false},{"lineNumber":3348,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3349,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3350,"author":{"gitId":"-"},"content":" \"tslib\": {","isFullCredit":false},{"lineNumber":3351,"author":{"gitId":"-"},"content":" \"version\": \"2.6.2\",","isFullCredit":false},{"lineNumber":3352,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz\",","isFullCredit":false},{"lineNumber":3353,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":3354,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3355,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3356,"author":{"gitId":"-"},"content":" \"tunnel-agent\": {","isFullCredit":false},{"lineNumber":3357,"author":{"gitId":"-"},"content":" \"version\": \"0.6.0\",","isFullCredit":false},{"lineNumber":3358,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz\",","isFullCredit":false},{"lineNumber":3359,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w\u003d\u003d\",","isFullCredit":false},{"lineNumber":3360,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3361,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3362,"author":{"gitId":"-"},"content":" \"safe-buffer\": \"^5.0.1\"","isFullCredit":false},{"lineNumber":3363,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3364,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3365,"author":{"gitId":"-"},"content":" \"tweetnacl\": {","isFullCredit":false},{"lineNumber":3366,"author":{"gitId":"-"},"content":" \"version\": \"0.14.5\",","isFullCredit":false},{"lineNumber":3367,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz\",","isFullCredit":false},{"lineNumber":3368,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3369,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3370,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3371,"author":{"gitId":"-"},"content":" \"type-fest\": {","isFullCredit":false},{"lineNumber":3372,"author":{"gitId":"-"},"content":" \"version\": \"0.21.3\",","isFullCredit":false},{"lineNumber":3373,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz\",","isFullCredit":false},{"lineNumber":3374,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w\u003d\u003d\",","isFullCredit":false},{"lineNumber":3375,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3376,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3377,"author":{"gitId":"-"},"content":" \"universalify\": {","isFullCredit":false},{"lineNumber":3378,"author":{"gitId":"-"},"content":" \"version\": \"0.2.0\",","isFullCredit":false},{"lineNumber":3379,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz\",","isFullCredit":false},{"lineNumber":3380,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3381,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3382,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3383,"author":{"gitId":"-"},"content":" \"untildify\": {","isFullCredit":false},{"lineNumber":3384,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":3385,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":3386,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw\u003d\u003d\",","isFullCredit":false},{"lineNumber":3387,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3388,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3389,"author":{"gitId":"-"},"content":" \"url-parse\": {","isFullCredit":false},{"lineNumber":3390,"author":{"gitId":"-"},"content":" \"version\": \"1.5.10\",","isFullCredit":false},{"lineNumber":3391,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz\",","isFullCredit":false},{"lineNumber":3392,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3393,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3394,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3395,"author":{"gitId":"-"},"content":" \"querystringify\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":3396,"author":{"gitId":"-"},"content":" \"requires-port\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":3397,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3398,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3399,"author":{"gitId":"-"},"content":" \"uuid\": {","isFullCredit":false},{"lineNumber":3400,"author":{"gitId":"-"},"content":" \"version\": \"8.3.2\",","isFullCredit":false},{"lineNumber":3401,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz\",","isFullCredit":false},{"lineNumber":3402,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3403,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3404,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3405,"author":{"gitId":"-"},"content":" \"verror\": {","isFullCredit":false},{"lineNumber":3406,"author":{"gitId":"-"},"content":" \"version\": \"1.10.0\",","isFullCredit":false},{"lineNumber":3407,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/verror/-/verror-1.10.0.tgz\",","isFullCredit":false},{"lineNumber":3408,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw\u003d\u003d\",","isFullCredit":false},{"lineNumber":3409,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3410,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3411,"author":{"gitId":"-"},"content":" \"assert-plus\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":3412,"author":{"gitId":"-"},"content":" \"core-util-is\": \"1.0.2\",","isFullCredit":false},{"lineNumber":3413,"author":{"gitId":"-"},"content":" \"extsprintf\": \"^1.2.0\"","isFullCredit":false},{"lineNumber":3414,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3415,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3416,"author":{"gitId":"-"},"content":" \"which\": {","isFullCredit":false},{"lineNumber":3417,"author":{"gitId":"-"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":3418,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/which/-/which-2.0.2.tgz\",","isFullCredit":false},{"lineNumber":3419,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3420,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3421,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3422,"author":{"gitId":"-"},"content":" \"isexe\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":3423,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3424,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3425,"author":{"gitId":"-"},"content":" \"wrap-ansi\": {","isFullCredit":false},{"lineNumber":3426,"author":{"gitId":"-"},"content":" \"version\": \"7.0.0\",","isFullCredit":false},{"lineNumber":3427,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",","isFullCredit":false},{"lineNumber":3428,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":3429,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3430,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3431,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":3432,"author":{"gitId":"-"},"content":" \"string-width\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":3433,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":3434,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3435,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3436,"author":{"gitId":"-"},"content":" \"wrappy\": {","isFullCredit":false},{"lineNumber":3437,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":3438,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":3439,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3440,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3441,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3442,"author":{"gitId":"-"},"content":" \"yallist\": {","isFullCredit":false},{"lineNumber":3443,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":3444,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":3445,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":3446,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3447,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3448,"author":{"gitId":"-"},"content":" \"yauzl\": {","isFullCredit":false},{"lineNumber":3449,"author":{"gitId":"-"},"content":" \"version\": \"2.10.0\",","isFullCredit":false},{"lineNumber":3450,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz\",","isFullCredit":false},{"lineNumber":3451,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g\u003d\u003d\",","isFullCredit":false},{"lineNumber":3452,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3453,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3454,"author":{"gitId":"-"},"content":" \"buffer-crc32\": \"~0.2.3\",","isFullCredit":false},{"lineNumber":3455,"author":{"gitId":"-"},"content":" \"fd-slicer\": \"~1.1.0\"","isFullCredit":false},{"lineNumber":3456,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3457,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3458,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3459,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"sopa301":1987,"-":1472}},{"path":"frontend/cypress/package.json","fileType":"json","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" \"scripts\": {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" \"tests\": \"cypress run --browser chrome\",","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" \"ci\": \"cypress run --env ci\u003dtrue --browser chrome\",","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" \"debug\": \"cypress open\"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" \"devDependencies\": {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"sopa301"},"content":" \"cypress\": \"^13.6.4\"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"sopa301":1,"-":9}},{"path":"frontend/cypress/support.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"// Disable screenshots","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"// https://docs.cypress.io/api/cypress-api/screenshot-api.html#Disable-screenshots-on-run-failures","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"Cypress.Screenshot.defaults({","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" screenshotOnRunFailure: false,","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"});","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"beforeEach(() \u003d\u003e {","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" cy.visit(\u0027/\u0027);","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"sopa301"},"content":" cy.intercept({","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"sopa301"},"content":" method: \u0027GET\u0027,","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"sopa301"},"content":" url: \u0027/title.md\u0027,","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"sopa301"},"content":" }, \u0027# RepoSense Intro\u0027).as(\u0027getTitleMd\u0027);","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"sopa301":4,"-":10}},{"path":"frontend/cypress/tests/chartView/chartView_blurbs.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"describe(\u0027blurbs\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":" it(\u0027shows blurbs\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":" cy.get(\u0027.markdown.blurb\u0027)","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":" .first()","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":" .should(\u0027contain\u0027, \u0027first blurb\u0027);","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":" cy.get(\u0027.markdown.blurb\u0027)","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":" .should(\u0027contain\u0027, \u0027second blurb\u0027);","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":" cy.get(\u0027.markdown.blurb\u0027)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":" .eq(2)","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":" .should(\u0027contain\u0027, \u0027third blurb\u0027);","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":" });","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":" it(\u0027has the correct number of valid blurbs\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"asdfghjkxd"},"content":" cy.get(\u0027.markdown.blurb\u0027)","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"asdfghjkxd"},"content":" .should(\u0027have.length\u0027, 3);","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"asdfghjkxd"},"content":" });","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":" it(\u0027processes markdown in blurbs\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":" cy.get(\u0027.markdown.blurb\u0027)","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":" .find(\u0027h1\u0027)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":" .contains(\u0027second blurb in h1 tag\u0027);","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":" });","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":" it(\u0027processes html in blurbs\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":" cy.get(\u0027.markdown.blurb\u0027)","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":" .eq(2)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":" .find(\u0027h2\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":" .contains(\u0027third blurb in h2 markdown tag\u0027);","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":" });","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":"});","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":34}},{"path":"frontend/cypress/tests/chartView/chartView_errorSummary_messageBox.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027error summary\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027shows list of issues encountered while analyzing repos\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" cy.get(\u0027.error-message-box\u0027)","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-wrapper \u003e #summary \u003e .error-message-box \u003e .error-message-box__message\u0027).then(($ele) \u003d\u003e {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" const expected \u003d \u0027The following issues occurred when analyzing the following repositories:\u0027;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" const message \u003d $ele.text();","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" expect(expected).to.equal(message);","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" cy.get(\u0027.error-message-box__failed-repo--name\u0027)","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" cy.get(\u0027.error-message-box__failed-repo--reason\u0027)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" it(\u0027can be closed\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" cy.get(\u0027.error-message-box\u0027)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-wrapper \u003e #summary \u003e .error-message-box \u003e .error-message-box__close-button\u0027)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" cy.get(\u0027.error-message-box\u0027)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"jonasongg"},"content":" it(\u0027can be expanded and collapsed if count \u003e 4\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.error-message-box\u0027)","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.error-message-box__failed-repo\u0027)","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 4);","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.error-message-box__show-more-container \u003e a\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.error-message-box\u0027)","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.error-message-box__failed-repo\u0027)","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 5);","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.error-message-box__show-more-container \u003e a\u0027)","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.error-message-box\u0027)","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.error-message-box__failed-repo\u0027)","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 4);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":30,"jonasongg":20}},{"path":"frontend/cypress/tests/chartView/chartView_mergeGroup.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027merge group\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027check and uncheck merge group when group by repos\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"jonasongg"},"content":" // after checking merge group, only four merged repo groups will show","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-charts\u0027).find(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 4);","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"jonasongg"},"content":" // after un-checking merge group, all 9 summary charts will show","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-charts\u0027).find(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 9);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" it(\u0027check and uncheck merge group when group by authors\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .select(\u0027groupByAuthors\u0027);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"jonasongg"},"content":" // after checking merge group, 8 merged author groups will show","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-charts\u0027).find(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 8);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"jonasongg"},"content":" // after un-checking merge group, all 9 summary charts will show","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-charts\u0027).find(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 9);","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" it(\u0027merge group option should be disabled when group by none\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" .select(\u0027groupByNone\u0027);","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" .should(\u0027be.disabled\u0027);","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" it(\u0027should have the correct number of merge group contribution bars and correct length\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"jonasongg"},"content":" // get the chart bars and assert they have the correct initial widths","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"jonasongg"},"content":" const expectedWidths \u003d [100, 100, 20, 100, 100, 3, 20, 5];","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" cy.get(\u0027.stacked-bar__contrib--bar\u0027)","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, expectedWidths.length)","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" .then(($bars) \u003d\u003e {","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" // calculate the percentage of the width relative to the parent container","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" const parentWidth \u003d $bars.eq(0).parent().width();","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"jonasongg"},"content":" expectedWidths.forEach((expectedWidth, index) \u003d\u003e {","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"jonasongg"},"content":" const width \u003d (parseFloat(window.getComputedStyle($bars[index]).width) / parentWidth) * 100;","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"jonasongg"},"content":" expect(width).to.be.closeTo(expectedWidth, 2);","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" it(\u0027merge group contribution bars should have correct width after reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" const initialWidths \u003d [];","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" // Store the initial widths of the contribution bars","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" cy.get(\u0027.stacked-bar__contrib--bar\u0027)","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" .each(($bar) \u003d\u003e {","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" const width \u003d window.getComputedStyle($bar[0]).width;","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" initialWidths.push(width);","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" })","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .then(() \u003d\u003e {","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" // Reload the page and wait for the loading div to disappear","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" cy.get(\u0027.overlay-loader\u0027).should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" // Get the contribution bars again and compare their widths with the initial widths","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" cy.get(\u0027.stacked-bar__contrib--bar\u0027)","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, initialWidths.length)","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" .each(($bar, index) \u003d\u003e {","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" const width \u003d window.getComputedStyle($bar[0]).width;","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" expect(width).to.equal(initialWidths[index]);","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":91,"jonasongg":15}},{"path":"frontend/cypress/tests/chartView/chartView_optimiseTimeline.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"jonasongg"},"content":"describe(\u0027optimise timeline\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"jonasongg"},"content":" it(\u0027ramp padding should only exist when optimise timeline is checked\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.optimise-timeline \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.not.checked\u0027);","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-charts .summary-chart\u0027)","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__ramp .ramp .ramp-padding\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.css\u0027, \u0027left\u0027, \u00270px\u0027);","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.optimise-timeline \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-charts .summary-chart\u0027)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__ramp .ramp .ramp-padding\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.not.css\u0027, \u0027left\u0027, \u00270px\u0027);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"jonasongg"},"content":" it(\u0027should retain the same number of ramp slices\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-charts .summary-chart\u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__ramp .ramp .ramp-padding a\u0027)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"jonasongg"},"content":" .then(($el) \u003d\u003e {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"jonasongg"},"content":" const rampSlices \u003d $el.length;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.optimise-timeline \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-charts .summary-chart\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__ramp .ramp .ramp-padding a\u0027)","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, rampSlices);","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"jonasongg"},"content":" it(\u0027start and end date indicators should exist\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.optimise-timeline \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-charts .summary-chart\u0027)","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__ramp .date-indicators span\u0027)","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.text\u0027, \u00272018-05-03\u0027);","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-charts .summary-chart\u0027)","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__ramp .date-indicators span\u0027)","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"jonasongg"},"content":" .last()","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"jonasongg"},"content":" // 3/3 on GitHub CI, 3/4 on local","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.text\u0027, \u00272023-03-03\u0027);","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"jonasongg"},"content":" it(\u0027no commits in range should not have date indicators\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.optimise-timeline \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"jonasongg"},"content":" // change since date","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027input[name\u003d\"since\"]\u0027)","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"jonasongg"},"content":" .type(\u00272018-12-31\u0027);","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"jonasongg"},"content":" // change until date","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027input[name\u003d\"until\"]\u0027)","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"jonasongg"},"content":" .type(\u00272019-01-01\u0027);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-charts .summary-chart\u0027)","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__ramp .date-indicators\u0027)","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.exist\u0027);","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"jonasongg"},"content":" it(\u0027zoom panel range should work correctly when timeline is optimised\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"jonasongg"},"content":" // verifies the ramp chart is not optimised and has empty space on the right","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#tab-zoom .ramp a\u0027)","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"jonasongg"},"content":" .invoke(\u0027css\u0027, \u0027right\u0027)","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"jonasongg"},"content":" .then((val) \u003d\u003e parseFloat(val))","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"jonasongg"},"content":" .should(\u0027gt\u0027, 0);","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.optimise-timeline \u003e input\u0027)","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"jonasongg"},"content":" // verifies the date range is correctly optimised","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#tab-zoom .period\u0027)","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u00272018-05-03 to 2023-03-03\u0027);","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"jonasongg"},"content":" // verifies the ramp chart is optimised and has no empty space on the right","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#tab-zoom .ramp a\u0027)","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"jonasongg"},"content":" .invoke(\u0027css\u0027, \u0027right\u0027)","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"jonasongg"},"content":" .then((val) \u003d\u003e parseFloat(val))","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"jonasongg"},"content":" .should(\u0027lt\u0027, 1);","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"jonasongg"},"content":" it(\u0027subzoom panel range should work correctly when timeline is optimised\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"jonasongg"},"content":" const zoomKey \u003d Cypress.platform \u003d\u003d\u003d \u0027darwin\u0027 ? \u0027{meta}\u0027 : \u0027{ctrl}\u0027;","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.optimise-timeline \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"jonasongg"},"content":" // clicking from the 10th px to the 50th px in the ramp","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027body\u0027).type(zoomKey, { release: false })","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"jonasongg"},"content":" .get(\u0027#summary-charts .summary-chart__ramp .ramp\u0027)","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"jonasongg"},"content":" .click(110, 20)","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"jonasongg"},"content":" .click(120, 20);","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 1);","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"jonasongg"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"jonasongg"},"content":" .then((title) \u003d\u003e {","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"jonasongg"},"content":" cy.wrap(title).should(\u0027eq\u0027, \u0027[2019-08-18] AboutUs: update team members (#867): +94 -12 lines \u0027);","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"jonasongg"},"content":"});","isFullCredit":false}],"authorContributionMap":{"jonasongg":151}},{"path":"frontend/cypress/tests/chartView/chartView_scrollToActiveRepo.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"jonasongg"},"content":"describe(\u0027scroll to active repo\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"jonasongg"},"content":" // need to set scrollBehavior to false because the default behavior is to scroll the element into view","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"jonasongg"},"content":" it(\u0027selecting a visible repo should not scroll\u0027, { scrollBehavior: false }, () \u003d\u003e {","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"jonasongg"},"content":" // close the error message box","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.error-message-box\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper \u003e #summary \u003e .error-message-box \u003e .error-message-box__close-button\u0027)","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.error-message-box\u0027)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"jonasongg"},"content":" .first();","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"jonasongg"},"content":" let scrollTopOriginal \u003d 0;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper\u0027)","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"jonasongg"},"content":" .then(($el) \u003d\u003e {","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"jonasongg"},"content":" scrollTopOriginal \u003d $el.prop(\u0027scrollTop\u0027);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"jonasongg"},"content":" .then(($el) \u003d\u003e {","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"jonasongg"},"content":" const scrollTop \u003d $el.prop(\u0027scrollTop\u0027);","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"jonasongg"},"content":" expect(scrollTop).to.equal(scrollTopOriginal);","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"jonasongg"},"content":" it(\u0027selecting a non-visible repo should scroll\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"jonasongg"},"content":" .last()","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper\u0027)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"jonasongg"},"content":" .then(($el) \u003d\u003e {","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"jonasongg"},"content":" const scrollTop \u003d $el.prop(\u0027scrollTop\u0027);","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"jonasongg"},"content":" expect(scrollTop).to.not.equal(0);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027tabAuthor\u003dyong24s\u0027)","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027tabRepo\u003dreposense%2Fpublish-RepoSense%5Bmaster%5D\u0027);","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"jonasongg"},"content":" .last()","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"jonasongg"},"content":"});","isFullCredit":false}],"authorContributionMap":{"jonasongg":62}},{"path":"frontend/cypress/tests/chartView/chartView_showTags.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"jonasongg"},"content":"describe(\u0027show tags\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"jonasongg"},"content":" it(\u0027unchecked should not display any tags for a group\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.show-tags \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-charts__title--tags\u0027)","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.exist\u0027);","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"jonasongg"},"content":" it(\u0027checked should display all tags for a group\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.show-tags \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"jonasongg"},"content":" const correctTags \u003d [];","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.zoom__title--tags\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"jonasongg"},"content":" .each(($tag) \u003d\u003e correctTags.push($tag.text().trim()))","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"jonasongg"},"content":" .then(() \u003d\u003e {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-charts\u0027)","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-charts__title--tags\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"jonasongg"},"content":" .each(($tag) \u003d\u003e {","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"jonasongg"},"content":" expect(correctTags).to.include($tag.text().trim());","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-charts\u0027)","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-charts__title--tags\u0027)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, correctTags.length);","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"jonasongg"},"content":" it(\u0027clicked should redirect to the correct tag page\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.show-tags \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-charts__title--tags\u0027)","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"jonasongg"},"content":" .invoke(\u0027removeAttr\u0027, \u0027target\u0027) // to open in the same window","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"jonasongg"},"content":" cy.origin(\u0027https://github.com\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"jonasongg"},"content":" .should(\u0027equal\u0027, \u0027https://github.com/reposense/RepoSense/releases/tag/v1.0\u0027);","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"jonasongg"},"content":" it(\u0027group by authors works with show tags\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"jonasongg"},"content":" .select(\u0027groupByAuthors\u0027);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.sort-within-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"jonasongg"},"content":" .select(\u0027title dsc\u0027);","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.show-tags \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__title--tags\u0027)","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"jonasongg"},"content":" .find(\u0027a\u0027)","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 0);","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"jonasongg"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__title--tags\u0027)","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"jonasongg"},"content":" .find(\u0027a\u0027)","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length.gt\u0027, 0);","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"jonasongg"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"jonasongg"},"content":" const correctTags \u003d [];","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.zoom__title--tags\u0027)","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"jonasongg"},"content":" .each(($tag) \u003d\u003e correctTags.push($tag.text().trim()))","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"jonasongg"},"content":" .then(() \u003d\u003e {","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"jonasongg"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__title--tags\u0027)","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"jonasongg"},"content":" .each(($tag) \u003d\u003e {","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"jonasongg"},"content":" expect(correctTags).to.include($tag.text().trim());","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"jonasongg"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__title--tags\u0027)","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, correctTags.length);","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"jonasongg"},"content":" it(\u0027group by none works with show tags\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"jonasongg"},"content":" .select(\u0027groupByNone\u0027);","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.show-tags \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"jonasongg"},"content":" const correctTags \u003d [];","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.zoom__title--tags\u0027)","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"jonasongg"},"content":" .each(($tag) \u003d\u003e correctTags.push($tag.text().trim()))","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"jonasongg"},"content":" .then(() \u003d\u003e {","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__title--tags\u0027)","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"jonasongg"},"content":" .each(($tag) \u003d\u003e {","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"jonasongg"},"content":" expect(correctTags).to.include($tag.text().trim());","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__title--tags\u0027)","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, correctTags.length);","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"jonasongg"},"content":"});","isFullCredit":false}],"authorContributionMap":{"jonasongg":154}},{"path":"frontend/cypress/tests/chartView/chartView_toolBar_searchBox.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027search bar\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027non-existent author shows no result\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027).click();","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-wrapper input[type\u003dtext]\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" .type(\u0027abcdef\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-wrapper form.summary-picker\u0027)","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" .submit();","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-wrapper #summary-charts\u0027).then(($ele) \u003d\u003e {","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" const content \u003d $ele.html();","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" expect(content).to.be.empty;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" it(\u0027unique author shows one result\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027).click();","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-wrapper input[type\u003dtext]\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"jonasongg"},"content":" .type(\u0027Metta\u0027)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-wrapper form.summary-picker\u0027)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" .submit();","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-wrapper #summary-charts\u0027).then(($ele) \u003d\u003e {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" const children \u003d $ele.children().length;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" expect(children).to.equal(1);","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"jonasongg"},"content":" it(\u0027searching by non-existent tag shows no results\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027).click();","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper input[type\u003dtext]\u0027)","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"jonasongg"},"content":" .type(\u0027tag: asdfghjkl\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"jonasongg"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper form.summary-picker\u0027)","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"jonasongg"},"content":" .submit();","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper #summary-charts\u0027)","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.empty\u0027);","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"jonasongg"},"content":" it(\"searching tag that only exists in one author\u0027s commits shows one result\", () \u003d\u003e {","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027).click();","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper input[type\u003dtext]\u0027)","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"jonasongg"},"content":" .type(\u0027tag: v1.8\u0027)","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"jonasongg"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper form.summary-picker\u0027)","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"jonasongg"},"content":" .submit();","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart__title--name\u0027)","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 1)","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"jonasongg"},"content":" .and(\u0027contain\u0027, \u0027Eugene (eugenepeh)\u0027);","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.zoom__title--tags \u003e .tag span\u0027)","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027v1.8\u0027);","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"jonasongg"},"content":" it(\"searching tag that only exists in two authors\u0027 commits shows two results\", () \u003d\u003e {","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027).click();","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper input[type\u003dtext]\u0027)","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"jonasongg"},"content":" .type(\u0027tag: v1.10\u0027)","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"jonasongg"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper form.summary-picker\u0027)","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"jonasongg"},"content":" .submit();","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart__title--name\u0027)","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 2)","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"jonasongg"},"content":" .and(\u0027contain\u0027, \u0027Eugene (eugenepeh)\u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"jonasongg"},"content":" .and(\u0027contain\u0027, \u0027James (jamessspanggg)\u0027);","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"jonasongg"},"content":" .each(($ele) \u003d\u003e {","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"jonasongg"},"content":" cy.wrap($ele).click();","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.zoom__title--tags \u003e .tag span\u0027)","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027v1.10\u0027);","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"jonasongg"},"content":" it(\"search field doesn\u0027t start with \u0027tag:\u0027 prefix but still contains it shows no results\", () \u003d\u003e {","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027).click();","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper input[type\u003dtext]\u0027)","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"jonasongg"},"content":" .type(\u0027v1.10 tag: v1.10\u0027)","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"jonasongg"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper form.summary-picker\u0027)","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"jonasongg"},"content":" .submit();","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper #summary-charts\u0027)","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.empty\u0027);","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"jonasongg"},"content":" it(\"search field doesn\u0027t contain \u0027tag:\u0027 at all shows no results\", () \u003d\u003e {","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027).click();","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper input[type\u003dtext]\u0027)","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"jonasongg"},"content":" .type(\u0027v1.10\u0027)","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"jonasongg"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper form.summary-picker\u0027)","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"jonasongg"},"content":" .submit();","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper #summary-charts\u0027)","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.empty\u0027);","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"jonasongg"},"content":" it(\u0027searching for multiple tags shows results containing all the tags searched\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027).click();","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper input[type\u003dtext]\u0027)","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"jonasongg"},"content":" .type(\u0027tag: bb v1.10\u0027)","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"jonasongg"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper form.summary-picker\u0027)","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"jonasongg"},"content":" .submit();","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart__title--name\u0027)","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 2)","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"jonasongg"},"content":" .and(\u0027contain\u0027, \u0027Eugene (eugenepeh)\u0027)","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"jonasongg"},"content":" .and(\u0027contain\u0027, \u0027James (jamessspanggg)\u0027);","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.zoom__title--tags \u003e .tag span\u0027)","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027bb\u0027);","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"jonasongg"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.zoom__title--tags \u003e .tag span\u0027)","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027v1.10\u0027);","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":31,"jonasongg":116}},{"path":"frontend/cypress/tests/chartView/chartView_zoomFeature.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"const extractDate \u003d (str) \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" const regex \u003d /\\[(.*?)\\]/g;","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" const matches \u003d str.match(regex);","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" return new Date(matches[0].slice(1, -1));","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"};","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"describe(\u0027zoom features in code view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" const zoomKey \u003d Cypress.platform \u003d\u003d\u003d \u0027darwin\u0027 ? \u0027{meta}\u0027 : \u0027{ctrl}\u0027;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" it(\u0027click on view commits button\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" it(\u0027zoom into ramp\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" // clicking from the 10th px to the 50th px in the ramp","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" cy.get(\u0027body\u0027).type(zoomKey, { release: false })","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .get(\u0027#summary-charts .summary-chart__ramp .ramp\u0027)","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" .click(10, 20)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" .click(50, 20);","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" it(\u0027zoom into ramp when merge group\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" // clicking from the 10th px to the 50th px in the ramp","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" cy.get(\u0027body\u0027).type(zoomKey, { release: false })","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .get(\u0027#summary-charts .summary-chart__ramp .ramp\u0027)","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .click(10, 20)","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .click(50, 20);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"});","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"// Assumptions: Contributer \u0027eugenepeh\u0027 is the first result.","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"describe(\u0027date changes in chart view should reflect in zoom\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" it(\u0027setting \\\u0027since\\\u0027 date range changes the zoom view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" .type(\u0027eugenepeh\u0027);","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" .type(\u00272018-06-11\u0027);","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" .each(($element) \u003d\u003e {","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" cy.wrap($element)","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" .then((titleStr) \u003d\u003e {","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" const date \u003d extractDate(titleStr);","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" cy.wrap(date).should(\u0027be.gte\u0027, new Date(\u00272018-06-11\u0027));","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027yong24s\u0027 is the first result.","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" it(\u0027setting \\\u0027since\\\u0027 date again results in a different zoom view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" .type(\u0027yong24s\u0027);","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" .type(\u00272018-05-20\u0027);","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" .each(($element) \u003d\u003e {","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" cy.wrap($element)","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" .then((titleStr) \u003d\u003e {","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" const date \u003d extractDate(titleStr);","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" cy.wrap(date).should(\u0027be.gte\u0027, new Date(\u00272018-05-20\u0027));","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027eugenepeh\u0027 is the first result.","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" it(\u0027setting the \\\u0027until\\\u0027 date changes the zoom view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" .type(\u0027eugenepeh\u0027);","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" .type(\u00272019-08-19\u0027);","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" .each(($element) \u003d\u003e {","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" cy.wrap($element)","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" .then((titleStr) \u003d\u003e {","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" const date \u003d extractDate(titleStr);","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" cy.wrap(date).should(\u0027be.lte\u0027, new Date(\u00272019-08-19\u0027));","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027ongspxm\u0027 is the first result.","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" it(\u0027setting the \\\u0027until\\\u0027 date again results in a different zoom view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" .type(\u0027ongspxm\u0027);","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" .type(\u00272018-07-20\u0027);","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" .each(($element) \u003d\u003e {","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" cy.wrap($element)","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" .then((titleStr) \u003d\u003e {","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" const date \u003d extractDate(titleStr);","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" cy.wrap(date).should(\u0027be.lte\u0027, new Date(\u00272018-07-20\u0027));","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027eugenepeh\u0027 is the first result.","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" it(\u0027setting the \\\u0027until\\\u0027 and \\\u0027since\\\u0027 date changes the zoom view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" .type(\u0027eugenepeh\u0027);","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" .type(\u00272018-08-27\u0027);","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" .type(\u00272019-03-09\u0027);","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" .each(($element) \u003d\u003e {","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" cy.wrap($element)","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" .then((titleStr) \u003d\u003e {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" const date \u003d extractDate(titleStr);","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" cy.wrap(date).should(\u0027be.lte\u0027, new Date(\u00272019-03-09\u0027));","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" .each(($element) \u003d\u003e {","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" cy.wrap($element)","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" .then((titleStr) \u003d\u003e {","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" const date \u003d extractDate(titleStr);","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" cy.wrap(date).should(\u0027be.gte\u0027, new Date(\u00272018-08-27\u0027));","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027jamessspanggg\u0027 is the first result.","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" it(\u0027setting the \\\u0027until\\\u0027 and \\\u0027since\\\u0027 date again results in a different zoom view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" .type(\u0027jamessspanggg\u0027);","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" .type(\u00272019-07-22\u0027);","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" .type(\u00272019-08-01\u0027);","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" .each(($element) \u003d\u003e {","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" cy.wrap($element)","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" .then((titleStr) \u003d\u003e {","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" const date \u003d extractDate(titleStr);","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" cy.wrap(date).should(\u0027be.lte\u0027, new Date(\u00272019-08-01\u0027));","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" .each(($element) \u003d\u003e {","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" cy.wrap($element)","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" .then((titleStr) \u003d\u003e {","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" const date \u003d extractDate(titleStr);","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" cy.wrap(date).should(\u0027be.gte\u0027, new Date(\u00272019-07-22\u0027));","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":"});","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":"describe(\u0027range changes in chartview should reflect in zoom\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"jonasongg"},"content":" const zoomKeyOption \u003d Cypress.platform \u003d\u003d\u003d \u0027darwin\u0027 ? { metaKey: true } : { ctrlKey: true };","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027jamessspanggg\u0027 is the first result,","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" // he does not add more commits in the future,","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" // and the sort feature is working as expected.","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" it(\u0027selecting the initial righthand and lefthand boundary\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" .type(\u0027jamessspanggg\u0027);","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"jonasongg"},"content":" .type(\u00272023-12-31\u0027);","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027body\u0027)","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" .get(\u0027#summary-charts .summary-chart__ramp .ramp\u0027)","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"jonasongg"},"content":" .click(120, 20, zoomKeyOption)","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"jonasongg"},"content":" .click(250, 20, zoomKeyOption);","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2021-01-04] Update `About us` page (#1393): +55 -30 lines \u0027);","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2019-12-20] [#46] Show total time after batch processing (#758): +43 -0 lines \u0027);","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027jamessspanggg\u0027 is the first result,","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" // he does not add more commits in the future,","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" // and the sort feature is working as expected.","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" it(\u0027changing the righthand boundary\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" .type(\u0027jamessspanggg\u0027);","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"jonasongg"},"content":" .type(\u00272023-12-31\u0027);","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027body\u0027)","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" .get(\u0027#summary-charts .summary-chart__ramp .ramp\u0027)","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"jonasongg"},"content":" .click(120, 20, zoomKeyOption)","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"jonasongg"},"content":" .click(170, 20, zoomKeyOption);","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2020-05-23] [#1241] Restore checked file types (#1256): +14 -1 lines \u0027);","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2019-12-20] [#46] Show total time after batch processing (#758): +43 -0 lines \u0027);","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027jamessspanggg\u0027 is the first result,","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" // he does not add more commits in the future,","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" // and the sort feature is working as expected.","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" it(\u0027changing the lefthand boundary\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":" .type(\u0027jamessspanggg\u0027);","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"jonasongg"},"content":" .type(\u00272023-12-31\u0027);","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027body\u0027)","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" .get(\u0027#summary-charts .summary-chart__ramp .ramp\u0027)","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"jonasongg"},"content":" .click(170, 20, zoomKeyOption)","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"jonasongg"},"content":" .click(250, 20, zoomKeyOption);","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2021-01-04] Update `About us` page (#1393): +55 -30 lines \u0027);","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2020-09-27] Add optional check for quotes in diff file regex (#1330): +1 -1 lines \u0027);","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027jamessspanggg\u0027 is the first result,","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" // he does not add more commits in the future,","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":" // and the sort feature is working as expected.","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" it(\u0027changing the righthand and lefthand boundary\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" .type(\u0027jamessspanggg\u0027);","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"jonasongg"},"content":" .type(\u00272023-12-31\u0027);","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027body\u0027)","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" .get(\u0027#summary-charts .summary-chart__ramp .ramp\u0027)","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"jonasongg"},"content":" .click(170, 20, zoomKeyOption)","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"jonasongg"},"content":" .click(225, 20, zoomKeyOption);","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":" .should(","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":" \u0027eq\u0027,","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":" \u0027[2021-01-04] Update `About us` page (#1393): +55 -30 lines \u0027,","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":" );","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2020-09-27] Add optional check for quotes in diff file regex (#1330): +1 -1 lines \u0027);","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":335,"jonasongg":31}},{"path":"frontend/cypress/tests/codeView/codeView.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027code view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027at first start shows tutorial message\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" cy.get(\u0027#tabs-wrapper\u0027)","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-empty \u003e .title\u0027).then(($ele) \u003d\u003e {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" const expected \u003d \u0027Welcome to this RepoSense report!\u0027","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" + \u0027The charts on the left show the contribution activities, grouped by repository and author.\u0027","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" + \"To view the code attributed to a specific author, click the    icon next to that author\u0027s name.\"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" + \"To view the breakdown of commits made by a specific author, click the    icon next to that author\u0027s name.\"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" + \u0027To hide the code view and show only the activity charts, click the    icon on the centre divider.\u0027","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" + \u0027See the  User Guide  to get a better understanding of how to interpret the report.\u0027;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" const message \u003d $ele.text();","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" expect(expected).to.equal(message);","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" it(\u0027can be closed\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" cy.get(\u0027#tabs-wrapper\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027)","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" cy.get(\u0027#tabs-wrapper\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .should(\u0027not.exist\u0027);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" it(\u0027merge group and view code for entire repository\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" .check({ force: true })","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":43,"jonasongg":1}},{"path":"frontend/cypress/tests/codeView/codeView_checkFileTypes.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027check file types\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027check if all files types are visible by default\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" it(\u0027uncheck all files types should show no files\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" it(\u0027uncheck file type should uncheck all option and not show legend\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" cy.get(\u0027.file \u003e .title \u003e .fileTypeLabel\u0027)","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" .should(\u0027not.contain.text\u0027, \u0027java\u0027);","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" cy.get(\u0027.file \u003e .title \u003e .fileTypeLabel\u0027)","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" .should(\u0027contain.text\u0027, \u0027gradle\u0027);","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":54,"jonasongg":3}},{"path":"frontend/cypress/tests/codeView/codeView_codeHighlighting.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"sopa301"},"content":"// Assumes: RepoSense repo from 03/05/2018 to current date","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"sopa301"},"content":"describe(\u0027code highlighting works properly\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"sopa301"},"content":" it(\u0027line numbers should all have the same colour\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"sopa301"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"sopa301"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"sopa301"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"sopa301"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.line-number\u0027) // this is just a wrapper","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"sopa301"},"content":" .first()","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"sopa301"},"content":" .children()","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"sopa301"},"content":" // The actual line number element. We can\u0027t name the class","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"sopa301"},"content":" // because it\u0027s generated by the code highlighter.","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"sopa301"},"content":" .first()","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"sopa301"},"content":" .should(\u0027have.css\u0027, \u0027color\u0027)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"sopa301"},"content":" .then((firstColor) \u003d\u003e {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.line-number\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"sopa301"},"content":" .each((el) \u003d\u003e cy.wrap(el)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"sopa301"},"content":" .children()","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"sopa301"},"content":" .first()","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"sopa301"},"content":" .should(\u0027have.css\u0027, \u0027color\u0027, firstColor));","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"sopa301"},"content":" });","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"sopa301"},"content":" });","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"sopa301"},"content":" it(\u0027should highlight code when there is a single author\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"sopa301"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"sopa301"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"sopa301"},"content":" .first()","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"sopa301"},"content":" .click();","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"sopa301"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.hljs-comment\u0027).contains(\u0027* Represents a Git Author.\u0027)","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"sopa301"},"content":" .parent() // .line-content","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"sopa301"},"content":" .parent() // .code","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .should(\u0027have.css\u0027, \u0027background-color\u0027, \u0027rgb(191, 246, 207)\u0027); // #BFF6CF","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"sopa301"},"content":" });","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"sopa301"},"content":" it(\u0027should highlight code when multiple authors are merged in a repo group\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"sopa301"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"sopa301"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"sopa301"},"content":" .check()","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"sopa301"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"sopa301"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"sopa301"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"sopa301"},"content":" .first()","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"sopa301"},"content":" .click();","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"sopa301"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.hljs-comment\u0027).contains(\u0027* MUI Colors module\u0027) // eugenepeh","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"sopa301"},"content":" .parent() // .line-content","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"sopa301"},"content":" .parent() // .code","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" .should(\u0027have.css\u0027, \u0027background-color\u0027, \u0027rgba(30, 144, 255, 0.314)\u0027) // #1e90ff, transparencyValue 50","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"sopa301"},"content":" .then((firstAuthorColor) \u003d\u003e {","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"sopa301"},"content":" // eslint-disable-next-line quotes","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.line-content\u0027).contains(\"\u0027red\u0027: (\") // jamessspanggg","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"sopa301"},"content":" .parent() // .code","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" // #f08080, transparencyValue 50","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" .should(\u0027have.css\u0027, \u0027background-color\u0027, \u0027rgba(240, 128, 128, 0.314)\u0027)","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"sopa301"},"content":" .and(\u0027not.eq\u0027, firstAuthorColor);","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"sopa301"},"content":" });","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"sopa301"},"content":" });","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"sopa301"},"content":" it(\u0027should not highlight non-attributed lines\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"sopa301"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"sopa301"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"sopa301"},"content":" .first()","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"sopa301"},"content":" .click();","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"sopa301"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.hljs-title\u0027).contains(\u0027Author\u0027)","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"sopa301"},"content":" .parent() // .hljs-class","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"sopa301"},"content":" .parent() // .line-content","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"sopa301"},"content":" .parent() // .code","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"sopa301"},"content":" .should(\u0027have.css\u0027, \u0027background-color\u0027, \u0027rgb(255, 255, 255)\u0027); // #ffffff","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"sopa301"},"content":" });","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"sopa301"},"content":"});","isFullCredit":false}],"authorContributionMap":{"sopa301":88,"-":4}},{"path":"frontend/cypress/tests/codeView/codeView_filterGlob.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027filter glob\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027check filter glob radio button is clickable\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" // click on filter glob radio button","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" // filter by file type should be unchecked","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--checkbox\u0027)","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" it(\u0027check no filter glob input should show all file types by default\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" // the contents of all the files should be visible","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" it(\u0027check filter glob input should be in focus after click\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" // click on input box","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" .click()","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" .should(\u0027have.focus\u0027);","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" it(\u0027check filter glob input should have default empty value\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027\u0027);","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" it(\u0027check deleting previously searched input to filter empty input by enter should show all file types\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" // enter some input","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" .type(\u0027an input\u0027);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" // submit some input","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" // delete previous input","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" .clear();","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" // enter on empty input","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" it(\u0027check deleting previously searched input to filter empty input by clicking should show all file types\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" .type(\u0027an input\u0027);","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" cy.get(\u0027#submit-button\u0027)","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" .clear();","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" // click \u0027Filter\u0027 on empty input","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" cy.get(\u0027#submit-button\u0027)","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" it(\u0027check request to filter invalid glob by enter should not show any files\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" .type(\u0027invalid glob\u0027);","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" // no file should be shown","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027)","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" it(\u0027check request to filter invalid glob by clicking should not show any files\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" .type(\u0027invalid glob\u0027);","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" cy.get(\u0027#submit-button\u0027)","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027)","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" it(\u0027check filter glob should only show files with that extension\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" // try java","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" .type(\u0027*java\u0027);","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" cy.get(\u0027#submit-button\u0027)","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027).then(($files) \u003d\u003e {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" // check if there is any file with .java extension","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" if ($files.hasClass(\u0027path\u0027)) {","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" // check each file for .java extension","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" cy.get(\u0027.title \u003e .path \u003e span\u0027)","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" .then(($spans) \u003d\u003e {","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" $spans.toArray().forEach((span) \u003d\u003e {","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" cy.wrap(span).contains(\u0027.java\u0027);","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":189,"jonasongg":9}},{"path":"frontend/cypress/tests/codeView/codeView_hideFileDetails.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027hide all file details\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027check hide all file details hides the content of all the files\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" // the contents of all the files should be visible","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" // hide the details of all the files","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" // the contents of all the files should be hidden","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" it(\u0027check details of one file are shown, rest are hidden\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" // should show \u0027show all file details\u0027 only","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .toolbar--multiline a\u0027)","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" .should(\u0027not.contain.text\u0027, \u0027hide all file details\u0027)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" .should(\u0027contain.text\u0027, \u0027show all file details\u0027);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" // open contents of the first file","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .title .caret\u0027)","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" // should show both \u0027show/hide all file details\u0027","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .toolbar--multiline a\u0027)","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" .should(\u0027contain.text\u0027, \u0027hide all file details\u0027)","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" .should(\u0027contain.text\u0027, \u0027show all file details\u0027);","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" // contents of the first file should be visible","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" // contents of the last file should be hidden","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" it(\u0027check file can be hidden after scrolling\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" // contents of the first file should be visible","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" // scroll some lines in the contents of the second file","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" .scrollIntoView({ offset: { top: 500, left: 0 } });","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" // title of the second file should still be visible","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file .title \u0027)","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" // close contents of the second file","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .title .caret\u0027)","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" // contents of the second file should not be visible","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" // title of the second file should still be visible","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file .title \u0027)","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" // scroll some lines up from the top of the second file","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" .scrollIntoView({ offset: { top: -500, left: 0 } });","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" // title of the first file should be visible","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file .title \u0027)","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" it(\u0027check show all file details shows the content of all the files\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" // hide the content of all the files","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" // show the content of all the files","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" it(\u0027check collapsed file persists after sort\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" // hide contents of the first file","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .title .caret\u0027)","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .title .path\u0027)","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" .invoke(\u0027text\u0027)","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" // keep track of first file by file path so test doesn\u0027t rely on correctness of sort","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" .then((filePath) \u003d\u003e {","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" // change sort by","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-by \u003e select\u0027)","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" .select(\u0027Path\u0027)","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027path\u0027);","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" // wait until loading is finished","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" cy.get(\u0027[aria-label\u003d\"Loading\"]\u0027)","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" // contents of file should still be hidden","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" cy.contains(\u0027#tab-authorship .file\u0027, filePath.trim())","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" .children(\u0027.file-content\u0027)","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" // change sort order","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-order \u003e select\u0027)","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" .select(\u0027Ascending\u0027)","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027false\u0027);","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" // wait until loading is finished","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" cy.get(\u0027[aria-label\u003d\"Loading\"]\u0027)","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" // contents of file should still be hidden","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" cy.contains(\u0027#tab-authorship .file\u0027, filePath.trim())","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" .children(\u0027.file-content\u0027)","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":201,"jonasongg":5}},{"path":"frontend/cypress/tests/codeView/codeView_mergeGroupBlame.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027merge group blame in code view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027no author breakdown shown by default\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" // code panel should be visible","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" // author breakdown should not be visible","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .file .title .author-breakdown\u0027)","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" .should(\u0027not.exist\u0027);","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" it(\u0027merge group for group by repos shows author breakdown for each file\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" // group summary charts by repos","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" // check merge group checkbox","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" // code panel should be visible","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" // author breakdown should exist","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .file .title .author-breakdown\u0027)","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .should(\u0027exist\u0027);","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" it(\u0027author breakdown visible when file content hidden\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" // group summary charts by repos","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" // check merge group checkbox","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" // hide content of all files","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" // author breakdown should be visible","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .file .title .author-breakdown\u0027)","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" it(\u0027author breakdown contains only file authors in alphabetical order\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" // group summary charts by repos","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" // check merge group checkbox","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" // author breakdown contains expected author count and order","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" const expectedResult \u003d [\u0027eugenepeh\u0027, \u0027jamessspanggg\u0027, \u0027yamidark\u0027, \u0027yong24s\u0027];","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .file .title .author-breakdown\u0027)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .eq(2)","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .children(\u0027.author-breakdown__legend\u0027)","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, expectedResult.length)","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" .each(($el, index) \u003d\u003e {","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" cy.wrap($el).should(\u0027contain\u0027, expectedResult[index]);","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" it(\u0027authors are assigned the same color in all files\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" // group summary charts by repos","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" // check merge group checkbox","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" // check first and second occurence of same author has the same color","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .author-breakdown__legend:contains(\\\u0027jamessspanggg\\\u0027)\u0027)","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e {","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" const color \u003d $el.children().first().css(\u0027color\u0027);","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .author-breakdown__legend:contains(\\\u0027jamessspanggg\\\u0027)\u0027)","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" .eq(1).children().first()","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" .should(\u0027have.css\u0027, \u0027color\u0027, color);","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" it(\u0027author name shown on segment hover for known authors\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" // group summary charts by repos","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" // check merge group checkbox","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" // author name in html title attribute should be shown","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .segment.active\u0027)","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" .not(\u0027.untouched\u0027)","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027eugenepeh\u0027);","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" it(\u0027author name shown as unknown for missing authors\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" // group summary charts by repos","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" // check merge group checkbox","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" // author name in html title attribute should be unknown","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .segment.untouched\u0027)","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027Unknown\u0027);","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" it(\u0027code segment has same color as author legend\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" // group summary charts by repos","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" // check merge group checkbox","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" // segment color should be the same as author legend color","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .segment.active\u0027)","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" .not(\u0027.untouched\u0027)","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e {","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" const color \u003d $el.css(\u0027border-left-color\u0027);","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" const author \u003d \u0027eugenepeh\u0027;","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .file .title .author-breakdown\u0027)","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" .eq(2)","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" .children(\u0027.author-breakdown__legend\u0027)","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" .contains(author)","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" .prev()","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" .should(\u0027have.css\u0027, \u0027color\u0027, color);","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" it(\u0027colors in author breakdown match assigned colors\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" // group summary charts by repos","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" // check merge group checkbox","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" // author breakdown contains assigned colors","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" const expectedResult \u003d [\u0027rgb(30, 144, 255)\u0027, \u0027rgb(240, 128, 128)\u0027, \u0027rgb(0, 255, 127)\u0027, \u0027rgb(255, 215, 0)\u0027];","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .file .title .author-breakdown\u0027)","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" .eq(2)","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" .children(\u0027.author-breakdown__legend\u0027)","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" .each(($el, index) \u003d\u003e {","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" cy.wrap($el).children().first().should(\u0027have.css\u0027, \u0027color\u0027, expectedResult[index]);","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":226,"jonasongg":9}},{"path":"frontend/cypress/tests/codeView/codeView_reload.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027reload page\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027reload page should restore all controls\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" // change sort by","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-by \u003e select\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" .select(\u0027LoC\u0027);","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" // change sort order","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-order \u003e select\u0027)","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" .select(\u0027Descending\u0027);","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" // select radio-button","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes \u003e .radio-button--checkbox\u0027)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-by \u003e select\u0027)","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027linesOfCode\u0027);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-order \u003e select\u0027)","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027true\u0027);","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes \u003e .radio-button--checkbox\u0027)","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":52,"jonasongg":1}},{"path":"frontend/cypress/tests/codeView/codeView_renderFilterHash.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027render filter hash\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027search: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" /* Check initial state */","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027\u0027);","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" /* Enter search and test URL before and after reload */","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" .type(\u0027eugene{enter}\u0027);","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027search\u003deugene\u0027);","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027search\u003deugene\u0027);","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" it(\u0027group by: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" /* Check initial state */","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027groupSelect\u003dgroupByRepos\u0027);","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" /* Select group by none and test URL before and after reload */","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" .select(\u0027groupByNone\u0027);","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027groupSelect\u003dgroupByNone\u0027);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027groupSelect\u003dgroupByNone\u0027);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" /* Select group by authors and test URL before and after reload */","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" .select(\u0027groupByAuthors\u0027);","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027groupSelect\u003dgroupByAuthors\u0027);","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027groupSelect\u003dgroupByAuthors\u0027);","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" it(\u0027sort groups by: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" /* Check initial state */","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027groupTitle dsc\u0027);","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dgroupTitle%20dsc\u0027);","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" /* Select sort by group title ascending and test URL before and after reload */","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" .select(\u0027groupTitle\u0027);","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dgroupTitle\u0027);","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dgroupTitle\u0027);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" /* Select sort by contribution descending and test URL before and after reload */","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .select(\u0027totalCommits dsc\u0027);","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dtotalCommits%20dsc\u0027);","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dtotalCommits%20dsc\u0027);","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" /* Select sort by contribution ascending and test URL before and after reload */","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .select(\u0027totalCommits\u0027);","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dtotalCommits\u0027);","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dtotalCommits\u0027);","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" /* Select sort by variance descending and test URL before and after reload */","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" .select(\u0027variance dsc\u0027);","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dvariance%20dsc\u0027);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dvariance%20dsc\u0027);","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" /* Select sort by variance ascending and test URL before and after reload */","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" .select(\u0027variance\u0027);","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dvariance\u0027);","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dvariance\u0027);","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" it(\u0027sort within groups by: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" /* Check initial state */","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-within-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027title\u0027);","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dtitle\u0027);","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" /* Select sort by group title ascending and test URL before and after reload */","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-within-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" .select(\u0027title dsc\u0027);","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dtitle\u0027);","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dtitle\u0027);","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" /* Select sort by contribution descending and test URL before and after reload */","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-within-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" .select(\u0027totalCommits dsc\u0027);","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dtotalCommits%20dsc\u0027);","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dtotalCommits%20dsc\u0027);","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" /* Select sort by contribution ascending and test URL before and after reload */","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-within-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" .select(\u0027totalCommits\u0027);","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dtotalCommits\u0027);","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dtotalCommits\u0027);","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" /* Select sort by variance descending and test URL before and after reload */","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-within-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" .select(\u0027variance dsc\u0027);","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dvariance%20dsc\u0027);","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dvariance%20dsc\u0027);","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" /* Select sort by variance ascending and test URL before and after reload */","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-within-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" .select(\u0027variance\u0027);","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dvariance\u0027);","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dvariance\u0027);","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" it(\u0027granularity: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" /* Check initial state */","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.granularity \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027commit\u0027);","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027timeframe\u003dcommit\u0027);","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" /* Select timeframe as day and test URL before and after reload */","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.granularity \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" .select(\u0027day\u0027);","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027timeframe\u003dday\u0027);","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027timeframe\u003dday\u0027);","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" /* Select timeframe as week and test URL before and after reload */","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.granularity \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" .select(\u0027week\u0027);","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027timeframe\u003dweek\u0027);","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027timeframe\u003dweek\u0027);","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" it(\u0027since: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" /* Check initial state */","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u00272018-05-03\u0027);","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027since\u003d2018-05-03\u0027);","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" /* Modify since date and test URL before and after reload */","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" .type(\u00272019-06-04\u0027);","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027since\u003d2019-06-04\u0027);","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027since\u003d2019-06-04\u0027);","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" it(\u0027until: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" /* Check initial state (will require dayjs for getting current date) */","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" // cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" // .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" // .should(\u0027eq\u0027, dayjs().format(\u0027YYYY-MM-DD\u0027));","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" // cy.url()","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" // .should(\u0027contain\u0027, \u0027date\u003d2023-07-06\u0027);","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" /* Modify since date and test URL before and after reload */","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" .type(\u00272019-06-04\u0027);","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027until\u003d2019-06-04\u0027);","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027until\u003d2019-06-04\u0027);","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" it(\u0027breakdown by file type: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.filter-breakdown input:visible\u0027)","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027breakdown\u003dfalse\u0027);","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.filter-breakdown input:visible\u0027)","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":" .check();","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027breakdown\u003dtrue\u0027);","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" it(\u0027merge all groups: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" .check();","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027mergegroup\u003dreposense%2FRepoSense%5Bcypress%5D\u0027);","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027mergegroup\u003dreposense%2FRepoSense%5Bcypress%5D\u0027);","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"jonasongg"},"content":" it(\u0027show tags: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.show-tags input:visible\u0027)","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"jonasongg"},"content":" .check();","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027viewRepoTags\u003dtrue\u0027);","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027viewRepoTags\u003dtrue\u0027);","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"jonasongg"},"content":" it(\u0027optimise timeline: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.optimise-timeline input:visible\u0027)","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"jonasongg"},"content":" .check();","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027optimiseTimeline\u003dtrue\u0027);","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027optimiseTimeline\u003dtrue\u0027);","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" it(\u0027checked file types: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.filter-breakdown input:visible\u0027)","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"jonasongg"},"content":" // Assumption: gradle is the first file type and yml is the last file type to appear in the list","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" .should(\u0027not.contain\u0027, \u0027gradle\u0027);","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.contain\u0027, \u0027yml\u0027);","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.filter-breakdown input:visible\u0027)","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary div.fileTypes input[id\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary div.fileTypes input[id\u003d\"yml\"]\u0027)","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027gradle\u0027);","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027yml\u0027);","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary div.fileTypes input[id\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary div.fileTypes input[id\u003d\"yml\"]\u0027)","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027gradle\u0027);","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027yml\u0027);","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary div.fileTypes input[id\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":" .should(\u0027not.contain\u0027, \u0027gradle\u0027);","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027yml\u0027);","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary div.fileTypes input[id\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary div.fileTypes input[id\u003d\"yml\"]\u0027)","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"-"},"content":" .should(\u0027not.contain\u0027, \u0027gradle\u0027);","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027yml\u0027);","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"jonasongg"},"content":" it(\u0027code panel: sort by: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"jonasongg"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.sort-by \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"jonasongg"},"content":" .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"jonasongg"},"content":" .should(\u0027eq\u0027, \u0027linesOfCode\u0027);","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.contain\u0027, \u0027authorshipSortBy\u0027);","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"jonasongg"},"content":" /* Select file name and test URL before and after reload */","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.sort-by \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"jonasongg"},"content":" .select(\u0027fileName\u0027);","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027authorshipSortBy\u003dfileName\u0027);","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.contain\u0027, \u0027%23%2F\u0027);","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027authorshipSortBy\u003dfileName\u0027);","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"jonasongg"},"content":" /* Select file type and test URL before and after reload */","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.sort-by \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"jonasongg"},"content":" .select(\u0027fileType\u0027);","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027authorshipSortBy\u003dfileType\u0027);","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.contain\u0027, \u0027%23%2F\u0027);","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027authorshipSortBy\u003dfileType\u0027);","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"jonasongg"},"content":" it(\u0027code panel: order: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"jonasongg"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.sort-order \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"jonasongg"},"content":" .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"jonasongg"},"content":" .should(\u0027eq\u0027, \u0027true\u0027); // true is Descending","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.contain\u0027, \u0027reverseAuthorshipOrder\u0027);","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"jonasongg"},"content":" /* Select ascending and test URL before and after reload */","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.sort-order \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"jonasongg"},"content":" .select(\u0027false\u0027);","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027reverseAuthorshipOrder\u003dfalse\u0027);","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.contain\u0027, \u0027%23%2F\u0027);","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027reverseAuthorshipOrder\u003dfalse\u0027);","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"jonasongg"},"content":" /* Select descending and test URL before and after reload */","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.sort-order \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"jonasongg"},"content":" .select(\u0027true\u0027);","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027reverseAuthorshipOrder\u003dtrue\u0027);","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.contain\u0027, \u0027%23%2F\u0027);","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027reverseAuthorshipOrder\u003dtrue\u0027);","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"jonasongg"},"content":" it(\u0027code panel: filter by glob: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"jonasongg"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"jonasongg"},"content":" // click on filter glob radio button","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"jonasongg"},"content":" // enter some input","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":504,"author":{"gitId":"jonasongg"},"content":" .type(\u0027README.md\u0027);","isFullCredit":false},{"lineNumber":505,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":506,"author":{"gitId":"jonasongg"},"content":" // submit","isFullCredit":false},{"lineNumber":507,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":508,"author":{"gitId":"jonasongg"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":509,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":510,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":511,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027authorshipFilesGlob\u003dREADME.md\u0027);","isFullCredit":false},{"lineNumber":512,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":513,"author":{"gitId":"jonasongg"},"content":" // Some bugs appear after two reloads, so reload twice here","isFullCredit":false},{"lineNumber":514,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":515,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":516,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":517,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":518,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.contain\u0027, \u0027%23%2F\u0027);","isFullCredit":false},{"lineNumber":519,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":520,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":521,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027authorshipFilesGlob\u003dREADME.md\u0027);","isFullCredit":false},{"lineNumber":522,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":523,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":339,"jonasongg":184}},{"path":"frontend/cypress/tests/codeView/codeView_switchAuthorship.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027switch authorship\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027switch authorship view should restore all default controls\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" // change sort by","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-by \u003e select\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" .select(\u0027Path\u0027)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027path\u0027);","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" // change sort order","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-order \u003e select\u0027)","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" .select(\u0027Ascending\u0027)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027false\u0027);","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" // uncheck a file type","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" // switch authorship view","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"jonasongg"},"content":" .eq(4)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" // check default controls","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-by \u003e select\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" .should(\u0027not.have.value\u0027, \u0027path\u0027)","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027linesOfCode\u0027);","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-order \u003e select\u0027)","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027true\u0027);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes \u003e .radio-button--checkbox\u0027)","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"yml\"]\u0027)","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" it(\u0027switch authorship view should not retain information from previous visited tabs\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" // Assumptions:","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" // The first repository has more than one person listed.","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" // The first displayed file which the first and last person worked on is different.","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" const betweenBracketsRegex \u003d /\\((.*)\\)/;","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" let firstAuthor;","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" let firstFilename;","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" let lastAuthor;","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" // open the first code panel","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-charts \u003e .summary-charts\u0027)","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" .find(\u0027.fa-code\u0027)","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .panel-heading \u003e .author \u003e span\u0027)","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" .then(($span) \u003d\u003e {","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" firstAuthor \u003d $span.text().match(betweenBracketsRegex).pop();","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" .should(\u0027include\u0027, firstAuthor);","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .files \u003e .file \u003e .title \u003e .path\u0027)","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" .then(($span) \u003d\u003e {","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" firstFilename \u003d $span.text();","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" // switch authorship view","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-charts \u003e .summary-charts\u0027)","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" .find(\u0027.fa-code\u0027)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .panel-heading \u003e .author \u003e span\u0027)","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" .should(($span) \u003d\u003e {","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" lastAuthor \u003d $span.text().match(betweenBracketsRegex).pop();","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" expect(firstAuthor, \u0027First author to have different name from the last author\u0027)","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" .to.not.equal(lastAuthor);","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" })","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" .then(() \u003d\u003e {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" .should(\u0027not.include\u0027, firstAuthor)","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" .should(\u0027include\u0027, lastAuthor);","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .files \u003e .file \u003e .title \u003e .path\u0027)","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" .should(($span) \u003d\u003e {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" const lastFilename \u003d $span.text();","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" expect(firstFilename, \u0027First displayed filenames should be different for different authors\u0027)","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" .to.not.equal(lastFilename);","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":111,"jonasongg":4}},{"path":"frontend/cypress/tests/general/general.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027general\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027correctly replaces report title\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" cy.title().should(\u0027eq\u0027, \u0027RepoSense Test Report\u0027);","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"sopa301"},"content":" it(\u0027correctly contains given title\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027h1\u0027).should(\u0027contain\u0027, \u0027RepoSense Intro\u0027);","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"sopa301"},"content":" });","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"sopa301":4,"-":5}},{"path":"frontend/cypress/tests/zoomView/zoomView_diffstat.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027diffstat\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027should render container for contribution bars\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .stacked-bar-container\u0027)","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" // Assumptions: The commit selected here is @eugenepeh\u0027s","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" // `README: Fix grammatical error` with 1 insertion and 1 deletion.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" it(\u0027should render non-empty contribution bars for commits with changes\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .within(() \u003d\u003e {","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" cy.get(\u0027.stacked-bar__contrib--bar\u0027)","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" .then((element) \u003d\u003e {","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" expect(element.length).to.be.equal(2);","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" expect(element[0].style[\u0027background-color\u0027]).to.be.equal(\u0027limegreen\u0027);","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" expect(element[0].style.width).to.be.equal(\u00270.1%\u0027);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" expect(element[1].style[\u0027background-color\u0027]).to.be.equal(\u0027red\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" expect(element[1].style.width).to.be.equal(\u00270.1%\u0027);","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" // Assumptions: The commit selected here is @eugenepeh\u0027s","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" // `Merge branch \u0027new-branch` into cypress` with 0 insertions and 0 deletions.","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" it(\u0027should render empty contribution bars for commits with no changes\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027)","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" .within(() \u003d\u003e {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" cy.get(\u0027.stacked-bar__contrib--bar\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" .then((element) \u003d\u003e {","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" expect(element.length).to.be.equal(2);","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" expect(element[0].style[\u0027background-color\u0027]).to.be.equal(\u0027limegreen\u0027);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" expect(element[0].style.width).to.be.equal(\u00270%\u0027);","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" expect(element[1].style[\u0027background-color\u0027]).to.be.equal(\u0027red\u0027);","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" expect(element[1].style.width).to.be.equal(\u00270%\u0027);","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" it(\u0027should render contribution bars in proportion\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" let insertionWidthSum \u003d 0;","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" let deletionWidthSum \u003d 0;","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" let widthProportion \u003d 0;","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .stacked-bar__contrib--bar\u0027)","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" .then((element) \u003d\u003e {","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" for (let i \u003d 0; i \u003c element.length; i +\u003d 1) {","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" const val \u003d parseFloat(element[i].style.width.split(\u0027%\u0027)[0]);","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" if (element[i].style[\u0027background-color\u0027] \u003d\u003d\u003d \u0027limegreen\u0027) {","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" insertionWidthSum +\u003d val;","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" deletionWidthSum +\u003d val;","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" widthProportion \u003d insertionWidthSum / deletionWidthSum;","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" let insertions \u003d 0;","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" let deletions \u003d 0;","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" let actualProportion \u003d 0;","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" cy.get(\u0027[data-cy\u003d\"changes\"]\u0027)","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" .invoke(\u0027text\u0027)","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" .then((text) \u003d\u003e {","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" const temp \u003d text.split(\u0027lines\u0027);","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" for (let i \u003d 0; i \u003c temp.length - 1; i +\u003d 1) {","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" insertions +\u003d parseFloat(temp[i].split(\u0027-\u0027)[0].split(\u0027+\u0027)[1].trim());","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" deletions +\u003d parseFloat(temp[i].split(\u0027-\u0027)[1].trim());","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" actualProportion \u003d insertions / deletions;","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" expect(widthProportion.toFixed(3)).to.be.equal(actualProportion.toFixed(3));","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":89,"jonasongg":4}},{"path":"frontend/cypress/tests/zoomView/zoomView_hideCommitMessages.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027hide all commit messages \u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027check hide all commit messages hides the commit messages\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" // the messages of all the commits should be visible","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .body\u0027)","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" // hides all the commit messages","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" // the messages of all the commits should be hidden","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .body\u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" it(\u0027check show all commit messages show the commit messages\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" // hides all the commit messages","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" // the messages of all the commits should be hidden","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .body\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" // show the messages of all the commits","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .body\u0027)","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" it(\u0027should only display hide all commit messages when none are hidden\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" // should only display \u0027hide all commit messages\u0027","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" .children()","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, 1);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline \u003e a\u0027)","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u0027hide all commit details\u0027);","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" it(\u0027should only display show all commit messages when all are hidden\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" // hides all the commit messages","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline \u003e a\u0027)","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" // should only display \u0027show all commit messages\u0027","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .children()","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, 1);","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline \u003e a\u0027)","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u0027show all commit details\u0027);","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" it(\u0027should display both show and hide all commit messages when some are hidden\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" // hide the message body of the first commit","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message \u003e a .tooltip\u0027)","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" // should now display both \u0027hide all \u0026 show all commit messages\u0027","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" .children()","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, 2);","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline \u003e a\u0027)","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" .eq(0)","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u0027show all commit details\u0027);","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline \u003e a\u0027)","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u0027hide all commit details\u0027);","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" it(\u0027check show all and hide all commit messages only toggle current commits\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" // Assumptions: the fifth commit (19e3294) of the first author of the first repo","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" // contains changes in only .java files.","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" // uncheck java file type","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" // hides all the commit messages","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" // should only display \u0027show all commit messages\u0027","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" .children()","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, 1);","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline \u003e a\u0027)","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u0027show all commit details\u0027);","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" // check java file type","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" // commit body of the merge commit should be visible","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .body\u0027)","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" .eq(0)","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" // commit body of the md commit should not be visible","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .body\u0027)","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" // commit body of the java commit should be visible","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .body\u0027)","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" .eq(4)","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" .scrollIntoView()","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" // should now display both \u0027hide all \u0026 show all commit messages\u0027","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" .children()","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, 2);","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline \u003e a\u0027)","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" .eq(0)","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u0027show all commit details\u0027);","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline \u003e a\u0027)","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u0027hide all commit details\u0027);","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" it(\u0027check hidden commit message persists after sort\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" // hide the message body of the first commit","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message \u003e a .tooltip\u0027)","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .body\u0027)","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .hash\u0027)","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" .invoke(\u0027text\u0027)","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" // keep track of first commit by hash so test doesn\u0027t rely on correctness of sort","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" .then((hash) \u003d\u003e {","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" // change sort by","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-by \u003e select\u0027)","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" .select(\u0027LoC\u0027)","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027linesOfCode\u0027);","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" // message body should still be hidden","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" cy.contains(\u0027#tab-zoom .commit-message\u0027, hash)","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" .children(\u0027.body\u0027)","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" // change sort order","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-order \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" .select(\u0027Ascending\u0027)","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027false\u0027);","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" // message body should still be hidden","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" cy.contains(\u0027#tab-zoom .commit-message\u0027, hash)","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" .children(\u0027.body\u0027)","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":230,"jonasongg":7}},{"path":"frontend/cypress/tests/zoomView/zoomView_mergeCommits.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027include merge commits in zoom view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027show merge commits when all file types selected\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the commits panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" // check if the icon for merge commits is visible","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027.code-merge-icon\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" .should(\u0027exist\u0027);","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" it(\u0027hide merge commits when some file types unselected\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" // open the commits panel","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" // uncheck the java file type","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" // check if the icon for merge commits is not visible","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" cy.get(\u0027.code-merge-icon\u0027)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .should(\u0027not.exist\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":28,"jonasongg":2}},{"path":"frontend/cypress/tests/zoomView/zoomView_rampChart.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027show ramp chart for period\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" // Assumptions: The commit messages on the zoom view are","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // correctly filtered according to the selected period.","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" it(\u0027show ramp chart for all commits by default\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" // ramp chart should be visible","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .ramp\u0027)","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" // ramp chart should have the same number of slices as commits","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" .its(\u0027length\u0027).then(($length) \u003d\u003e {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, $length);","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" // Assumptions: The commit messages on the zoom view are","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" // correctly filtered according to the selected period.","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" it(\u0027show ramp chart for selected commits when date range changed\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" // change since date","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .type(\u00272018-06-10\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" // change until date","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" .type(\u00272019-06-10\u0027);","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" // ramp chart should be visible","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .ramp\u0027)","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" // ramp chart should have the same number of slices as commits","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" .its(\u0027length\u0027).then(($length) \u003d\u003e {","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, $length);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" // Assumptions: The commit messages on the zoom view are","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" // correctly filtered according to the selected period.","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" it(\u0027show ramp chart for selected commits when zooming\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" const zoomKey \u003d Cypress.platform \u003d\u003d\u003d \u0027darwin\u0027 ? \u0027{meta}\u0027 : \u0027{ctrl}\u0027;","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" // zoom into ramp on summary panel","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" cy.get(\u0027body\u0027).type(zoomKey, { release: false })","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" .get(\u0027#summary-charts .summary-chart__ramp .ramp\u0027)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" .click(10, 20)","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" .click(50, 20);","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" // commits panel should be visible","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" // ramp chart should be visible","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .ramp\u0027)","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" // ramp chart should have the same number of slices as commits","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027)","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" .its(\u0027length\u0027).then(($length) \u003d\u003e {","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, $length);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" // Assumptions: The first author on the summary panel","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" // should be \u0027eugenepeh\u0027.","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" it(\u0027ramps should be between start date and end date\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" // change since date","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" .type(\u00272018-06-10\u0027);","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" // change until date","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" .type(\u00272019-06-10\u0027);","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" // first ramp should be for commit after start date","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2018-06-12] Setup AppVeyor CI (#142): +19 -0 lines \u0027);","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" // last ramp should be for commit before end date","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2019-03-25] [#622] CsvParser#parse: fix error handling of `processLine` (#623): +30 -10 lines \u0027);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" // Assumptions: The first author on the summary panel","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" // should be \u0027eugenepeh\u0027.","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" it(\u0027ramp should have expected properties\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" // change until date","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" .type(\u00272019-06-10\u0027);","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" // last ramp should have expected z-index","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" .should(\u0027have.css\u0027, \u0027z-index\u0027, \u002739\u0027);","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" // last ramp should have expected width","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" .should(\u0027have.css\u0027, \u0027border-left-width\u0027, \u00277px\u0027);","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" // Assumptions: The second author on the summary panel","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" // should be \u0027jamessspanggg\u0027.","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" it(\u0027deletes commit ramp should have expected properties\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" // change since date","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" .type(\u00272019-07-16\u0027);","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" // change until date","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" .type(\u00272019-07-29\u0027);","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" // deletes commit ramp should have expected color","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" cy.get(\u0027[title\u003d\"[2019-07-24] [#828] Revert \\\\\"v_summary.js: remove redundant calls \u0027","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" + \u0027to getFiltered() (#800)\\\\\" (#832): +0 -9 lines \"]\u0027)","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" .should(\u0027have.class\u0027, \u0027ramp__slice\u0027)","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" .should(\u0027have.css\u0027, \u0027border-bottom\u0027, \u002748px solid rgba(244, 67, 54, 0.7)\u0027);","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" // Assumptions: The first author on the summary panel","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" // should be \u0027eugenepeh\u0027.","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" it(\u0027merge commit ramp should have expected properties\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" // change until date","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" .type(\u00272024-03-04\u0027);","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" // merge commit ramp should have expected color","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027border-bottom\u0027))","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" .then((border1) \u003d\u003e {","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027border-bottom\u0027))","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" .then((border2) \u003d\u003e {","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" expect(border1).to.be.eq(border2);","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" // Assumptions: The first author on the summary panel","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" // should be \u0027eugenepeh\u0027.","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" it(\u0027ramps from different days should have expected relative properties\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" // change until date","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" .type(\u00272019-06-10\u0027);","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" // last 2 ramps should have expected relative z-indices","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027z-index\u0027))","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" .then(parseInt) // get 1st z-index","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" .then((index1) \u003d\u003e {","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027z-index\u0027))","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" .then(parseInt) // get 2nd z-index","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" .then((index2) \u003d\u003e {","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" expect(index1).to.be.gt(index2);","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" // last 2 ramps should have expected relative distances from the right","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027right\u0027))","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" .then(parseFloat) // get 1st distance","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" .then((distance1) \u003d\u003e {","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027right\u0027))","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" .then(parseFloat) // get 2nd distance","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" .then((distance2) \u003d\u003e {","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" expect(distance1).to.be.lt(distance2);","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" // Assumptions: The first author on the summary panel","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" // should be \u0027eugenepeh\u0027.","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" it(\u0027ramps from the same day should have expected relative properties\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" // change until date","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" .type(\u00272023-03-04\u0027);","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" // last 2 ramps should have expected relative z-indices","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027z-index\u0027))","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" .then(parseInt) // get 1st z-index","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" .then((index1) \u003d\u003e {","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027z-index\u0027))","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" .then(parseInt) // get 2nd z-index","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" .then((index2) \u003d\u003e {","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" expect(index1).to.be.eq(index2);","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" // last 2 ramps should have expected relative distances from the right","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027right\u0027))","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" .then(parseFloat) // get 1st distance","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" .then((distance1) \u003d\u003e {","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027right\u0027))","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" .then(parseFloat) // get 2nd distance","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" .then((distance2) \u003d\u003e {","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" expect(distance1).to.be.gt(distance2);","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" // Assumptions: The first author on the summary panel","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" // should be \u0027eugenepeh\u0027.","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" it(\u0027ramp should link to commit webpage\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" // change until date","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" .type(\u00272019-06-10\u0027);","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" // last ramp should have expected link","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027href\u0027)","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027https://github.com/reposense/RepoSense/commit/19e32944d4c67ed0b6bdc5697016536cc9e17ed9\u0027);","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":284,"jonasongg":9}},{"path":"frontend/cypress/tests/zoomView/zoomView_reload.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027reload page\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027reload page should restore all controls\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" // change sort by","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-by \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" .select(\u0027LoC\u0027);","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" // change sort order","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-order \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" .select(\u0027Ascending\u0027);","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"scss\"]\u0027)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-by \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027linesOfCode\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-order \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027false\u0027);","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"scss\"]\u0027)","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":41,"jonasongg":1}},{"path":"frontend/cypress/tests/zoomView/zoomView_selectFileTypes.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027check file types \u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027check if all file types are visible by default\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .zoom__day\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" .should(\u0027exist\u0027);","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" it(\u0027uncheck all file types should show no files\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .zoom__day\u0027)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .should(\u0027exist\u0027);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" .uncheck();","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .zoom__day\u0027)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .should(\u0027not.exist\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" it(\u0027uncheck file type should uncheck all option\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" // Assumptions: the first author of the first repo","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" // committed .java, .js and .gradle files.","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"js\"]\u0027)","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" it(\u0027a commit should not be seen when all of its file types are unchecked\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" // Assumptions: the third commit (19e3294) of the first author of the first repo","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" // contains changes in only .java files.","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" cy.get(\u0027.zoom__day \u003e .commit-message\u0027)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" .eq(2)","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" .within(() \u003d\u003e {","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" cy.get(\u0027.hash\u0027)","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u002719e3294\u0027);","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" cy.get(\u0027.fileTypeLabel\u0027)","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u0027java\u0027);","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" cy.get(\u0027.zoom__day \u003e .commit-message\u0027)","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" .should(\u0027not.contain.text\u0027, \u002719e3294\u0027);","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" it.only(\u0027unchecked file type label can still remain in a commit of multiple file types\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" // Assumptions: the eighth commit (5ab0322) of the first author of the first repo","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" // contains changes in both .java and .md files.","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" cy.get(\u0027.zoom__day \u003e .commit-message\u0027)","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" .eq(7)","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" .within(() \u003d\u003e {","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" cy.get(\u0027.hash\u0027)","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u00275ab0322\u0027);","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" cy.get(\u0027.fileTypeLabel\u0027)","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" .should(\u0027contain.text\u0027, \u0027java\u0027)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .should(\u0027contain.text\u0027, \u0027md\u0027);","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" cy.get(\u0027.zoom__day \u003e .commit-message\u0027)","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" // note that the same commit is now of fourth order since other commits","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" // were filtered out","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" .eq(3)","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" .within(() \u003d\u003e {","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" cy.get(\u0027.hash\u0027)","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u00275ab0322\u0027);","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" cy.get(\u0027.fileTypeLabel\u0027)","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" .should(\u0027contain.text\u0027, \u0027java\u0027)","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" .should(\u0027contain.text\u0027, \u0027md\u0027);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":105,"jonasongg":5}},{"path":"frontend/cypress/tests/zoomView/zoomView_switchZoom.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027switch zoom\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027switch zoom view should restore all default controls\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" // change sort by","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-by \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" .select(\u0027LoC\u0027)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027linesOfCode\u0027);","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" // change sort order","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-order \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" .select(\u0027Ascending\u0027)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027false\u0027);","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" // uncheck a file type","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" // switch zoom view","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"jonasongg"},"content":" .eq(4)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" cy.get(\u0027#tabs-wrapper\u0027).scrollTo(\u0027top\u0027);","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" // check default controls","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-by \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" .should(\u0027not.have.value\u0027, \u0027linesOfCode\u0027)","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027time\u0027);","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-order \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027true\u0027);","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"md\"]\u0027)","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"yml\"]\u0027)","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" it(\u0027switch zoom view should not retain information from previous visited tabs\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" // Assumptions:","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" // The first repository has more than one person listed.","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" // The first day in which the first and last person contributed is different.","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" const betweenBracketsRegex \u003d /\\((.*)\\)/;","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" let firstAuthor;","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" let firstDay;","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" let lastAuthor;","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-charts \u003e .summary-charts\u0027)","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" .find(\u0027.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .panel-heading \u003e .author \u003e span\u0027)","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" .then(($span) \u003d\u003e {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" firstAuthor \u003d $span.text().match(betweenBracketsRegex).pop();","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" .should(\u0027include\u0027, firstAuthor);","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .zoom__day \u003e h3\u0027)","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" .then(($h3) \u003d\u003e {","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" firstDay \u003d $h3.text();","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" // switch zoom view","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-charts \u003e .summary-charts\u0027)","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .find(\u0027.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .panel-heading \u003e .author \u003e span\u0027)","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" .should(($span) \u003d\u003e {","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" lastAuthor \u003d $span.text().match(betweenBracketsRegex).pop();","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" expect(firstAuthor, \u0027First author to have different name from the last author\u0027)","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" .to.not.equal(lastAuthor);","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" })","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" .then(() \u003d\u003e {","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" .should(\u0027not.include\u0027, firstAuthor)","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" .should(\u0027include\u0027, lastAuthor);","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .zoom__day \u003e h3\u0027)","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" .should(($h3) \u003d\u003e {","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" const lastDay \u003d $h3.text();","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" expect(firstDay, \u0027First displayed date should be different for different authors by assumptions\u0027)","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" .to.not.equal(lastDay);","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":113,"jonasongg":4}},{"path":"frontend/package-lock.json","fileType":"json","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" \"name\": \"reposense\",","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"sopa301"},"content":" \"lockfileVersion\": 3,","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" \"requires\": true,","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" \"packages\": {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" \"\": {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" \"name\": \"reposense\",","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"sopa301"},"content":" \"@fontsource/titillium-web\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/fontawesome-svg-core\": \"^6.5.1\",","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/free-brands-svg-icons\": \"^6.5.1\",","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/free-solid-svg-icons\": \"^6.5.1\",","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/vue-fontawesome\": \"^3.0.6\",","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"sopa301"},"content":" \"@types/markdown-it\": \"^13.0.7\",","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" \"@types/minimatch\": \"^5.1.2\",","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"sopa301"},"content":" \"@types/seedrandom\": \"^3.0.8\",","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"sopa301"},"content":" \"@vitejs/plugin-vue\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" \"highlight.js\": \"^10.5.0\",","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" \"jszip\": \"^3.5.0\",","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"sopa301"},"content":" \"markdown-it\": \"^14.1.0\",","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"sopa301"},"content":" \"minimatch\": \"^9.0.0\",","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" \"muicss\": \"^0.10.3\",","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" \"normalize.css\": \"^8.0.1\",","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.4.38\",","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" \"pug-lint-vue\": \"^0.4.0\",","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" \"seedrandom\": \"^3.0.5\",","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"sopa301"},"content":" \"vite\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"sopa301"},"content":" \"vue\": \"~3.4.0\",","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"sopa301"},"content":" \"vue-loading-overlay\": \"^6.0.4\",","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" \"vue-observe-visibility\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"sopa301"},"content":" \"vue-router\": \"^4.3.0\",","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" \"vuex\": \"^4.0.2\",","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"sopa301"},"content":" \"zod\": \"^3.22.4\"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" \"devDependencies\": {","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"sopa301"},"content":" \"@stylistic/eslint-plugin\": \"^1.7.0\",","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"sopa301"},"content":" \"@stylistic/stylelint-plugin\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"sopa301"},"content":" \"@types/node\": \"^20.12.4\",","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"sopa301"},"content":" \"@vue/eslint-config-typescript\": \"^13.0.0\",","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^8.57.0\",","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" \"eslint-config-airbnb-base\": \"^15.0.0\",","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"sopa301"},"content":" \"eslint-config-airbnb-typescript\": \"^18.0.0\",","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"sopa301"},"content":" \"eslint-plugin-import\": \"^2.29.1\",","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"sopa301"},"content":" \"eslint-plugin-vue\": \"^9.0.0\",","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"sopa301"},"content":" \"postcss-html\": \"^1.6.0\",","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" \"pug\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"sopa301"},"content":" \"sass\": \"^1.71.0\",","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^16.1.0\",","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-recommended-vue\": \"^1.5.0\",","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-standard\": \"^36.0.0\",","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-standard-scss\": \"^13.0.0\",","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"sopa301"},"content":" \"stylelint-order\": \"^6.0.4\",","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"sopa301"},"content":" \"stylelint-webpack-plugin\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"sopa301"},"content":" \"typescript\": \"~4.9.5\",","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"sopa301"},"content":" \"typescript-eslint\": \"^7.3.1\",","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"sopa301"},"content":" \"vite-plugin-eslint2\": \"^4.4.0\",","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"sopa301"},"content":" \"vite-plugin-stylelint\": \"^5.3.1\"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"sopa301"},"content":" \"node_modules/@aashutoshrathi/word-wrap\": {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.6\",","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" \"node_modules/@babel/code-frame\": {","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.23.5\",","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"sopa301"},"content":" \"@babel/highlight\": \"^7.23.4\",","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"sopa301"},"content":" \"chalk\": \"^2.4.2\"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"sopa301"},"content":" \"node_modules/@babel/helper-string-parser\": {","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.23.4\",","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"sopa301"},"content":" \"node_modules/@babel/helper-validator-identifier\": {","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.22.20\",","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"sopa301"},"content":" \"node_modules/@babel/highlight\": {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.23.4\",","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"sopa301"},"content":" \"@babel/helper-validator-identifier\": \"^7.22.20\",","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"sopa301"},"content":" \"chalk\": \"^2.4.2\",","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"sopa301"},"content":" \"js-tokens\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"sopa301"},"content":" \"node_modules/@babel/parser\": {","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.24.0\",","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"sopa301"},"content":" \"parser\": \"bin/babel-parser.js\"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"sopa301"},"content":" \"node_modules/@babel/types\": {","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.24.0\",","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"sopa301"},"content":" \"@babel/helper-string-parser\": \"^7.23.4\",","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"sopa301"},"content":" \"@babel/helper-validator-identifier\": \"^7.22.20\",","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"sopa301"},"content":" \"to-fast-properties\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"sopa301"},"content":" \"node_modules/@csstools/css-parser-algorithms\": {","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.6.1\",","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.1.tgz\",","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA\u003d\u003d\",","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/csstools\"","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/csstools\"","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"sopa301"},"content":" \"node\": \"^14 || ^16 || \u003e\u003d18\"","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"sopa301"},"content":" \"@csstools/css-tokenizer\": \"^2.2.4\"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"sopa301"},"content":" \"node_modules/@csstools/css-tokenizer\": {","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.2.4\",","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.4.tgz\",","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw\u003d\u003d\",","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/csstools\"","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/csstools\"","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"sopa301"},"content":" \"node\": \"^14 || ^16 || \u003e\u003d18\"","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"sopa301"},"content":" \"node_modules/@csstools/media-query-list-parser\": {","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.9\",","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.9.tgz\",","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA\u003d\u003d\",","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/csstools\"","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/csstools\"","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"sopa301"},"content":" \"node\": \"^14 || ^16 || \u003e\u003d18\"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"sopa301"},"content":" \"@csstools/css-parser-algorithms\": \"^2.6.1\",","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"sopa301"},"content":" \"@csstools/css-tokenizer\": \"^2.2.4\"","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"sopa301"},"content":" \"node_modules/@csstools/selector-specificity\": {","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.3\",","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.3.tgz\",","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-KEPNw4+WW5AVEIyzC80rTbWEUatTW2lXpN8+8ILC8PiPeWPjwUzrPZDIOZ2wwqDmeqOYTdSGyL3+vE5GC3FB3Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/csstools\"","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/csstools\"","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"sopa301"},"content":" \"node\": \"^14 || ^16 || \u003e\u003d18\"","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"sopa301"},"content":" \"postcss-selector-parser\": \"^6.0.13\"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"sopa301"},"content":" \"node_modules/@dual-bundle/import-meta-resolve\": {","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ZKXyJeFAzcpKM2kk8ipoGIPUqx9BX52omTGnfwjJvxOCaZTM2wtDK7zN0aIgPRbT9XYAlha0HtmZ+XKteuh0Gw\u003d\u003d\",","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/wooorm\"","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/aix-ppc64\": {","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g\u003d\u003d\",","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"sopa301"},"content":" \"ppc64\"","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"sopa301"},"content":" \"aix\"","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/android-arm\": {","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w\u003d\u003d\",","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"sopa301"},"content":" \"arm\"","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"sopa301"},"content":" \"android\"","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/android-arm64\": {","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg\u003d\u003d\",","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"sopa301"},"content":" \"arm64\"","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"sopa301"},"content":" \"android\"","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/android-x64\": {","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg\u003d\u003d\",","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"sopa301"},"content":" \"x64\"","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"sopa301"},"content":" \"android\"","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/darwin-arm64\": {","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA\u003d\u003d\",","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"sopa301"},"content":" \"arm64\"","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"sopa301"},"content":" \"darwin\"","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/darwin-x64\": {","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA\u003d\u003d\",","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"sopa301"},"content":" \"x64\"","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"sopa301"},"content":" \"darwin\"","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/freebsd-arm64\": {","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw\u003d\u003d\",","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"sopa301"},"content":" \"arm64\"","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"sopa301"},"content":" \"freebsd\"","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/freebsd-x64\": {","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw\u003d\u003d\",","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"sopa301"},"content":" \"x64\"","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"sopa301"},"content":" \"freebsd\"","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/linux-arm\": {","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg\u003d\u003d\",","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"sopa301"},"content":" \"arm\"","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/linux-arm64\": {","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A\u003d\u003d\",","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"sopa301"},"content":" \"arm64\"","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/linux-ia32\": {","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig\u003d\u003d\",","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"sopa301"},"content":" \"ia32\"","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/linux-loong64\": {","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"sopa301"},"content":" \"loong64\"","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/linux-mips64el\": {","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA\u003d\u003d\",","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"sopa301"},"content":" \"mips64el\"","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/linux-ppc64\": {","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg\u003d\u003d\",","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"sopa301"},"content":" \"ppc64\"","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/linux-riscv64\": {","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"sopa301"},"content":" \"riscv64\"","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/linux-s390x\": {","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"sopa301"},"content":" \"s390x\"","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/linux-x64\": {","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw\u003d\u003d\",","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"sopa301"},"content":" \"x64\"","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/netbsd-x64\": {","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"sopa301"},"content":" \"x64\"","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"sopa301"},"content":" \"netbsd\"","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/openbsd-x64\": {","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":504,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":505,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":506,"author":{"gitId":"sopa301"},"content":" \"x64\"","isFullCredit":false},{"lineNumber":507,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":508,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":509,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":510,"author":{"gitId":"sopa301"},"content":" \"openbsd\"","isFullCredit":false},{"lineNumber":511,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":512,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":513,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":514,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":515,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":516,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/sunos-x64\": {","isFullCredit":false},{"lineNumber":517,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":518,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":519,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w\u003d\u003d\",","isFullCredit":false},{"lineNumber":520,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":521,"author":{"gitId":"sopa301"},"content":" \"x64\"","isFullCredit":false},{"lineNumber":522,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":523,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":524,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":525,"author":{"gitId":"sopa301"},"content":" \"sunos\"","isFullCredit":false},{"lineNumber":526,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":527,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":528,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":529,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":530,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":531,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/win32-arm64\": {","isFullCredit":false},{"lineNumber":532,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":533,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":534,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":535,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":536,"author":{"gitId":"sopa301"},"content":" \"arm64\"","isFullCredit":false},{"lineNumber":537,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":538,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":539,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":540,"author":{"gitId":"sopa301"},"content":" \"win32\"","isFullCredit":false},{"lineNumber":541,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":542,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":543,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":544,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":545,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":546,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/win32-ia32\": {","isFullCredit":false},{"lineNumber":547,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":548,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":549,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":550,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":551,"author":{"gitId":"sopa301"},"content":" \"ia32\"","isFullCredit":false},{"lineNumber":552,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":553,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":554,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":555,"author":{"gitId":"sopa301"},"content":" \"win32\"","isFullCredit":false},{"lineNumber":556,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":557,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":558,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":559,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":560,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":561,"author":{"gitId":"sopa301"},"content":" \"node_modules/@esbuild/win32-x64\": {","isFullCredit":false},{"lineNumber":562,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":563,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":564,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":565,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":566,"author":{"gitId":"sopa301"},"content":" \"x64\"","isFullCredit":false},{"lineNumber":567,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":568,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":569,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":570,"author":{"gitId":"sopa301"},"content":" \"win32\"","isFullCredit":false},{"lineNumber":571,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":572,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":573,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":574,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":575,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":576,"author":{"gitId":"sopa301"},"content":" \"node_modules/@eslint-community/eslint-utils\": {","isFullCredit":false},{"lineNumber":577,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.4.0\",","isFullCredit":false},{"lineNumber":578,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":579,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":580,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":581,"author":{"gitId":"sopa301"},"content":" \"eslint-visitor-keys\": \"^3.3.0\"","isFullCredit":false},{"lineNumber":582,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":583,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":584,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":585,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":586,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":587,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^6.0.0 || ^7.0.0 || \u003e\u003d8.0.0\"","isFullCredit":false},{"lineNumber":588,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":589,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":590,"author":{"gitId":"sopa301"},"content":" \"node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys\": {","isFullCredit":false},{"lineNumber":591,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.3\",","isFullCredit":false},{"lineNumber":592,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":593,"author":{"gitId":"sopa301"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":594,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":595,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":596,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":597,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":598,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":599,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":600,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":601,"author":{"gitId":"sopa301"},"content":" \"node_modules/@eslint-community/regexpp\": {","isFullCredit":false},{"lineNumber":602,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.10.0\",","isFullCredit":false},{"lineNumber":603,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":604,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":605,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":606,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12.0.0 || ^14.0.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":607,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":608,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":609,"author":{"gitId":"sopa301"},"content":" \"node_modules/@eslint/eslintrc\": {","isFullCredit":false},{"lineNumber":610,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.4\",","isFullCredit":false},{"lineNumber":611,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":612,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":613,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":614,"author":{"gitId":"sopa301"},"content":" \"ajv\": \"^6.12.4\",","isFullCredit":false},{"lineNumber":615,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^4.3.2\",","isFullCredit":false},{"lineNumber":616,"author":{"gitId":"sopa301"},"content":" \"espree\": \"^9.6.0\",","isFullCredit":false},{"lineNumber":617,"author":{"gitId":"sopa301"},"content":" \"globals\": \"^13.19.0\",","isFullCredit":false},{"lineNumber":618,"author":{"gitId":"sopa301"},"content":" \"ignore\": \"^5.2.0\",","isFullCredit":false},{"lineNumber":619,"author":{"gitId":"sopa301"},"content":" \"import-fresh\": \"^3.2.1\",","isFullCredit":false},{"lineNumber":620,"author":{"gitId":"sopa301"},"content":" \"js-yaml\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":621,"author":{"gitId":"sopa301"},"content":" \"minimatch\": \"^3.1.2\",","isFullCredit":false},{"lineNumber":622,"author":{"gitId":"sopa301"},"content":" \"strip-json-comments\": \"^3.1.1\"","isFullCredit":false},{"lineNumber":623,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":624,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":625,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":626,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":627,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":628,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":629,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":630,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":631,"author":{"gitId":"sopa301"},"content":" \"node_modules/@eslint/eslintrc/node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":632,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":633,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":634,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":635,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":636,"author":{"gitId":"sopa301"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":637,"author":{"gitId":"sopa301"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":638,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":639,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":640,"author":{"gitId":"sopa301"},"content":" \"node_modules/@eslint/eslintrc/node_modules/globals\": {","isFullCredit":false},{"lineNumber":641,"author":{"gitId":"sopa301"},"content":" \"version\": \"13.24.0\",","isFullCredit":false},{"lineNumber":642,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":643,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":644,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":645,"author":{"gitId":"sopa301"},"content":" \"type-fest\": \"^0.20.2\"","isFullCredit":false},{"lineNumber":646,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":647,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":648,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":649,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":650,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":651,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":652,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":653,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":654,"author":{"gitId":"sopa301"},"content":" \"node_modules/@eslint/eslintrc/node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":655,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":656,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":657,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":658,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":659,"author":{"gitId":"sopa301"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":660,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":661,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":662,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":663,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":664,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":665,"author":{"gitId":"sopa301"},"content":" \"node_modules/@eslint/js\": {","isFullCredit":false},{"lineNumber":666,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.57.0\",","isFullCredit":false},{"lineNumber":667,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":668,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":669,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":670,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":671,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":672,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":673,"author":{"gitId":"sopa301"},"content":" \"node_modules/@fontsource/titillium-web\": {","isFullCredit":false},{"lineNumber":674,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.19\",","isFullCredit":false},{"lineNumber":675,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@fontsource/titillium-web/-/titillium-web-5.0.19.tgz\",","isFullCredit":false},{"lineNumber":676,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ktxZrkQUjHD+cKhCgm9YZU6vfHJAguFTidb832BFra21dniFpWiEpkot18VkYyuSnxoGUjrC9aLOB1Dc14N4vg\u003d\u003d\"","isFullCredit":false},{"lineNumber":677,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":678,"author":{"gitId":"sopa301"},"content":" \"node_modules/@fortawesome/fontawesome-common-types\": {","isFullCredit":false},{"lineNumber":679,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.5.1\",","isFullCredit":false},{"lineNumber":680,"author":{"gitId":"sopa301"},"content":" \"hasInstallScript\": true,","isFullCredit":false},{"lineNumber":681,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":682,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":683,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":684,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":685,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":686,"author":{"gitId":"sopa301"},"content":" \"node_modules/@fortawesome/fontawesome-svg-core\": {","isFullCredit":false},{"lineNumber":687,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.5.1\",","isFullCredit":false},{"lineNumber":688,"author":{"gitId":"sopa301"},"content":" \"hasInstallScript\": true,","isFullCredit":false},{"lineNumber":689,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":690,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":691,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/fontawesome-common-types\": \"6.5.1\"","isFullCredit":false},{"lineNumber":692,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":693,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":694,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":695,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":696,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":697,"author":{"gitId":"sopa301"},"content":" \"node_modules/@fortawesome/free-brands-svg-icons\": {","isFullCredit":false},{"lineNumber":698,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.5.1\",","isFullCredit":false},{"lineNumber":699,"author":{"gitId":"sopa301"},"content":" \"hasInstallScript\": true,","isFullCredit":false},{"lineNumber":700,"author":{"gitId":"sopa301"},"content":" \"license\": \"(CC-BY-4.0 AND MIT)\",","isFullCredit":false},{"lineNumber":701,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":702,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/fontawesome-common-types\": \"6.5.1\"","isFullCredit":false},{"lineNumber":703,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":704,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":705,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":706,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":707,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":708,"author":{"gitId":"sopa301"},"content":" \"node_modules/@fortawesome/free-solid-svg-icons\": {","isFullCredit":false},{"lineNumber":709,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.5.1\",","isFullCredit":false},{"lineNumber":710,"author":{"gitId":"sopa301"},"content":" \"hasInstallScript\": true,","isFullCredit":false},{"lineNumber":711,"author":{"gitId":"sopa301"},"content":" \"license\": \"(CC-BY-4.0 AND MIT)\",","isFullCredit":false},{"lineNumber":712,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":713,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/fontawesome-common-types\": \"6.5.1\"","isFullCredit":false},{"lineNumber":714,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":715,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":716,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":717,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":718,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":719,"author":{"gitId":"sopa301"},"content":" \"node_modules/@fortawesome/vue-fontawesome\": {","isFullCredit":false},{"lineNumber":720,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.6\",","isFullCredit":false},{"lineNumber":721,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":722,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":723,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/fontawesome-svg-core\": \"~1 || ~6\",","isFullCredit":false},{"lineNumber":724,"author":{"gitId":"sopa301"},"content":" \"vue\": \"\u003e\u003d 3.0.0 \u003c 4\"","isFullCredit":false},{"lineNumber":725,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":726,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":727,"author":{"gitId":"sopa301"},"content":" \"node_modules/@humanwhocodes/config-array\": {","isFullCredit":false},{"lineNumber":728,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.11.14\",","isFullCredit":false},{"lineNumber":729,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":730,"author":{"gitId":"sopa301"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":731,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":732,"author":{"gitId":"sopa301"},"content":" \"@humanwhocodes/object-schema\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":733,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^4.3.1\",","isFullCredit":false},{"lineNumber":734,"author":{"gitId":"sopa301"},"content":" \"minimatch\": \"^3.0.5\"","isFullCredit":false},{"lineNumber":735,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":736,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":737,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10.10.0\"","isFullCredit":false},{"lineNumber":738,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":739,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":740,"author":{"gitId":"sopa301"},"content":" \"node_modules/@humanwhocodes/config-array/node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":741,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":742,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":743,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":744,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":745,"author":{"gitId":"sopa301"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":746,"author":{"gitId":"sopa301"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":747,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":748,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":749,"author":{"gitId":"sopa301"},"content":" \"node_modules/@humanwhocodes/config-array/node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":750,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":751,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":752,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":753,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":754,"author":{"gitId":"sopa301"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":755,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":756,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":757,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":758,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":759,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":760,"author":{"gitId":"sopa301"},"content":" \"node_modules/@humanwhocodes/module-importer\": {","isFullCredit":false},{"lineNumber":761,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":762,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":763,"author":{"gitId":"sopa301"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":764,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":765,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12.22\"","isFullCredit":false},{"lineNumber":766,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":767,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":768,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":769,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/nzakas\"","isFullCredit":false},{"lineNumber":770,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":771,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":772,"author":{"gitId":"sopa301"},"content":" \"node_modules/@humanwhocodes/object-schema\": {","isFullCredit":false},{"lineNumber":773,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":774,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":775,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-3-Clause\"","isFullCredit":false},{"lineNumber":776,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":777,"author":{"gitId":"sopa301"},"content":" \"node_modules/@jest/schemas\": {","isFullCredit":false},{"lineNumber":778,"author":{"gitId":"sopa301"},"content":" \"version\": \"29.6.3\",","isFullCredit":false},{"lineNumber":779,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz\",","isFullCredit":false},{"lineNumber":780,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA\u003d\u003d\",","isFullCredit":false},{"lineNumber":781,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":782,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":783,"author":{"gitId":"sopa301"},"content":" \"@sinclair/typebox\": \"^0.27.8\"","isFullCredit":false},{"lineNumber":784,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":785,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":786,"author":{"gitId":"sopa301"},"content":" \"node\": \"^14.15.0 || ^16.10.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":787,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":788,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":789,"author":{"gitId":"sopa301"},"content":" \"node_modules/@jest/types\": {","isFullCredit":false},{"lineNumber":790,"author":{"gitId":"sopa301"},"content":" \"version\": \"29.6.3\",","isFullCredit":false},{"lineNumber":791,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz\",","isFullCredit":false},{"lineNumber":792,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw\u003d\u003d\",","isFullCredit":false},{"lineNumber":793,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":794,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":795,"author":{"gitId":"sopa301"},"content":" \"@jest/schemas\": \"^29.6.3\",","isFullCredit":false},{"lineNumber":796,"author":{"gitId":"sopa301"},"content":" \"@types/istanbul-lib-coverage\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":797,"author":{"gitId":"sopa301"},"content":" \"@types/istanbul-reports\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":798,"author":{"gitId":"sopa301"},"content":" \"@types/node\": \"*\",","isFullCredit":false},{"lineNumber":799,"author":{"gitId":"sopa301"},"content":" \"@types/yargs\": \"^17.0.8\",","isFullCredit":false},{"lineNumber":800,"author":{"gitId":"sopa301"},"content":" \"chalk\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":801,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":802,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":803,"author":{"gitId":"sopa301"},"content":" \"node\": \"^14.15.0 || ^16.10.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":804,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":805,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":806,"author":{"gitId":"sopa301"},"content":" \"node_modules/@jest/types/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":807,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":808,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",","isFullCredit":false},{"lineNumber":809,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg\u003d\u003d\",","isFullCredit":false},{"lineNumber":810,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":811,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":812,"author":{"gitId":"sopa301"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":813,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":814,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":815,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":816,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":817,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":818,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":819,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":820,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":821,"author":{"gitId":"sopa301"},"content":" \"node_modules/@jest/types/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":822,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":823,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",","isFullCredit":false},{"lineNumber":824,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA\u003d\u003d\",","isFullCredit":false},{"lineNumber":825,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":826,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":827,"author":{"gitId":"sopa301"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":828,"author":{"gitId":"sopa301"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":829,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":830,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":831,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":832,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":833,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":834,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":835,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":836,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":837,"author":{"gitId":"sopa301"},"content":" \"node_modules/@jest/types/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":838,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":839,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",","isFullCredit":false},{"lineNumber":840,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":841,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":842,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":843,"author":{"gitId":"sopa301"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":844,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":845,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":846,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":847,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":848,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":849,"author":{"gitId":"sopa301"},"content":" \"node_modules/@jest/types/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":850,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":851,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",","isFullCredit":false},{"lineNumber":852,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA\u003d\u003d\",","isFullCredit":false},{"lineNumber":853,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":854,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":855,"author":{"gitId":"sopa301"},"content":" \"node_modules/@jest/types/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":856,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":857,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":858,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":859,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":860,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":861,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":862,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":863,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":864,"author":{"gitId":"sopa301"},"content":" \"node_modules/@jest/types/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":865,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":866,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",","isFullCredit":false},{"lineNumber":867,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw\u003d\u003d\",","isFullCredit":false},{"lineNumber":868,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":869,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":870,"author":{"gitId":"sopa301"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":871,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":872,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":873,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":874,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":875,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":876,"author":{"gitId":"sopa301"},"content":" \"node_modules/@jridgewell/resolve-uri\": {","isFullCredit":false},{"lineNumber":877,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":878,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":879,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":880,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":881,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":882,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":883,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":884,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":885,"author":{"gitId":"sopa301"},"content":" \"node_modules/@jridgewell/set-array\": {","isFullCredit":false},{"lineNumber":886,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.2\",","isFullCredit":false},{"lineNumber":887,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":888,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":889,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":890,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":891,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":892,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":893,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":894,"author":{"gitId":"sopa301"},"content":" \"node_modules/@jridgewell/source-map\": {","isFullCredit":false},{"lineNumber":895,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.3.2\",","isFullCredit":false},{"lineNumber":896,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":897,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":898,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":899,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":900,"author":{"gitId":"sopa301"},"content":" \"@jridgewell/gen-mapping\": \"^0.3.0\",","isFullCredit":false},{"lineNumber":901,"author":{"gitId":"sopa301"},"content":" \"@jridgewell/trace-mapping\": \"^0.3.9\"","isFullCredit":false},{"lineNumber":902,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":903,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":904,"author":{"gitId":"sopa301"},"content":" \"node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping\": {","isFullCredit":false},{"lineNumber":905,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.3.2\",","isFullCredit":false},{"lineNumber":906,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":907,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":908,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":909,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":910,"author":{"gitId":"sopa301"},"content":" \"@jridgewell/set-array\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":911,"author":{"gitId":"sopa301"},"content":" \"@jridgewell/sourcemap-codec\": \"^1.4.10\",","isFullCredit":false},{"lineNumber":912,"author":{"gitId":"sopa301"},"content":" \"@jridgewell/trace-mapping\": \"^0.3.9\"","isFullCredit":false},{"lineNumber":913,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":914,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":915,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":916,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":917,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":918,"author":{"gitId":"sopa301"},"content":" \"node_modules/@jridgewell/sourcemap-codec\": {","isFullCredit":false},{"lineNumber":919,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.4.14\",","isFullCredit":false},{"lineNumber":920,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":921,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":922,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":923,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":924,"author":{"gitId":"sopa301"},"content":" \"node_modules/@jridgewell/trace-mapping\": {","isFullCredit":false},{"lineNumber":925,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.3.17\",","isFullCredit":false},{"lineNumber":926,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":927,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":928,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":929,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":930,"author":{"gitId":"sopa301"},"content":" \"@jridgewell/resolve-uri\": \"3.1.0\",","isFullCredit":false},{"lineNumber":931,"author":{"gitId":"sopa301"},"content":" \"@jridgewell/sourcemap-codec\": \"1.4.14\"","isFullCredit":false},{"lineNumber":932,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":933,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":934,"author":{"gitId":"sopa301"},"content":" \"node_modules/@nodelib/fs.scandir\": {","isFullCredit":false},{"lineNumber":935,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.5\",","isFullCredit":false},{"lineNumber":936,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":937,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":938,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":939,"author":{"gitId":"sopa301"},"content":" \"@nodelib/fs.stat\": \"2.0.5\",","isFullCredit":false},{"lineNumber":940,"author":{"gitId":"sopa301"},"content":" \"run-parallel\": \"^1.1.9\"","isFullCredit":false},{"lineNumber":941,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":942,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":943,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":944,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":945,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":946,"author":{"gitId":"sopa301"},"content":" \"node_modules/@nodelib/fs.stat\": {","isFullCredit":false},{"lineNumber":947,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.5\",","isFullCredit":false},{"lineNumber":948,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":949,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":950,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":951,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":952,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":953,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":954,"author":{"gitId":"sopa301"},"content":" \"node_modules/@nodelib/fs.walk\": {","isFullCredit":false},{"lineNumber":955,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.8\",","isFullCredit":false},{"lineNumber":956,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":957,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":958,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":959,"author":{"gitId":"sopa301"},"content":" \"@nodelib/fs.scandir\": \"2.1.5\",","isFullCredit":false},{"lineNumber":960,"author":{"gitId":"sopa301"},"content":" \"fastq\": \"^1.6.0\"","isFullCredit":false},{"lineNumber":961,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":962,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":963,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":964,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":965,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":966,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/pluginutils\": {","isFullCredit":false},{"lineNumber":967,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":968,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz\",","isFullCredit":false},{"lineNumber":969,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g\u003d\u003d\",","isFullCredit":false},{"lineNumber":970,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":971,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":972,"author":{"gitId":"sopa301"},"content":" \"@types/estree\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":973,"author":{"gitId":"sopa301"},"content":" \"estree-walker\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":974,"author":{"gitId":"sopa301"},"content":" \"picomatch\": \"^2.3.1\"","isFullCredit":false},{"lineNumber":975,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":976,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":977,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d14.0.0\"","isFullCredit":false},{"lineNumber":978,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":979,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":980,"author":{"gitId":"sopa301"},"content":" \"rollup\": \"^1.20.0||^2.0.0||^3.0.0||^4.0.0\"","isFullCredit":false},{"lineNumber":981,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":982,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":983,"author":{"gitId":"sopa301"},"content":" \"rollup\": {","isFullCredit":false},{"lineNumber":984,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":985,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":986,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":987,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":988,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/rollup-android-arm-eabi\": {","isFullCredit":false},{"lineNumber":989,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":990,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":991,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":992,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":993,"author":{"gitId":"sopa301"},"content":" \"arm\"","isFullCredit":false},{"lineNumber":994,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":995,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":996,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":997,"author":{"gitId":"sopa301"},"content":" \"android\"","isFullCredit":false},{"lineNumber":998,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":999,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1000,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/rollup-android-arm64\": {","isFullCredit":false},{"lineNumber":1001,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":1002,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":1003,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1004,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":1005,"author":{"gitId":"sopa301"},"content":" \"arm64\"","isFullCredit":false},{"lineNumber":1006,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1007,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":1008,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":1009,"author":{"gitId":"sopa301"},"content":" \"android\"","isFullCredit":false},{"lineNumber":1010,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1011,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1012,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/rollup-darwin-arm64\": {","isFullCredit":false},{"lineNumber":1013,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":1014,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":1015,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1016,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":1017,"author":{"gitId":"sopa301"},"content":" \"arm64\"","isFullCredit":false},{"lineNumber":1018,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1019,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":1020,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":1021,"author":{"gitId":"sopa301"},"content":" \"darwin\"","isFullCredit":false},{"lineNumber":1022,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1023,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1024,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/rollup-darwin-x64\": {","isFullCredit":false},{"lineNumber":1025,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":1026,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":1027,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1028,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":1029,"author":{"gitId":"sopa301"},"content":" \"x64\"","isFullCredit":false},{"lineNumber":1030,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1031,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":1032,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":1033,"author":{"gitId":"sopa301"},"content":" \"darwin\"","isFullCredit":false},{"lineNumber":1034,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1035,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1036,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {","isFullCredit":false},{"lineNumber":1037,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":1038,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":1039,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1040,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":1041,"author":{"gitId":"sopa301"},"content":" \"arm\"","isFullCredit":false},{"lineNumber":1042,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1043,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":1044,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":1045,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":1046,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1047,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1048,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {","isFullCredit":false},{"lineNumber":1049,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":1050,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":1051,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1052,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":1053,"author":{"gitId":"sopa301"},"content":" \"arm\"","isFullCredit":false},{"lineNumber":1054,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1055,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":1056,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":1057,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":1058,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1059,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1060,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/rollup-linux-arm64-gnu\": {","isFullCredit":false},{"lineNumber":1061,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":1062,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":1063,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1064,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":1065,"author":{"gitId":"sopa301"},"content":" \"arm64\"","isFullCredit":false},{"lineNumber":1066,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1067,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":1068,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":1069,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":1070,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1071,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1072,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/rollup-linux-arm64-musl\": {","isFullCredit":false},{"lineNumber":1073,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":1074,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":1075,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1076,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":1077,"author":{"gitId":"sopa301"},"content":" \"arm64\"","isFullCredit":false},{"lineNumber":1078,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1079,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":1080,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":1081,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":1082,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1083,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1084,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {","isFullCredit":false},{"lineNumber":1085,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":1086,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":1087,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1088,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":1089,"author":{"gitId":"sopa301"},"content":" \"ppc64\"","isFullCredit":false},{"lineNumber":1090,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1091,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":1092,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":1093,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":1094,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1095,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1096,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {","isFullCredit":false},{"lineNumber":1097,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":1098,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":1099,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1100,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":1101,"author":{"gitId":"sopa301"},"content":" \"riscv64\"","isFullCredit":false},{"lineNumber":1102,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1103,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":1104,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":1105,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":1106,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1107,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1108,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/rollup-linux-s390x-gnu\": {","isFullCredit":false},{"lineNumber":1109,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":1110,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":1111,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g\u003d\u003d\",","isFullCredit":false},{"lineNumber":1112,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":1113,"author":{"gitId":"sopa301"},"content":" \"s390x\"","isFullCredit":false},{"lineNumber":1114,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1115,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":1116,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":1117,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":1118,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1119,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1120,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/rollup-linux-x64-gnu\": {","isFullCredit":false},{"lineNumber":1121,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":1122,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":1123,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1124,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":1125,"author":{"gitId":"sopa301"},"content":" \"x64\"","isFullCredit":false},{"lineNumber":1126,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1127,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":1128,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":1129,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":1130,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1131,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1132,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/rollup-linux-x64-musl\": {","isFullCredit":false},{"lineNumber":1133,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":1134,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":1135,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":1136,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":1137,"author":{"gitId":"sopa301"},"content":" \"x64\"","isFullCredit":false},{"lineNumber":1138,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1139,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":1140,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":1141,"author":{"gitId":"sopa301"},"content":" \"linux\"","isFullCredit":false},{"lineNumber":1142,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1143,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1144,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/rollup-win32-arm64-msvc\": {","isFullCredit":false},{"lineNumber":1145,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":1146,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":1147,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1148,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":1149,"author":{"gitId":"sopa301"},"content":" \"arm64\"","isFullCredit":false},{"lineNumber":1150,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1151,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":1152,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":1153,"author":{"gitId":"sopa301"},"content":" \"win32\"","isFullCredit":false},{"lineNumber":1154,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1155,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1156,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/rollup-win32-ia32-msvc\": {","isFullCredit":false},{"lineNumber":1157,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":1158,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":1159,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1160,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":1161,"author":{"gitId":"sopa301"},"content":" \"ia32\"","isFullCredit":false},{"lineNumber":1162,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1163,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":1164,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":1165,"author":{"gitId":"sopa301"},"content":" \"win32\"","isFullCredit":false},{"lineNumber":1166,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1167,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1168,"author":{"gitId":"sopa301"},"content":" \"node_modules/@rollup/rollup-win32-x64-msvc\": {","isFullCredit":false},{"lineNumber":1169,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":1170,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":1171,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w\u003d\u003d\",","isFullCredit":false},{"lineNumber":1172,"author":{"gitId":"sopa301"},"content":" \"cpu\": [","isFullCredit":false},{"lineNumber":1173,"author":{"gitId":"sopa301"},"content":" \"x64\"","isFullCredit":false},{"lineNumber":1174,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1175,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":1176,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":1177,"author":{"gitId":"sopa301"},"content":" \"win32\"","isFullCredit":false},{"lineNumber":1178,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1179,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1180,"author":{"gitId":"sopa301"},"content":" \"node_modules/@sinclair/typebox\": {","isFullCredit":false},{"lineNumber":1181,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.27.8\",","isFullCredit":false},{"lineNumber":1182,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz\",","isFullCredit":false},{"lineNumber":1183,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1184,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1185,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1186,"author":{"gitId":"sopa301"},"content":" \"node_modules/@stylistic/eslint-plugin\": {","isFullCredit":false},{"lineNumber":1187,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.7.2\",","isFullCredit":false},{"lineNumber":1188,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-1.7.2.tgz\",","isFullCredit":false},{"lineNumber":1189,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-TesaPR4AOCeD4unwu9gZCdTe8SsUpykriICuwXV8GFBgESuVbfVp+S8g6xTWe9ntVR803bNMtnr2UhxHW0iFqg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1190,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1191,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1192,"author":{"gitId":"sopa301"},"content":" \"@stylistic/eslint-plugin-js\": \"1.7.2\",","isFullCredit":false},{"lineNumber":1193,"author":{"gitId":"sopa301"},"content":" \"@stylistic/eslint-plugin-jsx\": \"1.7.2\",","isFullCredit":false},{"lineNumber":1194,"author":{"gitId":"sopa301"},"content":" \"@stylistic/eslint-plugin-plus\": \"1.7.2\",","isFullCredit":false},{"lineNumber":1195,"author":{"gitId":"sopa301"},"content":" \"@stylistic/eslint-plugin-ts\": \"1.7.2\",","isFullCredit":false},{"lineNumber":1196,"author":{"gitId":"sopa301"},"content":" \"@types/eslint\": \"^8.56.8\"","isFullCredit":false},{"lineNumber":1197,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1198,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1199,"author":{"gitId":"sopa301"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":1200,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1201,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1202,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"\u003e\u003d8.40.0\"","isFullCredit":false},{"lineNumber":1203,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1204,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1205,"author":{"gitId":"sopa301"},"content":" \"node_modules/@stylistic/eslint-plugin-js\": {","isFullCredit":false},{"lineNumber":1206,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.7.2\",","isFullCredit":false},{"lineNumber":1207,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-1.7.2.tgz\",","isFullCredit":false},{"lineNumber":1208,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ZYX7C5p7zlHbACwFLU+lISVh6tdcRP/++PWegh2Sy0UgMT5kU0XkPa2tKWEtJYzZmPhJxu9LxbnWcnE/tTwSDQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1209,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1210,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1211,"author":{"gitId":"sopa301"},"content":" \"@types/eslint\": \"^8.56.8\",","isFullCredit":false},{"lineNumber":1212,"author":{"gitId":"sopa301"},"content":" \"acorn\": \"^8.11.3\",","isFullCredit":false},{"lineNumber":1213,"author":{"gitId":"sopa301"},"content":" \"escape-string-regexp\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":1214,"author":{"gitId":"sopa301"},"content":" \"eslint-visitor-keys\": \"^3.4.3\",","isFullCredit":false},{"lineNumber":1215,"author":{"gitId":"sopa301"},"content":" \"espree\": \"^9.6.1\"","isFullCredit":false},{"lineNumber":1216,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1217,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1218,"author":{"gitId":"sopa301"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":1219,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1220,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1221,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"\u003e\u003d8.40.0\"","isFullCredit":false},{"lineNumber":1222,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1223,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1224,"author":{"gitId":"sopa301"},"content":" \"node_modules/@stylistic/eslint-plugin-js/node_modules/escape-string-regexp\": {","isFullCredit":false},{"lineNumber":1225,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1226,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1227,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1228,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1229,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1230,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1231,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1232,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1233,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1234,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1235,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1236,"author":{"gitId":"sopa301"},"content":" \"node_modules/@stylistic/eslint-plugin-js/node_modules/eslint-visitor-keys\": {","isFullCredit":false},{"lineNumber":1237,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.3\",","isFullCredit":false},{"lineNumber":1238,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz\",","isFullCredit":false},{"lineNumber":1239,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag\u003d\u003d\",","isFullCredit":false},{"lineNumber":1240,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1241,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1242,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":1243,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1244,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1245,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":1246,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1247,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1248,"author":{"gitId":"sopa301"},"content":" \"node_modules/@stylistic/eslint-plugin-jsx\": {","isFullCredit":false},{"lineNumber":1249,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.7.2\",","isFullCredit":false},{"lineNumber":1250,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-1.7.2.tgz\",","isFullCredit":false},{"lineNumber":1251,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-lNZR5PR0HLJPs+kY0y8fy6KroKlYqA5PwsYWpVYWzqZWiL5jgAeUo4s9yLFYjJjzildJ5MsTVMy/xP81Qz6GXg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1252,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1253,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1254,"author":{"gitId":"sopa301"},"content":" \"@stylistic/eslint-plugin-js\": \"^1.7.2\",","isFullCredit":false},{"lineNumber":1255,"author":{"gitId":"sopa301"},"content":" \"@types/eslint\": \"^8.56.8\",","isFullCredit":false},{"lineNumber":1256,"author":{"gitId":"sopa301"},"content":" \"estraverse\": \"^5.3.0\",","isFullCredit":false},{"lineNumber":1257,"author":{"gitId":"sopa301"},"content":" \"picomatch\": \"^4.0.2\"","isFullCredit":false},{"lineNumber":1258,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1259,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1260,"author":{"gitId":"sopa301"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":1261,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1262,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1263,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"\u003e\u003d8.40.0\"","isFullCredit":false},{"lineNumber":1264,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1265,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1266,"author":{"gitId":"sopa301"},"content":" \"node_modules/@stylistic/eslint-plugin-jsx/node_modules/estraverse\": {","isFullCredit":false},{"lineNumber":1267,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.3.0\",","isFullCredit":false},{"lineNumber":1268,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz\",","isFullCredit":false},{"lineNumber":1269,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1270,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1271,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1272,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4.0\"","isFullCredit":false},{"lineNumber":1273,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1274,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1275,"author":{"gitId":"sopa301"},"content":" \"node_modules/@stylistic/eslint-plugin-jsx/node_modules/picomatch\": {","isFullCredit":false},{"lineNumber":1276,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.2\",","isFullCredit":false},{"lineNumber":1277,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz\",","isFullCredit":false},{"lineNumber":1278,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1279,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1280,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1281,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":1282,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1283,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1284,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/jonschlinkert\"","isFullCredit":false},{"lineNumber":1285,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1286,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1287,"author":{"gitId":"sopa301"},"content":" \"node_modules/@stylistic/eslint-plugin-plus\": {","isFullCredit":false},{"lineNumber":1288,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.7.2\",","isFullCredit":false},{"lineNumber":1289,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@stylistic/eslint-plugin-plus/-/eslint-plugin-plus-1.7.2.tgz\",","isFullCredit":false},{"lineNumber":1290,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-luUfRVbBVtt0+/FNt8/76BANJEzb/nHWasHD7UUjyMrch2U9xUKpObrkTCzqBuisKek+uFupwGjqXqDP07+fQw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1291,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1292,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1293,"author":{"gitId":"sopa301"},"content":" \"@types/eslint\": \"^8.56.8\",","isFullCredit":false},{"lineNumber":1294,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/utils\": \"^6.21.0\"","isFullCredit":false},{"lineNumber":1295,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1296,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1297,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"*\"","isFullCredit":false},{"lineNumber":1298,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1299,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1300,"author":{"gitId":"sopa301"},"content":" \"node_modules/@stylistic/eslint-plugin-ts\": {","isFullCredit":false},{"lineNumber":1301,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.7.2\",","isFullCredit":false},{"lineNumber":1302,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-1.7.2.tgz\",","isFullCredit":false},{"lineNumber":1303,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-szX89YPocwCe4T0eT3alj7MwEzDHt5+B+kb/vQfSSLIjI9CGgoWrgj50zU8PtaDctTh4ZieFBzU/lRmkSUo0RQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1304,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1305,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1306,"author":{"gitId":"sopa301"},"content":" \"@stylistic/eslint-plugin-js\": \"1.7.2\",","isFullCredit":false},{"lineNumber":1307,"author":{"gitId":"sopa301"},"content":" \"@types/eslint\": \"^8.56.8\",","isFullCredit":false},{"lineNumber":1308,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/utils\": \"^6.21.0\"","isFullCredit":false},{"lineNumber":1309,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1310,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1311,"author":{"gitId":"sopa301"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":1312,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1313,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1314,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"\u003e\u003d8.40.0\"","isFullCredit":false},{"lineNumber":1315,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1316,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1317,"author":{"gitId":"sopa301"},"content":" \"node_modules/@stylistic/stylelint-plugin\": {","isFullCredit":false},{"lineNumber":1318,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.1\",","isFullCredit":false},{"lineNumber":1319,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-2.1.1.tgz\",","isFullCredit":false},{"lineNumber":1320,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-xqHTmQZN7EbnFDW7jw0rAsdFNO4IRqvXhrh3qhUlIwF/x09Zm7kgs/ADktHxsTJYcw346PpGihsB0t4pZhpeHw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1321,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1322,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1323,"author":{"gitId":"sopa301"},"content":" \"@csstools/css-parser-algorithms\": \"^2.5.0\",","isFullCredit":false},{"lineNumber":1324,"author":{"gitId":"sopa301"},"content":" \"@csstools/css-tokenizer\": \"^2.2.3\",","isFullCredit":false},{"lineNumber":1325,"author":{"gitId":"sopa301"},"content":" \"@csstools/media-query-list-parser\": \"^2.1.7\",","isFullCredit":false},{"lineNumber":1326,"author":{"gitId":"sopa301"},"content":" \"is-plain-object\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":1327,"author":{"gitId":"sopa301"},"content":" \"postcss-selector-parser\": \"^6.0.15\",","isFullCredit":false},{"lineNumber":1328,"author":{"gitId":"sopa301"},"content":" \"postcss-value-parser\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":1329,"author":{"gitId":"sopa301"},"content":" \"style-search\": \"^0.1.0\",","isFullCredit":false},{"lineNumber":1330,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^16.2.1\"","isFullCredit":false},{"lineNumber":1331,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1332,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1333,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.12 || \u003e\u003d20.9\"","isFullCredit":false},{"lineNumber":1334,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1335,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1336,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^16.0.2\"","isFullCredit":false},{"lineNumber":1337,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1338,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1339,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/babel-types\": {","isFullCredit":false},{"lineNumber":1340,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.0.11\",","isFullCredit":false},{"lineNumber":1341,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":1342,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1343,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/babylon\": {","isFullCredit":false},{"lineNumber":1344,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.16.6\",","isFullCredit":false},{"lineNumber":1345,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1346,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1347,"author":{"gitId":"sopa301"},"content":" \"@types/babel-types\": \"*\"","isFullCredit":false},{"lineNumber":1348,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1349,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1350,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/eslint\": {","isFullCredit":false},{"lineNumber":1351,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.56.10\",","isFullCredit":false},{"lineNumber":1352,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz\",","isFullCredit":false},{"lineNumber":1353,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1354,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1355,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1356,"author":{"gitId":"sopa301"},"content":" \"@types/estree\": \"*\",","isFullCredit":false},{"lineNumber":1357,"author":{"gitId":"sopa301"},"content":" \"@types/json-schema\": \"*\"","isFullCredit":false},{"lineNumber":1358,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1359,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1360,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/eslint-scope\": {","isFullCredit":false},{"lineNumber":1361,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.7.4\",","isFullCredit":false},{"lineNumber":1362,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1363,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1364,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":1365,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1366,"author":{"gitId":"sopa301"},"content":" \"@types/eslint\": \"*\",","isFullCredit":false},{"lineNumber":1367,"author":{"gitId":"sopa301"},"content":" \"@types/estree\": \"*\"","isFullCredit":false},{"lineNumber":1368,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1369,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1370,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/estree\": {","isFullCredit":false},{"lineNumber":1371,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":1372,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz\",","isFullCredit":false},{"lineNumber":1373,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw\u003d\u003d\"","isFullCredit":false},{"lineNumber":1374,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1375,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/istanbul-lib-coverage\": {","isFullCredit":false},{"lineNumber":1376,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.6\",","isFullCredit":false},{"lineNumber":1377,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz\",","isFullCredit":false},{"lineNumber":1378,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w\u003d\u003d\",","isFullCredit":false},{"lineNumber":1379,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1380,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1381,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/istanbul-lib-report\": {","isFullCredit":false},{"lineNumber":1382,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.3\",","isFullCredit":false},{"lineNumber":1383,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz\",","isFullCredit":false},{"lineNumber":1384,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1385,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1386,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1387,"author":{"gitId":"sopa301"},"content":" \"@types/istanbul-lib-coverage\": \"*\"","isFullCredit":false},{"lineNumber":1388,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1389,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1390,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/istanbul-reports\": {","isFullCredit":false},{"lineNumber":1391,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.4\",","isFullCredit":false},{"lineNumber":1392,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz\",","isFullCredit":false},{"lineNumber":1393,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1394,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1395,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1396,"author":{"gitId":"sopa301"},"content":" \"@types/istanbul-lib-report\": \"*\"","isFullCredit":false},{"lineNumber":1397,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1398,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1399,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/json-schema\": {","isFullCredit":false},{"lineNumber":1400,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.0.15\",","isFullCredit":false},{"lineNumber":1401,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1402,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":1403,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1404,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/json5\": {","isFullCredit":false},{"lineNumber":1405,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.0.29\",","isFullCredit":false},{"lineNumber":1406,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1407,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":1408,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1409,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/linkify-it\": {","isFullCredit":false},{"lineNumber":1410,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.5\",","isFullCredit":false},{"lineNumber":1411,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":1412,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1413,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/markdown-it\": {","isFullCredit":false},{"lineNumber":1414,"author":{"gitId":"sopa301"},"content":" \"version\": \"13.0.7\",","isFullCredit":false},{"lineNumber":1415,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1416,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1417,"author":{"gitId":"sopa301"},"content":" \"@types/linkify-it\": \"*\",","isFullCredit":false},{"lineNumber":1418,"author":{"gitId":"sopa301"},"content":" \"@types/mdurl\": \"*\"","isFullCredit":false},{"lineNumber":1419,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1420,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1421,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/mdurl\": {","isFullCredit":false},{"lineNumber":1422,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":1423,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":1424,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1425,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/minimatch\": {","isFullCredit":false},{"lineNumber":1426,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.1.2\",","isFullCredit":false},{"lineNumber":1427,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":1428,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1429,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/node\": {","isFullCredit":false},{"lineNumber":1430,"author":{"gitId":"sopa301"},"content":" \"version\": \"20.12.7\",","isFullCredit":false},{"lineNumber":1431,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz\",","isFullCredit":false},{"lineNumber":1432,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1433,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":1434,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1435,"author":{"gitId":"sopa301"},"content":" \"undici-types\": \"~5.26.4\"","isFullCredit":false},{"lineNumber":1436,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1437,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1438,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/seedrandom\": {","isFullCredit":false},{"lineNumber":1439,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.8\",","isFullCredit":false},{"lineNumber":1440,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":1441,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1442,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/semver\": {","isFullCredit":false},{"lineNumber":1443,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.5.8\",","isFullCredit":false},{"lineNumber":1444,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz\",","isFullCredit":false},{"lineNumber":1445,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1446,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1447,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1448,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/yargs\": {","isFullCredit":false},{"lineNumber":1449,"author":{"gitId":"sopa301"},"content":" \"version\": \"17.0.32\",","isFullCredit":false},{"lineNumber":1450,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz\",","isFullCredit":false},{"lineNumber":1451,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog\u003d\u003d\",","isFullCredit":false},{"lineNumber":1452,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1453,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1454,"author":{"gitId":"sopa301"},"content":" \"@types/yargs-parser\": \"*\"","isFullCredit":false},{"lineNumber":1455,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1456,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1457,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/yargs-parser\": {","isFullCredit":false},{"lineNumber":1458,"author":{"gitId":"sopa301"},"content":" \"version\": \"21.0.3\",","isFullCredit":false},{"lineNumber":1459,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz\",","isFullCredit":false},{"lineNumber":1460,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1461,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1462,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1463,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/eslint-plugin\": {","isFullCredit":false},{"lineNumber":1464,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1465,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":1466,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1467,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1468,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1469,"author":{"gitId":"sopa301"},"content":" \"@eslint-community/regexpp\": \"^4.10.0\",","isFullCredit":false},{"lineNumber":1470,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/scope-manager\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1471,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/type-utils\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1472,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/utils\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1473,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/visitor-keys\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1474,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^4.3.4\",","isFullCredit":false},{"lineNumber":1475,"author":{"gitId":"sopa301"},"content":" \"graphemer\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":1476,"author":{"gitId":"sopa301"},"content":" \"ignore\": \"^5.3.1\",","isFullCredit":false},{"lineNumber":1477,"author":{"gitId":"sopa301"},"content":" \"natural-compare\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":1478,"author":{"gitId":"sopa301"},"content":" \"semver\": \"^7.6.0\",","isFullCredit":false},{"lineNumber":1479,"author":{"gitId":"sopa301"},"content":" \"ts-api-utils\": \"^1.3.0\"","isFullCredit":false},{"lineNumber":1480,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1481,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1482,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":1483,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1484,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1485,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1486,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":1487,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1488,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1489,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/parser\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":1490,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^8.56.0\"","isFullCredit":false},{"lineNumber":1491,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1492,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":1493,"author":{"gitId":"sopa301"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":1494,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":1495,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1496,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1497,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1498,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils\": {","isFullCredit":false},{"lineNumber":1499,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1500,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":1501,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig\u003d\u003d\",","isFullCredit":false},{"lineNumber":1502,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1503,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1504,"author":{"gitId":"sopa301"},"content":" \"@eslint-community/eslint-utils\": \"^4.4.0\",","isFullCredit":false},{"lineNumber":1505,"author":{"gitId":"sopa301"},"content":" \"@types/json-schema\": \"^7.0.15\",","isFullCredit":false},{"lineNumber":1506,"author":{"gitId":"sopa301"},"content":" \"@types/semver\": \"^7.5.8\",","isFullCredit":false},{"lineNumber":1507,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/scope-manager\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1508,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/types\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1509,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/typescript-estree\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1510,"author":{"gitId":"sopa301"},"content":" \"semver\": \"^7.6.0\"","isFullCredit":false},{"lineNumber":1511,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1512,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1513,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":1514,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1515,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1516,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1517,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":1518,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1519,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1520,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^8.56.0\"","isFullCredit":false},{"lineNumber":1521,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1522,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1523,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":1524,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":1525,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":1526,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1527,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1528,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1529,"author":{"gitId":"sopa301"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":1530,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1531,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1532,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1533,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1534,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1535,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/eslint-plugin/node_modules/semver\": {","isFullCredit":false},{"lineNumber":1536,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":1537,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.6.0.tgz\",","isFullCredit":false},{"lineNumber":1538,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1539,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1540,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1541,"author":{"gitId":"sopa301"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":1542,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1543,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":1544,"author":{"gitId":"sopa301"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":1545,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1546,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1547,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1548,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1549,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1550,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":1551,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1552,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1553,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1554,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1555,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1556,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/parser\": {","isFullCredit":false},{"lineNumber":1557,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1558,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":1559,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1560,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1561,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1562,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/scope-manager\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1563,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/types\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1564,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/typescript-estree\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1565,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/visitor-keys\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1566,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^4.3.4\"","isFullCredit":false},{"lineNumber":1567,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1568,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1569,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":1570,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1571,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1572,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1573,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":1574,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1575,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1576,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^8.56.0\"","isFullCredit":false},{"lineNumber":1577,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1578,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":1579,"author":{"gitId":"sopa301"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":1580,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":1581,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1582,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1583,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1584,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/scope-manager\": {","isFullCredit":false},{"lineNumber":1585,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1586,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":1587,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1588,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1589,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1590,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/types\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1591,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/visitor-keys\": \"7.7.0\"","isFullCredit":false},{"lineNumber":1592,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1593,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1594,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":1595,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1596,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1597,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1598,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":1599,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1600,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1601,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/type-utils\": {","isFullCredit":false},{"lineNumber":1602,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1603,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":1604,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1605,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1606,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1607,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/typescript-estree\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1608,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/utils\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1609,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^4.3.4\",","isFullCredit":false},{"lineNumber":1610,"author":{"gitId":"sopa301"},"content":" \"ts-api-utils\": \"^1.3.0\"","isFullCredit":false},{"lineNumber":1611,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1612,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1613,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":1614,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1615,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1616,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1617,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":1618,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1619,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1620,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^8.56.0\"","isFullCredit":false},{"lineNumber":1621,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1622,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":1623,"author":{"gitId":"sopa301"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":1624,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":1625,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1626,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1627,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1628,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils\": {","isFullCredit":false},{"lineNumber":1629,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1630,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":1631,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig\u003d\u003d\",","isFullCredit":false},{"lineNumber":1632,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1633,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1634,"author":{"gitId":"sopa301"},"content":" \"@eslint-community/eslint-utils\": \"^4.4.0\",","isFullCredit":false},{"lineNumber":1635,"author":{"gitId":"sopa301"},"content":" \"@types/json-schema\": \"^7.0.15\",","isFullCredit":false},{"lineNumber":1636,"author":{"gitId":"sopa301"},"content":" \"@types/semver\": \"^7.5.8\",","isFullCredit":false},{"lineNumber":1637,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/scope-manager\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1638,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/types\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1639,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/typescript-estree\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1640,"author":{"gitId":"sopa301"},"content":" \"semver\": \"^7.6.0\"","isFullCredit":false},{"lineNumber":1641,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1642,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1643,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":1644,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1645,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1646,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1647,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":1648,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1649,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1650,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^8.56.0\"","isFullCredit":false},{"lineNumber":1651,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1652,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1653,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/type-utils/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":1654,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":1655,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":1656,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1657,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1658,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1659,"author":{"gitId":"sopa301"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":1660,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1661,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1662,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1663,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1664,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1665,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/type-utils/node_modules/semver\": {","isFullCredit":false},{"lineNumber":1666,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":1667,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.6.0.tgz\",","isFullCredit":false},{"lineNumber":1668,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1669,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1670,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1671,"author":{"gitId":"sopa301"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":1672,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1673,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":1674,"author":{"gitId":"sopa301"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":1675,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1676,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1677,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1678,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1679,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1680,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/type-utils/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":1681,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1682,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1683,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1684,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1685,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1686,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/types\": {","isFullCredit":false},{"lineNumber":1687,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1688,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":1689,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w\u003d\u003d\",","isFullCredit":false},{"lineNumber":1690,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1691,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1692,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":1693,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1694,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1695,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1696,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":1697,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1698,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1699,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/typescript-estree\": {","isFullCredit":false},{"lineNumber":1700,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1701,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":1702,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1703,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1704,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1705,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/types\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1706,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/visitor-keys\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1707,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^4.3.4\",","isFullCredit":false},{"lineNumber":1708,"author":{"gitId":"sopa301"},"content":" \"globby\": \"^11.1.0\",","isFullCredit":false},{"lineNumber":1709,"author":{"gitId":"sopa301"},"content":" \"is-glob\": \"^4.0.3\",","isFullCredit":false},{"lineNumber":1710,"author":{"gitId":"sopa301"},"content":" \"minimatch\": \"^9.0.4\",","isFullCredit":false},{"lineNumber":1711,"author":{"gitId":"sopa301"},"content":" \"semver\": \"^7.6.0\",","isFullCredit":false},{"lineNumber":1712,"author":{"gitId":"sopa301"},"content":" \"ts-api-utils\": \"^1.3.0\"","isFullCredit":false},{"lineNumber":1713,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1714,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1715,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":1716,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1717,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1718,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1719,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":1720,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1721,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":1722,"author":{"gitId":"sopa301"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":1723,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":1724,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1725,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1726,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1727,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":1728,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":1729,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":1730,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1731,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1732,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1733,"author":{"gitId":"sopa301"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":1734,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1735,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1736,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1737,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1738,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1739,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/typescript-estree/node_modules/semver\": {","isFullCredit":false},{"lineNumber":1740,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":1741,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.6.0.tgz\",","isFullCredit":false},{"lineNumber":1742,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1743,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1744,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1745,"author":{"gitId":"sopa301"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":1746,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1747,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":1748,"author":{"gitId":"sopa301"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":1749,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1750,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1751,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1752,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1753,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1754,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/typescript-estree/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":1755,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1756,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1757,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1758,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1759,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1760,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/utils\": {","isFullCredit":false},{"lineNumber":1761,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.21.0\",","isFullCredit":false},{"lineNumber":1762,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz\",","isFullCredit":false},{"lineNumber":1763,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1764,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1765,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1766,"author":{"gitId":"sopa301"},"content":" \"@eslint-community/eslint-utils\": \"^4.4.0\",","isFullCredit":false},{"lineNumber":1767,"author":{"gitId":"sopa301"},"content":" \"@types/json-schema\": \"^7.0.12\",","isFullCredit":false},{"lineNumber":1768,"author":{"gitId":"sopa301"},"content":" \"@types/semver\": \"^7.5.0\",","isFullCredit":false},{"lineNumber":1769,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/scope-manager\": \"6.21.0\",","isFullCredit":false},{"lineNumber":1770,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/types\": \"6.21.0\",","isFullCredit":false},{"lineNumber":1771,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/typescript-estree\": \"6.21.0\",","isFullCredit":false},{"lineNumber":1772,"author":{"gitId":"sopa301"},"content":" \"semver\": \"^7.5.4\"","isFullCredit":false},{"lineNumber":1773,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1774,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1775,"author":{"gitId":"sopa301"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":1776,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1777,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1778,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1779,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":1780,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1781,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1782,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^7.0.0 || ^8.0.0\"","isFullCredit":false},{"lineNumber":1783,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1784,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1785,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager\": {","isFullCredit":false},{"lineNumber":1786,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.21.0\",","isFullCredit":false},{"lineNumber":1787,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz\",","isFullCredit":false},{"lineNumber":1788,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1789,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1790,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1791,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/types\": \"6.21.0\",","isFullCredit":false},{"lineNumber":1792,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/visitor-keys\": \"6.21.0\"","isFullCredit":false},{"lineNumber":1793,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1794,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1795,"author":{"gitId":"sopa301"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":1796,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1797,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1798,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1799,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":1800,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1801,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1802,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types\": {","isFullCredit":false},{"lineNumber":1803,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.21.0\",","isFullCredit":false},{"lineNumber":1804,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz\",","isFullCredit":false},{"lineNumber":1805,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1806,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1807,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1808,"author":{"gitId":"sopa301"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":1809,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1810,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1811,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1812,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":1813,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1814,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1815,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree\": {","isFullCredit":false},{"lineNumber":1816,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.21.0\",","isFullCredit":false},{"lineNumber":1817,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz\",","isFullCredit":false},{"lineNumber":1818,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1819,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1820,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1821,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/types\": \"6.21.0\",","isFullCredit":false},{"lineNumber":1822,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/visitor-keys\": \"6.21.0\",","isFullCredit":false},{"lineNumber":1823,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^4.3.4\",","isFullCredit":false},{"lineNumber":1824,"author":{"gitId":"sopa301"},"content":" \"globby\": \"^11.1.0\",","isFullCredit":false},{"lineNumber":1825,"author":{"gitId":"sopa301"},"content":" \"is-glob\": \"^4.0.3\",","isFullCredit":false},{"lineNumber":1826,"author":{"gitId":"sopa301"},"content":" \"minimatch\": \"9.0.3\",","isFullCredit":false},{"lineNumber":1827,"author":{"gitId":"sopa301"},"content":" \"semver\": \"^7.5.4\",","isFullCredit":false},{"lineNumber":1828,"author":{"gitId":"sopa301"},"content":" \"ts-api-utils\": \"^1.0.1\"","isFullCredit":false},{"lineNumber":1829,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1830,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1831,"author":{"gitId":"sopa301"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":1832,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1833,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1834,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1835,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":1836,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1837,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":1838,"author":{"gitId":"sopa301"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":1839,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":1840,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1841,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1842,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1843,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys\": {","isFullCredit":false},{"lineNumber":1844,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.21.0\",","isFullCredit":false},{"lineNumber":1845,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz\",","isFullCredit":false},{"lineNumber":1846,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1847,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1848,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1849,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/types\": \"6.21.0\",","isFullCredit":false},{"lineNumber":1850,"author":{"gitId":"sopa301"},"content":" \"eslint-visitor-keys\": \"^3.4.1\"","isFullCredit":false},{"lineNumber":1851,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1852,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1853,"author":{"gitId":"sopa301"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":1854,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1855,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1856,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1857,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":1858,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1859,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1860,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys\": {","isFullCredit":false},{"lineNumber":1861,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.3\",","isFullCredit":false},{"lineNumber":1862,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz\",","isFullCredit":false},{"lineNumber":1863,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag\u003d\u003d\",","isFullCredit":false},{"lineNumber":1864,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1865,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1866,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":1867,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1868,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1869,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":1870,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1871,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1872,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":1873,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":1874,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":1875,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1876,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1877,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1878,"author":{"gitId":"sopa301"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":1879,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1880,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1881,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1882,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1883,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1884,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":1885,"author":{"gitId":"sopa301"},"content":" \"version\": \"9.0.3\",","isFullCredit":false},{"lineNumber":1886,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz\",","isFullCredit":false},{"lineNumber":1887,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1888,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1889,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1890,"author":{"gitId":"sopa301"},"content":" \"brace-expansion\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":1891,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1892,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1893,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d16 || 14 \u003e\u003d14.17\"","isFullCredit":false},{"lineNumber":1894,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1895,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1896,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/isaacs\"","isFullCredit":false},{"lineNumber":1897,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1898,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1899,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/semver\": {","isFullCredit":false},{"lineNumber":1900,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":1901,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.6.0.tgz\",","isFullCredit":false},{"lineNumber":1902,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1903,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1904,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1905,"author":{"gitId":"sopa301"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":1906,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1907,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":1908,"author":{"gitId":"sopa301"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":1909,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1910,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1911,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1912,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1913,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1914,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":1915,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1916,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1917,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1918,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1919,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1920,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/visitor-keys\": {","isFullCredit":false},{"lineNumber":1921,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1922,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":1923,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1924,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1925,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1926,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/types\": \"7.7.0\",","isFullCredit":false},{"lineNumber":1927,"author":{"gitId":"sopa301"},"content":" \"eslint-visitor-keys\": \"^3.4.3\"","isFullCredit":false},{"lineNumber":1928,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1929,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1930,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":1931,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1932,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1933,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1934,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":1935,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1936,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1937,"author":{"gitId":"sopa301"},"content":" \"node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys\": {","isFullCredit":false},{"lineNumber":1938,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.3\",","isFullCredit":false},{"lineNumber":1939,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz\",","isFullCredit":false},{"lineNumber":1940,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag\u003d\u003d\",","isFullCredit":false},{"lineNumber":1941,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1942,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1943,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":1944,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1945,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1946,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":1947,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1948,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1949,"author":{"gitId":"sopa301"},"content":" \"node_modules/@ungap/structured-clone\": {","isFullCredit":false},{"lineNumber":1950,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":1951,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1952,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":1953,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1954,"author":{"gitId":"sopa301"},"content":" \"node_modules/@vitejs/plugin-vue\": {","isFullCredit":false},{"lineNumber":1955,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.4\",","isFullCredit":false},{"lineNumber":1956,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz\",","isFullCredit":false},{"lineNumber":1957,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1958,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1959,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.0.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":1960,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1961,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1962,"author":{"gitId":"sopa301"},"content":" \"vite\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":1963,"author":{"gitId":"sopa301"},"content":" \"vue\": \"^3.2.25\"","isFullCredit":false},{"lineNumber":1964,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1965,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1966,"author":{"gitId":"sopa301"},"content":" \"node_modules/@vue/compiler-core\": {","isFullCredit":false},{"lineNumber":1967,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":1968,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1969,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1970,"author":{"gitId":"sopa301"},"content":" \"@babel/parser\": \"^7.23.9\",","isFullCredit":false},{"lineNumber":1971,"author":{"gitId":"sopa301"},"content":" \"@vue/shared\": \"3.4.21\",","isFullCredit":false},{"lineNumber":1972,"author":{"gitId":"sopa301"},"content":" \"entities\": \"^4.5.0\",","isFullCredit":false},{"lineNumber":1973,"author":{"gitId":"sopa301"},"content":" \"estree-walker\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":1974,"author":{"gitId":"sopa301"},"content":" \"source-map-js\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":1975,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1976,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1977,"author":{"gitId":"sopa301"},"content":" \"node_modules/@vue/compiler-dom\": {","isFullCredit":false},{"lineNumber":1978,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":1979,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1980,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1981,"author":{"gitId":"sopa301"},"content":" \"@vue/compiler-core\": \"3.4.21\",","isFullCredit":false},{"lineNumber":1982,"author":{"gitId":"sopa301"},"content":" \"@vue/shared\": \"3.4.21\"","isFullCredit":false},{"lineNumber":1983,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1984,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1985,"author":{"gitId":"sopa301"},"content":" \"node_modules/@vue/compiler-sfc\": {","isFullCredit":false},{"lineNumber":1986,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":1987,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1988,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1989,"author":{"gitId":"sopa301"},"content":" \"@babel/parser\": \"^7.23.9\",","isFullCredit":false},{"lineNumber":1990,"author":{"gitId":"sopa301"},"content":" \"@vue/compiler-core\": \"3.4.21\",","isFullCredit":false},{"lineNumber":1991,"author":{"gitId":"sopa301"},"content":" \"@vue/compiler-dom\": \"3.4.21\",","isFullCredit":false},{"lineNumber":1992,"author":{"gitId":"sopa301"},"content":" \"@vue/compiler-ssr\": \"3.4.21\",","isFullCredit":false},{"lineNumber":1993,"author":{"gitId":"sopa301"},"content":" \"@vue/shared\": \"3.4.21\",","isFullCredit":false},{"lineNumber":1994,"author":{"gitId":"sopa301"},"content":" \"estree-walker\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":1995,"author":{"gitId":"sopa301"},"content":" \"magic-string\": \"^0.30.7\",","isFullCredit":false},{"lineNumber":1996,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.4.35\",","isFullCredit":false},{"lineNumber":1997,"author":{"gitId":"sopa301"},"content":" \"source-map-js\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":1998,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1999,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2000,"author":{"gitId":"sopa301"},"content":" \"node_modules/@vue/compiler-ssr\": {","isFullCredit":false},{"lineNumber":2001,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":2002,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2003,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2004,"author":{"gitId":"sopa301"},"content":" \"@vue/compiler-dom\": \"3.4.21\",","isFullCredit":false},{"lineNumber":2005,"author":{"gitId":"sopa301"},"content":" \"@vue/shared\": \"3.4.21\"","isFullCredit":false},{"lineNumber":2006,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2007,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2008,"author":{"gitId":"sopa301"},"content":" \"node_modules/@vue/devtools-api\": {","isFullCredit":false},{"lineNumber":2009,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.6.1\",","isFullCredit":false},{"lineNumber":2010,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2011,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2012,"author":{"gitId":"sopa301"},"content":" \"node_modules/@vue/eslint-config-typescript\": {","isFullCredit":false},{"lineNumber":2013,"author":{"gitId":"sopa301"},"content":" \"version\": \"13.0.0\",","isFullCredit":false},{"lineNumber":2014,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-13.0.0.tgz\",","isFullCredit":false},{"lineNumber":2015,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-MHh9SncG/sfqjVqjcuFLOLD6Ed4dRAis4HNt0dXASeAuLqIAx4YMB1/m2o4pUKK1vCt8fUvYG8KKX2Ot3BVZTg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2016,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2017,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2018,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/eslint-plugin\": \"^7.1.1\",","isFullCredit":false},{"lineNumber":2019,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/parser\": \"^7.1.1\",","isFullCredit":false},{"lineNumber":2020,"author":{"gitId":"sopa301"},"content":" \"vue-eslint-parser\": \"^9.3.1\"","isFullCredit":false},{"lineNumber":2021,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2022,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2023,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":2024,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2025,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2026,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^8.56.0\",","isFullCredit":false},{"lineNumber":2027,"author":{"gitId":"sopa301"},"content":" \"eslint-plugin-vue\": \"^9.0.0\",","isFullCredit":false},{"lineNumber":2028,"author":{"gitId":"sopa301"},"content":" \"typescript\": \"\u003e\u003d4.7.4\"","isFullCredit":false},{"lineNumber":2029,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2030,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":2031,"author":{"gitId":"sopa301"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":2032,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":2033,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2034,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2035,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2036,"author":{"gitId":"sopa301"},"content":" \"node_modules/@vue/reactivity\": {","isFullCredit":false},{"lineNumber":2037,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":2038,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2039,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2040,"author":{"gitId":"sopa301"},"content":" \"@vue/shared\": \"3.4.21\"","isFullCredit":false},{"lineNumber":2041,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2042,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2043,"author":{"gitId":"sopa301"},"content":" \"node_modules/@vue/runtime-core\": {","isFullCredit":false},{"lineNumber":2044,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":2045,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2046,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2047,"author":{"gitId":"sopa301"},"content":" \"@vue/reactivity\": \"3.4.21\",","isFullCredit":false},{"lineNumber":2048,"author":{"gitId":"sopa301"},"content":" \"@vue/shared\": \"3.4.21\"","isFullCredit":false},{"lineNumber":2049,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2050,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2051,"author":{"gitId":"sopa301"},"content":" \"node_modules/@vue/runtime-dom\": {","isFullCredit":false},{"lineNumber":2052,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":2053,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2054,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2055,"author":{"gitId":"sopa301"},"content":" \"@vue/runtime-core\": \"3.4.21\",","isFullCredit":false},{"lineNumber":2056,"author":{"gitId":"sopa301"},"content":" \"@vue/shared\": \"3.4.21\",","isFullCredit":false},{"lineNumber":2057,"author":{"gitId":"sopa301"},"content":" \"csstype\": \"^3.1.3\"","isFullCredit":false},{"lineNumber":2058,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2059,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2060,"author":{"gitId":"sopa301"},"content":" \"node_modules/@vue/server-renderer\": {","isFullCredit":false},{"lineNumber":2061,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":2062,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2063,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2064,"author":{"gitId":"sopa301"},"content":" \"@vue/compiler-ssr\": \"3.4.21\",","isFullCredit":false},{"lineNumber":2065,"author":{"gitId":"sopa301"},"content":" \"@vue/shared\": \"3.4.21\"","isFullCredit":false},{"lineNumber":2066,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2067,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2068,"author":{"gitId":"sopa301"},"content":" \"vue\": \"3.4.21\"","isFullCredit":false},{"lineNumber":2069,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2070,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2071,"author":{"gitId":"sopa301"},"content":" \"node_modules/@vue/shared\": {","isFullCredit":false},{"lineNumber":2072,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":2073,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2074,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2075,"author":{"gitId":"sopa301"},"content":" \"node_modules/@webassemblyjs/ast\": {","isFullCredit":false},{"lineNumber":2076,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2077,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2078,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2079,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":2080,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2081,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/helper-numbers\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2082,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/helper-wasm-bytecode\": \"1.11.1\"","isFullCredit":false},{"lineNumber":2083,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2084,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2085,"author":{"gitId":"sopa301"},"content":" \"node_modules/@webassemblyjs/floating-point-hex-parser\": {","isFullCredit":false},{"lineNumber":2086,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2087,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2088,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2089,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":2090,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2091,"author":{"gitId":"sopa301"},"content":" \"node_modules/@webassemblyjs/helper-api-error\": {","isFullCredit":false},{"lineNumber":2092,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2093,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2094,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2095,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":2096,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2097,"author":{"gitId":"sopa301"},"content":" \"node_modules/@webassemblyjs/helper-buffer\": {","isFullCredit":false},{"lineNumber":2098,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2099,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2100,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2101,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":2102,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2103,"author":{"gitId":"sopa301"},"content":" \"node_modules/@webassemblyjs/helper-numbers\": {","isFullCredit":false},{"lineNumber":2104,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2105,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2106,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2107,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":2108,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2109,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/floating-point-hex-parser\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2110,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/helper-api-error\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2111,"author":{"gitId":"sopa301"},"content":" \"@xtuc/long\": \"4.2.2\"","isFullCredit":false},{"lineNumber":2112,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2113,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2114,"author":{"gitId":"sopa301"},"content":" \"node_modules/@webassemblyjs/helper-wasm-bytecode\": {","isFullCredit":false},{"lineNumber":2115,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2116,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2117,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2118,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":2119,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2120,"author":{"gitId":"sopa301"},"content":" \"node_modules/@webassemblyjs/helper-wasm-section\": {","isFullCredit":false},{"lineNumber":2121,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2122,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2123,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2124,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":2125,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2126,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/ast\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2127,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/helper-buffer\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2128,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/helper-wasm-bytecode\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2129,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/wasm-gen\": \"1.11.1\"","isFullCredit":false},{"lineNumber":2130,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2131,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2132,"author":{"gitId":"sopa301"},"content":" \"node_modules/@webassemblyjs/ieee754\": {","isFullCredit":false},{"lineNumber":2133,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2134,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2135,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2136,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":2137,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2138,"author":{"gitId":"sopa301"},"content":" \"@xtuc/ieee754\": \"^1.2.0\"","isFullCredit":false},{"lineNumber":2139,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2140,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2141,"author":{"gitId":"sopa301"},"content":" \"node_modules/@webassemblyjs/leb128\": {","isFullCredit":false},{"lineNumber":2142,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2143,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2144,"author":{"gitId":"sopa301"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":2145,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":2146,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2147,"author":{"gitId":"sopa301"},"content":" \"@xtuc/long\": \"4.2.2\"","isFullCredit":false},{"lineNumber":2148,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2149,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2150,"author":{"gitId":"sopa301"},"content":" \"node_modules/@webassemblyjs/utf8\": {","isFullCredit":false},{"lineNumber":2151,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2152,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2153,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2154,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":2155,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2156,"author":{"gitId":"sopa301"},"content":" \"node_modules/@webassemblyjs/wasm-edit\": {","isFullCredit":false},{"lineNumber":2157,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2158,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2159,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2160,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":2161,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2162,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/ast\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2163,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/helper-buffer\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2164,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/helper-wasm-bytecode\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2165,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/helper-wasm-section\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2166,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/wasm-gen\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2167,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/wasm-opt\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2168,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/wasm-parser\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2169,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/wast-printer\": \"1.11.1\"","isFullCredit":false},{"lineNumber":2170,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2171,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2172,"author":{"gitId":"sopa301"},"content":" \"node_modules/@webassemblyjs/wasm-gen\": {","isFullCredit":false},{"lineNumber":2173,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2174,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2175,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2176,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":2177,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2178,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/ast\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2179,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/helper-wasm-bytecode\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2180,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/ieee754\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2181,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/leb128\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2182,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/utf8\": \"1.11.1\"","isFullCredit":false},{"lineNumber":2183,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2184,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2185,"author":{"gitId":"sopa301"},"content":" \"node_modules/@webassemblyjs/wasm-opt\": {","isFullCredit":false},{"lineNumber":2186,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2187,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2188,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2189,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":2190,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2191,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/ast\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2192,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/helper-buffer\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2193,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/wasm-gen\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2194,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/wasm-parser\": \"1.11.1\"","isFullCredit":false},{"lineNumber":2195,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2196,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2197,"author":{"gitId":"sopa301"},"content":" \"node_modules/@webassemblyjs/wasm-parser\": {","isFullCredit":false},{"lineNumber":2198,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2199,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2200,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2201,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":2202,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2203,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/ast\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2204,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/helper-api-error\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2205,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/helper-wasm-bytecode\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2206,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/ieee754\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2207,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/leb128\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2208,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/utf8\": \"1.11.1\"","isFullCredit":false},{"lineNumber":2209,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2210,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2211,"author":{"gitId":"sopa301"},"content":" \"node_modules/@webassemblyjs/wast-printer\": {","isFullCredit":false},{"lineNumber":2212,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2213,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2214,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2215,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":2216,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2217,"author":{"gitId":"sopa301"},"content":" \"@webassemblyjs/ast\": \"1.11.1\",","isFullCredit":false},{"lineNumber":2218,"author":{"gitId":"sopa301"},"content":" \"@xtuc/long\": \"4.2.2\"","isFullCredit":false},{"lineNumber":2219,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2220,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2221,"author":{"gitId":"sopa301"},"content":" \"node_modules/@xtuc/ieee754\": {","isFullCredit":false},{"lineNumber":2222,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":2223,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2224,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":2225,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":2226,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2227,"author":{"gitId":"sopa301"},"content":" \"node_modules/@xtuc/long\": {","isFullCredit":false},{"lineNumber":2228,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.2.2\",","isFullCredit":false},{"lineNumber":2229,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2230,"author":{"gitId":"sopa301"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":2231,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":2232,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2233,"author":{"gitId":"sopa301"},"content":" \"node_modules/acorn\": {","isFullCredit":false},{"lineNumber":2234,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.11.3\",","isFullCredit":false},{"lineNumber":2235,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":2236,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2237,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":2238,"author":{"gitId":"sopa301"},"content":" \"acorn\": \"bin/acorn\"","isFullCredit":false},{"lineNumber":2239,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2240,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2241,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.4.0\"","isFullCredit":false},{"lineNumber":2242,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2243,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2244,"author":{"gitId":"sopa301"},"content":" \"node_modules/acorn-import-assertions\": {","isFullCredit":false},{"lineNumber":2245,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.8.0\",","isFullCredit":false},{"lineNumber":2246,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2247,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2248,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":2249,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2250,"author":{"gitId":"sopa301"},"content":" \"acorn\": \"^8\"","isFullCredit":false},{"lineNumber":2251,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2252,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2253,"author":{"gitId":"sopa301"},"content":" \"node_modules/acorn-jsx\": {","isFullCredit":false},{"lineNumber":2254,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.3.2\",","isFullCredit":false},{"lineNumber":2255,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2256,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2257,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2258,"author":{"gitId":"sopa301"},"content":" \"acorn\": \"^6.0.0 || ^7.0.0 || ^8.0.0\"","isFullCredit":false},{"lineNumber":2259,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2260,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2261,"author":{"gitId":"sopa301"},"content":" \"node_modules/ajv\": {","isFullCredit":false},{"lineNumber":2262,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.12.6\",","isFullCredit":false},{"lineNumber":2263,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2264,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2265,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2266,"author":{"gitId":"sopa301"},"content":" \"fast-deep-equal\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":2267,"author":{"gitId":"sopa301"},"content":" \"fast-json-stable-stringify\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":2268,"author":{"gitId":"sopa301"},"content":" \"json-schema-traverse\": \"^0.4.1\",","isFullCredit":false},{"lineNumber":2269,"author":{"gitId":"sopa301"},"content":" \"uri-js\": \"^4.2.2\"","isFullCredit":false},{"lineNumber":2270,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2271,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2272,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":2273,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/epoberezkin\"","isFullCredit":false},{"lineNumber":2274,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2275,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2276,"author":{"gitId":"sopa301"},"content":" \"node_modules/ajv-formats\": {","isFullCredit":false},{"lineNumber":2277,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.1\",","isFullCredit":false},{"lineNumber":2278,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2279,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2280,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2281,"author":{"gitId":"sopa301"},"content":" \"ajv\": \"^8.0.0\"","isFullCredit":false},{"lineNumber":2282,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2283,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2284,"author":{"gitId":"sopa301"},"content":" \"ajv\": \"^8.0.0\"","isFullCredit":false},{"lineNumber":2285,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2286,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":2287,"author":{"gitId":"sopa301"},"content":" \"ajv\": {","isFullCredit":false},{"lineNumber":2288,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":2289,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":2290,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2291,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2292,"author":{"gitId":"sopa301"},"content":" \"node_modules/ajv-formats/node_modules/ajv\": {","isFullCredit":false},{"lineNumber":2293,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.12.0\",","isFullCredit":false},{"lineNumber":2294,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2295,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2296,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2297,"author":{"gitId":"sopa301"},"content":" \"fast-deep-equal\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":2298,"author":{"gitId":"sopa301"},"content":" \"json-schema-traverse\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":2299,"author":{"gitId":"sopa301"},"content":" \"require-from-string\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":2300,"author":{"gitId":"sopa301"},"content":" \"uri-js\": \"^4.2.2\"","isFullCredit":false},{"lineNumber":2301,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2302,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2303,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":2304,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/epoberezkin\"","isFullCredit":false},{"lineNumber":2305,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2306,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2307,"author":{"gitId":"sopa301"},"content":" \"node_modules/ajv-formats/node_modules/json-schema-traverse\": {","isFullCredit":false},{"lineNumber":2308,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2309,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2310,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2311,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2312,"author":{"gitId":"sopa301"},"content":" \"node_modules/ajv-keywords\": {","isFullCredit":false},{"lineNumber":2313,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.5.2\",","isFullCredit":false},{"lineNumber":2314,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2315,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2316,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":2317,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2318,"author":{"gitId":"sopa301"},"content":" \"ajv\": \"^6.9.1\"","isFullCredit":false},{"lineNumber":2319,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2320,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2321,"author":{"gitId":"sopa301"},"content":" \"node_modules/ansi-regex\": {","isFullCredit":false},{"lineNumber":2322,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.1\",","isFullCredit":false},{"lineNumber":2323,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2324,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2325,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2326,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":2327,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2328,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2329,"author":{"gitId":"sopa301"},"content":" \"node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":2330,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.2.1\",","isFullCredit":false},{"lineNumber":2331,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2332,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2333,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2334,"author":{"gitId":"sopa301"},"content":" \"color-convert\": \"^1.9.0\"","isFullCredit":false},{"lineNumber":2335,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2336,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2337,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":2338,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2339,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2340,"author":{"gitId":"sopa301"},"content":" \"node_modules/anymatch\": {","isFullCredit":false},{"lineNumber":2341,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.3\",","isFullCredit":false},{"lineNumber":2342,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":2343,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":2344,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2345,"author":{"gitId":"sopa301"},"content":" \"normalize-path\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":2346,"author":{"gitId":"sopa301"},"content":" \"picomatch\": \"^2.0.4\"","isFullCredit":false},{"lineNumber":2347,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2348,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2349,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":2350,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2351,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2352,"author":{"gitId":"sopa301"},"content":" \"node_modules/argparse\": {","isFullCredit":false},{"lineNumber":2353,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":2354,"author":{"gitId":"sopa301"},"content":" \"license\": \"Python-2.0\"","isFullCredit":false},{"lineNumber":2355,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2356,"author":{"gitId":"sopa301"},"content":" \"node_modules/array-buffer-byte-length\": {","isFullCredit":false},{"lineNumber":2357,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":2358,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2359,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2360,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2361,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":2362,"author":{"gitId":"sopa301"},"content":" \"is-array-buffer\": \"^3.0.4\"","isFullCredit":false},{"lineNumber":2363,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2364,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2365,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":2366,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2367,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2368,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":2369,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2370,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2371,"author":{"gitId":"sopa301"},"content":" \"node_modules/array-includes\": {","isFullCredit":false},{"lineNumber":2372,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.7\",","isFullCredit":false},{"lineNumber":2373,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2374,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2375,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2376,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":2377,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":2378,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.22.1\",","isFullCredit":false},{"lineNumber":2379,"author":{"gitId":"sopa301"},"content":" \"get-intrinsic\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":2380,"author":{"gitId":"sopa301"},"content":" \"is-string\": \"^1.0.7\"","isFullCredit":false},{"lineNumber":2381,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2382,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2383,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":2384,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2385,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2386,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":2387,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2388,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2389,"author":{"gitId":"sopa301"},"content":" \"node_modules/array-union\": {","isFullCredit":false},{"lineNumber":2390,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":2391,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2392,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2393,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2394,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":2395,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2396,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2397,"author":{"gitId":"sopa301"},"content":" \"node_modules/array.prototype.filter\": {","isFullCredit":false},{"lineNumber":2398,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":2399,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2400,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2401,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2402,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":2403,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":2404,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.22.1\",","isFullCredit":false},{"lineNumber":2405,"author":{"gitId":"sopa301"},"content":" \"es-array-method-boxes-properly\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":2406,"author":{"gitId":"sopa301"},"content":" \"is-string\": \"^1.0.7\"","isFullCredit":false},{"lineNumber":2407,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2408,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2409,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":2410,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2411,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2412,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":2413,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2414,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2415,"author":{"gitId":"sopa301"},"content":" \"node_modules/array.prototype.findlastindex\": {","isFullCredit":false},{"lineNumber":2416,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.4\",","isFullCredit":false},{"lineNumber":2417,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2418,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2419,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2420,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":2421,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":2422,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.22.3\",","isFullCredit":false},{"lineNumber":2423,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":2424,"author":{"gitId":"sopa301"},"content":" \"es-shim-unscopables\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":2425,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2426,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2427,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":2428,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2429,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2430,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":2431,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2432,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2433,"author":{"gitId":"sopa301"},"content":" \"node_modules/array.prototype.flat\": {","isFullCredit":false},{"lineNumber":2434,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.3.2\",","isFullCredit":false},{"lineNumber":2435,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2436,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2437,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2438,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":2439,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":2440,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.22.1\",","isFullCredit":false},{"lineNumber":2441,"author":{"gitId":"sopa301"},"content":" \"es-shim-unscopables\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":2442,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2443,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2444,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":2445,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2446,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2447,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":2448,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2449,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2450,"author":{"gitId":"sopa301"},"content":" \"node_modules/array.prototype.flatmap\": {","isFullCredit":false},{"lineNumber":2451,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.3.2\",","isFullCredit":false},{"lineNumber":2452,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2453,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2454,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2455,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":2456,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":2457,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.22.1\",","isFullCredit":false},{"lineNumber":2458,"author":{"gitId":"sopa301"},"content":" \"es-shim-unscopables\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":2459,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2460,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2461,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":2462,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2463,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2464,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":2465,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2466,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2467,"author":{"gitId":"sopa301"},"content":" \"node_modules/arraybuffer.prototype.slice\": {","isFullCredit":false},{"lineNumber":2468,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":2469,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2470,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2471,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2472,"author":{"gitId":"sopa301"},"content":" \"array-buffer-byte-length\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":2473,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":2474,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":2475,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.22.3\",","isFullCredit":false},{"lineNumber":2476,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":2477,"author":{"gitId":"sopa301"},"content":" \"get-intrinsic\": \"^1.2.3\",","isFullCredit":false},{"lineNumber":2478,"author":{"gitId":"sopa301"},"content":" \"is-array-buffer\": \"^3.0.4\",","isFullCredit":false},{"lineNumber":2479,"author":{"gitId":"sopa301"},"content":" \"is-shared-array-buffer\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":2480,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2481,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2482,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":2483,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2484,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2485,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":2486,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2487,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2488,"author":{"gitId":"sopa301"},"content":" \"node_modules/asap\": {","isFullCredit":false},{"lineNumber":2489,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.6\",","isFullCredit":false},{"lineNumber":2490,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2491,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2492,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2493,"author":{"gitId":"sopa301"},"content":" \"node_modules/assert-never\": {","isFullCredit":false},{"lineNumber":2494,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":2495,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2496,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2497,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2498,"author":{"gitId":"sopa301"},"content":" \"node_modules/astral-regex\": {","isFullCredit":false},{"lineNumber":2499,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":2500,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2501,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2502,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2503,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":2504,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2505,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2506,"author":{"gitId":"sopa301"},"content":" \"node_modules/available-typed-arrays\": {","isFullCredit":false},{"lineNumber":2507,"author":{"gitId":"-"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":2508,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2509,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2510,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2511,"author":{"gitId":"sopa301"},"content":" \"possible-typed-array-names\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":2512,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2513,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2514,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":2515,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2516,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2517,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":2518,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2519,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2520,"author":{"gitId":"sopa301"},"content":" \"node_modules/babel-runtime\": {","isFullCredit":false},{"lineNumber":2521,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.26.0\",","isFullCredit":false},{"lineNumber":2522,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2523,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2524,"author":{"gitId":"sopa301"},"content":" \"core-js\": \"^2.4.0\",","isFullCredit":false},{"lineNumber":2525,"author":{"gitId":"sopa301"},"content":" \"regenerator-runtime\": \"^0.11.0\"","isFullCredit":false},{"lineNumber":2526,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2527,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2528,"author":{"gitId":"sopa301"},"content":" \"node_modules/babel-runtime/node_modules/core-js\": {","isFullCredit":false},{"lineNumber":2529,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.6.12\",","isFullCredit":false},{"lineNumber":2530,"author":{"gitId":"sopa301"},"content":" \"hasInstallScript\": true,","isFullCredit":false},{"lineNumber":2531,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2532,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2533,"author":{"gitId":"sopa301"},"content":" \"node_modules/babel-runtime/node_modules/regenerator-runtime\": {","isFullCredit":false},{"lineNumber":2534,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.11.1\",","isFullCredit":false},{"lineNumber":2535,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2536,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2537,"author":{"gitId":"sopa301"},"content":" \"node_modules/babel-types\": {","isFullCredit":false},{"lineNumber":2538,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.26.0\",","isFullCredit":false},{"lineNumber":2539,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2540,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2541,"author":{"gitId":"sopa301"},"content":" \"babel-runtime\": \"^6.26.0\",","isFullCredit":false},{"lineNumber":2542,"author":{"gitId":"sopa301"},"content":" \"esutils\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":2543,"author":{"gitId":"sopa301"},"content":" \"lodash\": \"^4.17.4\",","isFullCredit":false},{"lineNumber":2544,"author":{"gitId":"sopa301"},"content":" \"to-fast-properties\": \"^1.0.3\"","isFullCredit":false},{"lineNumber":2545,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2546,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2547,"author":{"gitId":"sopa301"},"content":" \"node_modules/babel-types/node_modules/to-fast-properties\": {","isFullCredit":false},{"lineNumber":2548,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":2549,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2550,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2551,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":2552,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2553,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2554,"author":{"gitId":"sopa301"},"content":" \"node_modules/babel-walk\": {","isFullCredit":false},{"lineNumber":2555,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0-canary-5\",","isFullCredit":false},{"lineNumber":2556,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2557,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2558,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2559,"author":{"gitId":"sopa301"},"content":" \"@babel/types\": \"^7.9.6\"","isFullCredit":false},{"lineNumber":2560,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2561,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2562,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 10.0.0\"","isFullCredit":false},{"lineNumber":2563,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2564,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2565,"author":{"gitId":"sopa301"},"content":" \"node_modules/babylon\": {","isFullCredit":false},{"lineNumber":2566,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.18.0\",","isFullCredit":false},{"lineNumber":2567,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2568,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":2569,"author":{"gitId":"sopa301"},"content":" \"babylon\": \"bin/babylon.js\"","isFullCredit":false},{"lineNumber":2570,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":2571,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2572,"author":{"gitId":"sopa301"},"content":" \"node_modules/balanced-match\": {","isFullCredit":false},{"lineNumber":2573,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":2574,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2575,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2576,"author":{"gitId":"sopa301"},"content":" \"node_modules/binary-extensions\": {","isFullCredit":false},{"lineNumber":2577,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":2578,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":2579,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2580,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2581,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":2582,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2583,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2584,"author":{"gitId":"sopa301"},"content":" \"node_modules/boolbase\": {","isFullCredit":false},{"lineNumber":2585,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2586,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":2587,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2588,"author":{"gitId":"sopa301"},"content":" \"node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":2589,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":2590,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2591,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2592,"author":{"gitId":"sopa301"},"content":" \"balanced-match\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":2593,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":2594,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2595,"author":{"gitId":"sopa301"},"content":" \"node_modules/braces\": {","isFullCredit":false},{"lineNumber":2596,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.2\",","isFullCredit":false},{"lineNumber":2597,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":2598,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2599,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2600,"author":{"gitId":"sopa301"},"content":" \"fill-range\": \"^7.0.1\"","isFullCredit":false},{"lineNumber":2601,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2602,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2603,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":2604,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2605,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2606,"author":{"gitId":"sopa301"},"content":" \"node_modules/browserslist\": {","isFullCredit":false},{"lineNumber":2607,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.21.4\",","isFullCredit":false},{"lineNumber":2608,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2609,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":2610,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":2611,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":2612,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/browserslist\"","isFullCredit":false},{"lineNumber":2613,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2614,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":2615,"author":{"gitId":"sopa301"},"content":" \"type\": \"tidelift\",","isFullCredit":false},{"lineNumber":2616,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"","isFullCredit":false},{"lineNumber":2617,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":2618,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":2619,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2620,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":2621,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2622,"author":{"gitId":"sopa301"},"content":" \"caniuse-lite\": \"^1.0.30001400\",","isFullCredit":false},{"lineNumber":2623,"author":{"gitId":"sopa301"},"content":" \"electron-to-chromium\": \"^1.4.251\",","isFullCredit":false},{"lineNumber":2624,"author":{"gitId":"sopa301"},"content":" \"node-releases\": \"^2.0.6\",","isFullCredit":false},{"lineNumber":2625,"author":{"gitId":"sopa301"},"content":" \"update-browserslist-db\": \"^1.0.9\"","isFullCredit":false},{"lineNumber":2626,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2627,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":2628,"author":{"gitId":"sopa301"},"content":" \"browserslist\": \"cli.js\"","isFullCredit":false},{"lineNumber":2629,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2630,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2631,"author":{"gitId":"sopa301"},"content":" \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || \u003e\u003d13.7\"","isFullCredit":false},{"lineNumber":2632,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2633,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2634,"author":{"gitId":"sopa301"},"content":" \"node_modules/buffer-from\": {","isFullCredit":false},{"lineNumber":2635,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.2\",","isFullCredit":false},{"lineNumber":2636,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":2637,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2638,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":2639,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2640,"author":{"gitId":"sopa301"},"content":" \"node_modules/call-bind\": {","isFullCredit":false},{"lineNumber":2641,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":2642,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2643,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2644,"author":{"gitId":"sopa301"},"content":" \"es-define-property\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":2645,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":2646,"author":{"gitId":"sopa301"},"content":" \"function-bind\": \"^1.1.2\",","isFullCredit":false},{"lineNumber":2647,"author":{"gitId":"sopa301"},"content":" \"get-intrinsic\": \"^1.2.4\",","isFullCredit":false},{"lineNumber":2648,"author":{"gitId":"sopa301"},"content":" \"set-function-length\": \"^1.2.1\"","isFullCredit":false},{"lineNumber":2649,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2650,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2651,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":2652,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2653,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2654,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":2655,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2656,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2657,"author":{"gitId":"sopa301"},"content":" \"node_modules/callsites\": {","isFullCredit":false},{"lineNumber":2658,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":2659,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2660,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2661,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2662,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":2663,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2664,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2665,"author":{"gitId":"sopa301"},"content":" \"node_modules/caniuse-lite\": {","isFullCredit":false},{"lineNumber":2666,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.30001446\",","isFullCredit":false},{"lineNumber":2667,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2668,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":2669,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":2670,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":2671,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/browserslist\"","isFullCredit":false},{"lineNumber":2672,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2673,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":2674,"author":{"gitId":"sopa301"},"content":" \"type\": \"tidelift\",","isFullCredit":false},{"lineNumber":2675,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"","isFullCredit":false},{"lineNumber":2676,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":2677,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":2678,"author":{"gitId":"sopa301"},"content":" \"license\": \"CC-BY-4.0\",","isFullCredit":false},{"lineNumber":2679,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":2680,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2681,"author":{"gitId":"sopa301"},"content":" \"node_modules/chalk\": {","isFullCredit":false},{"lineNumber":2682,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.4.2\",","isFullCredit":false},{"lineNumber":2683,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2684,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2685,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2686,"author":{"gitId":"sopa301"},"content":" \"ansi-styles\": \"^3.2.1\",","isFullCredit":false},{"lineNumber":2687,"author":{"gitId":"sopa301"},"content":" \"escape-string-regexp\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":2688,"author":{"gitId":"sopa301"},"content":" \"supports-color\": \"^5.3.0\"","isFullCredit":false},{"lineNumber":2689,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2690,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2691,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":2692,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2693,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2694,"author":{"gitId":"sopa301"},"content":" \"node_modules/character-parser\": {","isFullCredit":false},{"lineNumber":2695,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":2696,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2697,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2698,"author":{"gitId":"sopa301"},"content":" \"is-regex\": \"^1.0.3\"","isFullCredit":false},{"lineNumber":2699,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":2700,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2701,"author":{"gitId":"sopa301"},"content":" \"node_modules/cheerio\": {","isFullCredit":false},{"lineNumber":2702,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0-rc.12\",","isFullCredit":false},{"lineNumber":2703,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2704,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2705,"author":{"gitId":"sopa301"},"content":" \"cheerio-select\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":2706,"author":{"gitId":"sopa301"},"content":" \"dom-serializer\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":2707,"author":{"gitId":"sopa301"},"content":" \"domhandler\": \"^5.0.3\",","isFullCredit":false},{"lineNumber":2708,"author":{"gitId":"sopa301"},"content":" \"domutils\": \"^3.0.1\",","isFullCredit":false},{"lineNumber":2709,"author":{"gitId":"sopa301"},"content":" \"htmlparser2\": \"^8.0.1\",","isFullCredit":false},{"lineNumber":2710,"author":{"gitId":"sopa301"},"content":" \"parse5\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":2711,"author":{"gitId":"sopa301"},"content":" \"parse5-htmlparser2-tree-adapter\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":2712,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2713,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2714,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":2715,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2716,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2717,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/cheeriojs/cheerio?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":2718,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2719,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2720,"author":{"gitId":"sopa301"},"content":" \"node_modules/cheerio-select\": {","isFullCredit":false},{"lineNumber":2721,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":2722,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":2723,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2724,"author":{"gitId":"sopa301"},"content":" \"boolbase\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":2725,"author":{"gitId":"sopa301"},"content":" \"css-select\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":2726,"author":{"gitId":"sopa301"},"content":" \"css-what\": \"^6.1.0\",","isFullCredit":false},{"lineNumber":2727,"author":{"gitId":"sopa301"},"content":" \"domelementtype\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":2728,"author":{"gitId":"sopa301"},"content":" \"domhandler\": \"^5.0.3\",","isFullCredit":false},{"lineNumber":2729,"author":{"gitId":"sopa301"},"content":" \"domutils\": \"^3.0.1\"","isFullCredit":false},{"lineNumber":2730,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2731,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2732,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/fb55\"","isFullCredit":false},{"lineNumber":2733,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":2734,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2735,"author":{"gitId":"sopa301"},"content":" \"node_modules/cheerio/node_modules/parse5\": {","isFullCredit":false},{"lineNumber":2736,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.1.2\",","isFullCredit":false},{"lineNumber":2737,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2738,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2739,"author":{"gitId":"sopa301"},"content":" \"entities\": \"^4.4.0\"","isFullCredit":false},{"lineNumber":2740,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2741,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2742,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/inikulin/parse5?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":2743,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2744,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2745,"author":{"gitId":"sopa301"},"content":" \"node_modules/cheerio/node_modules/parse5-htmlparser2-tree-adapter\": {","isFullCredit":false},{"lineNumber":2746,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.0.0\",","isFullCredit":false},{"lineNumber":2747,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2748,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2749,"author":{"gitId":"sopa301"},"content":" \"domhandler\": \"^5.0.2\",","isFullCredit":false},{"lineNumber":2750,"author":{"gitId":"sopa301"},"content":" \"parse5\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":2751,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2752,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2753,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/inikulin/parse5?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":2754,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2755,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2756,"author":{"gitId":"sopa301"},"content":" \"node_modules/chokidar\": {","isFullCredit":false},{"lineNumber":2757,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.6.0\",","isFullCredit":false},{"lineNumber":2758,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz\",","isFullCredit":false},{"lineNumber":2759,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2760,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":2761,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2762,"author":{"gitId":"sopa301"},"content":" \"anymatch\": \"~3.1.2\",","isFullCredit":false},{"lineNumber":2763,"author":{"gitId":"sopa301"},"content":" \"braces\": \"~3.0.2\",","isFullCredit":false},{"lineNumber":2764,"author":{"gitId":"sopa301"},"content":" \"glob-parent\": \"~5.1.2\",","isFullCredit":false},{"lineNumber":2765,"author":{"gitId":"sopa301"},"content":" \"is-binary-path\": \"~2.1.0\",","isFullCredit":false},{"lineNumber":2766,"author":{"gitId":"sopa301"},"content":" \"is-glob\": \"~4.0.1\",","isFullCredit":false},{"lineNumber":2767,"author":{"gitId":"sopa301"},"content":" \"normalize-path\": \"~3.0.0\",","isFullCredit":false},{"lineNumber":2768,"author":{"gitId":"sopa301"},"content":" \"readdirp\": \"~3.6.0\"","isFullCredit":false},{"lineNumber":2769,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2770,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2771,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 8.10.0\"","isFullCredit":false},{"lineNumber":2772,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2773,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2774,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://paulmillr.com/funding/\"","isFullCredit":false},{"lineNumber":2775,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2776,"author":{"gitId":"sopa301"},"content":" \"optionalDependencies\": {","isFullCredit":false},{"lineNumber":2777,"author":{"gitId":"sopa301"},"content":" \"fsevents\": \"~2.3.2\"","isFullCredit":false},{"lineNumber":2778,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2779,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2780,"author":{"gitId":"sopa301"},"content":" \"node_modules/chokidar/node_modules/glob-parent\": {","isFullCredit":false},{"lineNumber":2781,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.1.2\",","isFullCredit":false},{"lineNumber":2782,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":2783,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":2784,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2785,"author":{"gitId":"sopa301"},"content":" \"is-glob\": \"^4.0.1\"","isFullCredit":false},{"lineNumber":2786,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2787,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2788,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":2789,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2790,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2791,"author":{"gitId":"sopa301"},"content":" \"node_modules/chrome-trace-event\": {","isFullCredit":false},{"lineNumber":2792,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":2793,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2794,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2795,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":2796,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2797,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6.0\"","isFullCredit":false},{"lineNumber":2798,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2799,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2800,"author":{"gitId":"sopa301"},"content":" \"node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":2801,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.9.3\",","isFullCredit":false},{"lineNumber":2802,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2803,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2804,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2805,"author":{"gitId":"sopa301"},"content":" \"color-name\": \"1.1.3\"","isFullCredit":false},{"lineNumber":2806,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2807,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2808,"author":{"gitId":"sopa301"},"content":" \"node_modules/color-name\": {","isFullCredit":false},{"lineNumber":2809,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.3\",","isFullCredit":false},{"lineNumber":2810,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2811,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2812,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2813,"author":{"gitId":"sopa301"},"content":" \"node_modules/colord\": {","isFullCredit":false},{"lineNumber":2814,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.9.3\",","isFullCredit":false},{"lineNumber":2815,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2816,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2817,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2818,"author":{"gitId":"sopa301"},"content":" \"node_modules/concat-map\": {","isFullCredit":false},{"lineNumber":2819,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.0.1\",","isFullCredit":false},{"lineNumber":2820,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2821,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2822,"author":{"gitId":"sopa301"},"content":" \"node_modules/confusing-browser-globals\": {","isFullCredit":false},{"lineNumber":2823,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.11\",","isFullCredit":false},{"lineNumber":2824,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2825,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2826,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2827,"author":{"gitId":"sopa301"},"content":" \"node_modules/constantinople\": {","isFullCredit":false},{"lineNumber":2828,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.1\",","isFullCredit":false},{"lineNumber":2829,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2830,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2831,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2832,"author":{"gitId":"sopa301"},"content":" \"@babel/parser\": \"^7.6.0\",","isFullCredit":false},{"lineNumber":2833,"author":{"gitId":"sopa301"},"content":" \"@babel/types\": \"^7.6.1\"","isFullCredit":false},{"lineNumber":2834,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2835,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2836,"author":{"gitId":"sopa301"},"content":" \"node_modules/core-util-is\": {","isFullCredit":false},{"lineNumber":2837,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":2838,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2839,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2840,"author":{"gitId":"sopa301"},"content":" \"node_modules/cross-spawn\": {","isFullCredit":false},{"lineNumber":2841,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.0.3\",","isFullCredit":false},{"lineNumber":2842,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2843,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2844,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2845,"author":{"gitId":"sopa301"},"content":" \"path-key\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":2846,"author":{"gitId":"sopa301"},"content":" \"shebang-command\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":2847,"author":{"gitId":"sopa301"},"content":" \"which\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":2848,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2849,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2850,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":2851,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2852,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2853,"author":{"gitId":"sopa301"},"content":" \"node_modules/css-functions-list\": {","isFullCredit":false},{"lineNumber":2854,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.2.1\",","isFullCredit":false},{"lineNumber":2855,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz\",","isFullCredit":false},{"lineNumber":2856,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2857,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2858,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2859,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12 || \u003e\u003d16\"","isFullCredit":false},{"lineNumber":2860,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2861,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2862,"author":{"gitId":"sopa301"},"content":" \"node_modules/css-select\": {","isFullCredit":false},{"lineNumber":2863,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":2864,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":2865,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2866,"author":{"gitId":"sopa301"},"content":" \"boolbase\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":2867,"author":{"gitId":"sopa301"},"content":" \"css-what\": \"^6.1.0\",","isFullCredit":false},{"lineNumber":2868,"author":{"gitId":"sopa301"},"content":" \"domhandler\": \"^5.0.2\",","isFullCredit":false},{"lineNumber":2869,"author":{"gitId":"sopa301"},"content":" \"domutils\": \"^3.0.1\",","isFullCredit":false},{"lineNumber":2870,"author":{"gitId":"sopa301"},"content":" \"nth-check\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":2871,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2872,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2873,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/fb55\"","isFullCredit":false},{"lineNumber":2874,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2875,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2876,"author":{"gitId":"sopa301"},"content":" \"node_modules/css-selector-parser\": {","isFullCredit":false},{"lineNumber":2877,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.4.1\",","isFullCredit":false},{"lineNumber":2878,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2879,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2880,"author":{"gitId":"sopa301"},"content":" \"node_modules/css-what\": {","isFullCredit":false},{"lineNumber":2881,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.1.0\",","isFullCredit":false},{"lineNumber":2882,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":2883,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2884,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":2885,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2886,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2887,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/fb55\"","isFullCredit":false},{"lineNumber":2888,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2889,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2890,"author":{"gitId":"sopa301"},"content":" \"node_modules/cssesc\": {","isFullCredit":false},{"lineNumber":2891,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":2892,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2893,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2894,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":2895,"author":{"gitId":"sopa301"},"content":" \"cssesc\": \"bin/cssesc\"","isFullCredit":false},{"lineNumber":2896,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2897,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2898,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":2899,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2900,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2901,"author":{"gitId":"sopa301"},"content":" \"node_modules/csstype\": {","isFullCredit":false},{"lineNumber":2902,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.3\",","isFullCredit":false},{"lineNumber":2903,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2904,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2905,"author":{"gitId":"sopa301"},"content":" \"node_modules/debug\": {","isFullCredit":false},{"lineNumber":2906,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.4\",","isFullCredit":false},{"lineNumber":2907,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2908,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2909,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2910,"author":{"gitId":"sopa301"},"content":" \"ms\": \"2.1.2\"","isFullCredit":false},{"lineNumber":2911,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2912,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2913,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6.0\"","isFullCredit":false},{"lineNumber":2914,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2915,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":2916,"author":{"gitId":"sopa301"},"content":" \"supports-color\": {","isFullCredit":false},{"lineNumber":2917,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":2918,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2919,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2920,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2921,"author":{"gitId":"sopa301"},"content":" \"node_modules/deep-is\": {","isFullCredit":false},{"lineNumber":2922,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.1.4\",","isFullCredit":false},{"lineNumber":2923,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2924,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2925,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2926,"author":{"gitId":"sopa301"},"content":" \"node_modules/define-data-property\": {","isFullCredit":false},{"lineNumber":2927,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":2928,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2929,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2930,"author":{"gitId":"sopa301"},"content":" \"es-define-property\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":2931,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":2932,"author":{"gitId":"sopa301"},"content":" \"gopd\": \"^1.0.1\"","isFullCredit":false},{"lineNumber":2933,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2934,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2935,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":2936,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2937,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2938,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":2939,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2940,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2941,"author":{"gitId":"sopa301"},"content":" \"node_modules/define-properties\": {","isFullCredit":false},{"lineNumber":2942,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":2943,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2944,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2945,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2946,"author":{"gitId":"sopa301"},"content":" \"define-data-property\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":2947,"author":{"gitId":"sopa301"},"content":" \"has-property-descriptors\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":2948,"author":{"gitId":"sopa301"},"content":" \"object-keys\": \"^1.1.1\"","isFullCredit":false},{"lineNumber":2949,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2950,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2951,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":2952,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2953,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2954,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":2955,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2956,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2957,"author":{"gitId":"sopa301"},"content":" \"node_modules/dir-glob\": {","isFullCredit":false},{"lineNumber":2958,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":2959,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2960,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2961,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2962,"author":{"gitId":"sopa301"},"content":" \"path-type\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":2963,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2964,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2965,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":2966,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2967,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2968,"author":{"gitId":"sopa301"},"content":" \"node_modules/doctrine\": {","isFullCredit":false},{"lineNumber":2969,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":2970,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2971,"author":{"gitId":"sopa301"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":2972,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2973,"author":{"gitId":"sopa301"},"content":" \"esutils\": \"^2.0.2\"","isFullCredit":false},{"lineNumber":2974,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2975,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2976,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":2977,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2978,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2979,"author":{"gitId":"sopa301"},"content":" \"node_modules/doctypes\": {","isFullCredit":false},{"lineNumber":2980,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.0\",","isFullCredit":false},{"lineNumber":2981,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2982,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2983,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":2984,"author":{"gitId":"sopa301"},"content":" \"node_modules/dom-serializer\": {","isFullCredit":false},{"lineNumber":2985,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":2986,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2987,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2988,"author":{"gitId":"sopa301"},"content":" \"domelementtype\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":2989,"author":{"gitId":"sopa301"},"content":" \"domhandler\": \"^5.0.2\",","isFullCredit":false},{"lineNumber":2990,"author":{"gitId":"sopa301"},"content":" \"entities\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":2991,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2992,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2993,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/cheeriojs/dom-serializer?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":2994,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2995,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2996,"author":{"gitId":"sopa301"},"content":" \"node_modules/domelementtype\": {","isFullCredit":false},{"lineNumber":2997,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":2998,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":2999,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":3000,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":3001,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/fb55\"","isFullCredit":false},{"lineNumber":3002,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":3003,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":3004,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\"","isFullCredit":false},{"lineNumber":3005,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3006,"author":{"gitId":"sopa301"},"content":" \"node_modules/domhandler\": {","isFullCredit":false},{"lineNumber":3007,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.3\",","isFullCredit":false},{"lineNumber":3008,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":3009,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3010,"author":{"gitId":"sopa301"},"content":" \"domelementtype\": \"^2.3.0\"","isFullCredit":false},{"lineNumber":3011,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3012,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3013,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 4\"","isFullCredit":false},{"lineNumber":3014,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3015,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3016,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/fb55/domhandler?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":3017,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3018,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3019,"author":{"gitId":"sopa301"},"content":" \"node_modules/domutils\": {","isFullCredit":false},{"lineNumber":3020,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":3021,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":3022,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3023,"author":{"gitId":"sopa301"},"content":" \"dom-serializer\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":3024,"author":{"gitId":"sopa301"},"content":" \"domelementtype\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":3025,"author":{"gitId":"sopa301"},"content":" \"domhandler\": \"^5.0.1\"","isFullCredit":false},{"lineNumber":3026,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3027,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3028,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/fb55/domutils?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":3029,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3030,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3031,"author":{"gitId":"sopa301"},"content":" \"node_modules/electron-to-chromium\": {","isFullCredit":false},{"lineNumber":3032,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.4.284\",","isFullCredit":false},{"lineNumber":3033,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3034,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":3035,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":3036,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3037,"author":{"gitId":"sopa301"},"content":" \"node_modules/emoji-regex\": {","isFullCredit":false},{"lineNumber":3038,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.0.0\",","isFullCredit":false},{"lineNumber":3039,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3040,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3041,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3042,"author":{"gitId":"sopa301"},"content":" \"node_modules/enhanced-resolve\": {","isFullCredit":false},{"lineNumber":3043,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.12.0\",","isFullCredit":false},{"lineNumber":3044,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3045,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3046,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":3047,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3048,"author":{"gitId":"sopa301"},"content":" \"graceful-fs\": \"^4.2.4\",","isFullCredit":false},{"lineNumber":3049,"author":{"gitId":"sopa301"},"content":" \"tapable\": \"^2.2.0\"","isFullCredit":false},{"lineNumber":3050,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3051,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3052,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10.13.0\"","isFullCredit":false},{"lineNumber":3053,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3054,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3055,"author":{"gitId":"sopa301"},"content":" \"node_modules/enhanced-resolve/node_modules/tapable\": {","isFullCredit":false},{"lineNumber":3056,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.2.1\",","isFullCredit":false},{"lineNumber":3057,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3058,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3059,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":3060,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3061,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":3062,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3063,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3064,"author":{"gitId":"sopa301"},"content":" \"node_modules/entities\": {","isFullCredit":false},{"lineNumber":3065,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.5.0\",","isFullCredit":false},{"lineNumber":3066,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":3067,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3068,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.12\"","isFullCredit":false},{"lineNumber":3069,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3070,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3071,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/fb55/entities?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":3072,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3073,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3074,"author":{"gitId":"sopa301"},"content":" \"node_modules/env-paths\": {","isFullCredit":false},{"lineNumber":3075,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.2.1\",","isFullCredit":false},{"lineNumber":3076,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz\",","isFullCredit":false},{"lineNumber":3077,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A\u003d\u003d\",","isFullCredit":false},{"lineNumber":3078,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3079,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3080,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":3081,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3082,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3083,"author":{"gitId":"sopa301"},"content":" \"node_modules/error-ex\": {","isFullCredit":false},{"lineNumber":3084,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.3.2\",","isFullCredit":false},{"lineNumber":3085,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3086,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3087,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3088,"author":{"gitId":"sopa301"},"content":" \"is-arrayish\": \"^0.2.1\"","isFullCredit":false},{"lineNumber":3089,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3090,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3091,"author":{"gitId":"sopa301"},"content":" \"node_modules/es-abstract\": {","isFullCredit":false},{"lineNumber":3092,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.22.5\",","isFullCredit":false},{"lineNumber":3093,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3094,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3095,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3096,"author":{"gitId":"sopa301"},"content":" \"array-buffer-byte-length\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":3097,"author":{"gitId":"sopa301"},"content":" \"arraybuffer.prototype.slice\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":3098,"author":{"gitId":"sopa301"},"content":" \"available-typed-arrays\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":3099,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":3100,"author":{"gitId":"sopa301"},"content":" \"es-define-property\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":3101,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":3102,"author":{"gitId":"sopa301"},"content":" \"es-set-tostringtag\": \"^2.0.3\",","isFullCredit":false},{"lineNumber":3103,"author":{"gitId":"sopa301"},"content":" \"es-to-primitive\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":3104,"author":{"gitId":"sopa301"},"content":" \"function.prototype.name\": \"^1.1.6\",","isFullCredit":false},{"lineNumber":3105,"author":{"gitId":"sopa301"},"content":" \"get-intrinsic\": \"^1.2.4\",","isFullCredit":false},{"lineNumber":3106,"author":{"gitId":"sopa301"},"content":" \"get-symbol-description\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":3107,"author":{"gitId":"sopa301"},"content":" \"globalthis\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":3108,"author":{"gitId":"sopa301"},"content":" \"gopd\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":3109,"author":{"gitId":"sopa301"},"content":" \"has-property-descriptors\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":3110,"author":{"gitId":"sopa301"},"content":" \"has-proto\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":3111,"author":{"gitId":"sopa301"},"content":" \"has-symbols\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":3112,"author":{"gitId":"sopa301"},"content":" \"hasown\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":3113,"author":{"gitId":"sopa301"},"content":" \"internal-slot\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":3114,"author":{"gitId":"sopa301"},"content":" \"is-array-buffer\": \"^3.0.4\",","isFullCredit":false},{"lineNumber":3115,"author":{"gitId":"sopa301"},"content":" \"is-callable\": \"^1.2.7\",","isFullCredit":false},{"lineNumber":3116,"author":{"gitId":"sopa301"},"content":" \"is-negative-zero\": \"^2.0.3\",","isFullCredit":false},{"lineNumber":3117,"author":{"gitId":"sopa301"},"content":" \"is-regex\": \"^1.1.4\",","isFullCredit":false},{"lineNumber":3118,"author":{"gitId":"sopa301"},"content":" \"is-shared-array-buffer\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":3119,"author":{"gitId":"sopa301"},"content":" \"is-string\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":3120,"author":{"gitId":"sopa301"},"content":" \"is-typed-array\": \"^1.1.13\",","isFullCredit":false},{"lineNumber":3121,"author":{"gitId":"sopa301"},"content":" \"is-weakref\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":3122,"author":{"gitId":"sopa301"},"content":" \"object-inspect\": \"^1.13.1\",","isFullCredit":false},{"lineNumber":3123,"author":{"gitId":"sopa301"},"content":" \"object-keys\": \"^1.1.1\",","isFullCredit":false},{"lineNumber":3124,"author":{"gitId":"sopa301"},"content":" \"object.assign\": \"^4.1.5\",","isFullCredit":false},{"lineNumber":3125,"author":{"gitId":"sopa301"},"content":" \"regexp.prototype.flags\": \"^1.5.2\",","isFullCredit":false},{"lineNumber":3126,"author":{"gitId":"sopa301"},"content":" \"safe-array-concat\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":3127,"author":{"gitId":"sopa301"},"content":" \"safe-regex-test\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":3128,"author":{"gitId":"sopa301"},"content":" \"string.prototype.trim\": \"^1.2.8\",","isFullCredit":false},{"lineNumber":3129,"author":{"gitId":"sopa301"},"content":" \"string.prototype.trimend\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":3130,"author":{"gitId":"sopa301"},"content":" \"string.prototype.trimstart\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":3131,"author":{"gitId":"sopa301"},"content":" \"typed-array-buffer\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":3132,"author":{"gitId":"sopa301"},"content":" \"typed-array-byte-length\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":3133,"author":{"gitId":"sopa301"},"content":" \"typed-array-byte-offset\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":3134,"author":{"gitId":"sopa301"},"content":" \"typed-array-length\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":3135,"author":{"gitId":"sopa301"},"content":" \"unbox-primitive\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":3136,"author":{"gitId":"sopa301"},"content":" \"which-typed-array\": \"^1.1.14\"","isFullCredit":false},{"lineNumber":3137,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3138,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3139,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":3140,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3141,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3142,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":3143,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3144,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3145,"author":{"gitId":"sopa301"},"content":" \"node_modules/es-array-method-boxes-properly\": {","isFullCredit":false},{"lineNumber":3146,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":3147,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3148,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3149,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3150,"author":{"gitId":"sopa301"},"content":" \"node_modules/es-define-property\": {","isFullCredit":false},{"lineNumber":3151,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":3152,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3153,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3154,"author":{"gitId":"sopa301"},"content":" \"get-intrinsic\": \"^1.2.4\"","isFullCredit":false},{"lineNumber":3155,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3156,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3157,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":3158,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3159,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3160,"author":{"gitId":"sopa301"},"content":" \"node_modules/es-errors\": {","isFullCredit":false},{"lineNumber":3161,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.3.0\",","isFullCredit":false},{"lineNumber":3162,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3163,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3164,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":3165,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3166,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3167,"author":{"gitId":"sopa301"},"content":" \"node_modules/es-module-lexer\": {","isFullCredit":false},{"lineNumber":3168,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.9.3\",","isFullCredit":false},{"lineNumber":3169,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3170,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3171,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":3172,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3173,"author":{"gitId":"sopa301"},"content":" \"node_modules/es-set-tostringtag\": {","isFullCredit":false},{"lineNumber":3174,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.3\",","isFullCredit":false},{"lineNumber":3175,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3176,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3177,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3178,"author":{"gitId":"sopa301"},"content":" \"get-intrinsic\": \"^1.2.4\",","isFullCredit":false},{"lineNumber":3179,"author":{"gitId":"sopa301"},"content":" \"has-tostringtag\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":3180,"author":{"gitId":"sopa301"},"content":" \"hasown\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":3181,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3182,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3183,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":3184,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3185,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3186,"author":{"gitId":"sopa301"},"content":" \"node_modules/es-shim-unscopables\": {","isFullCredit":false},{"lineNumber":3187,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":3188,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3189,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3190,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3191,"author":{"gitId":"sopa301"},"content":" \"hasown\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":3192,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3193,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3194,"author":{"gitId":"sopa301"},"content":" \"node_modules/es-to-primitive\": {","isFullCredit":false},{"lineNumber":3195,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":3196,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3197,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3198,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3199,"author":{"gitId":"sopa301"},"content":" \"is-callable\": \"^1.1.4\",","isFullCredit":false},{"lineNumber":3200,"author":{"gitId":"sopa301"},"content":" \"is-date-object\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":3201,"author":{"gitId":"sopa301"},"content":" \"is-symbol\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":3202,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3203,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3204,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":3205,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3206,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3207,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":3208,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3209,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3210,"author":{"gitId":"sopa301"},"content":" \"node_modules/esbuild\": {","isFullCredit":false},{"lineNumber":3211,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3212,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":3213,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g\u003d\u003d\",","isFullCredit":false},{"lineNumber":3214,"author":{"gitId":"sopa301"},"content":" \"hasInstallScript\": true,","isFullCredit":false},{"lineNumber":3215,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":3216,"author":{"gitId":"sopa301"},"content":" \"esbuild\": \"bin/esbuild\"","isFullCredit":false},{"lineNumber":3217,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3218,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3219,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":3220,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3221,"author":{"gitId":"sopa301"},"content":" \"optionalDependencies\": {","isFullCredit":false},{"lineNumber":3222,"author":{"gitId":"sopa301"},"content":" \"@esbuild/aix-ppc64\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3223,"author":{"gitId":"sopa301"},"content":" \"@esbuild/android-arm\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3224,"author":{"gitId":"sopa301"},"content":" \"@esbuild/android-arm64\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3225,"author":{"gitId":"sopa301"},"content":" \"@esbuild/android-x64\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3226,"author":{"gitId":"sopa301"},"content":" \"@esbuild/darwin-arm64\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3227,"author":{"gitId":"sopa301"},"content":" \"@esbuild/darwin-x64\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3228,"author":{"gitId":"sopa301"},"content":" \"@esbuild/freebsd-arm64\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3229,"author":{"gitId":"sopa301"},"content":" \"@esbuild/freebsd-x64\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3230,"author":{"gitId":"sopa301"},"content":" \"@esbuild/linux-arm\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3231,"author":{"gitId":"sopa301"},"content":" \"@esbuild/linux-arm64\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3232,"author":{"gitId":"sopa301"},"content":" \"@esbuild/linux-ia32\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3233,"author":{"gitId":"sopa301"},"content":" \"@esbuild/linux-loong64\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3234,"author":{"gitId":"sopa301"},"content":" \"@esbuild/linux-mips64el\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3235,"author":{"gitId":"sopa301"},"content":" \"@esbuild/linux-ppc64\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3236,"author":{"gitId":"sopa301"},"content":" \"@esbuild/linux-riscv64\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3237,"author":{"gitId":"sopa301"},"content":" \"@esbuild/linux-s390x\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3238,"author":{"gitId":"sopa301"},"content":" \"@esbuild/linux-x64\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3239,"author":{"gitId":"sopa301"},"content":" \"@esbuild/netbsd-x64\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3240,"author":{"gitId":"sopa301"},"content":" \"@esbuild/openbsd-x64\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3241,"author":{"gitId":"sopa301"},"content":" \"@esbuild/sunos-x64\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3242,"author":{"gitId":"sopa301"},"content":" \"@esbuild/win32-arm64\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3243,"author":{"gitId":"sopa301"},"content":" \"@esbuild/win32-ia32\": \"0.20.2\",","isFullCredit":false},{"lineNumber":3244,"author":{"gitId":"sopa301"},"content":" \"@esbuild/win32-x64\": \"0.20.2\"","isFullCredit":false},{"lineNumber":3245,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3246,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3247,"author":{"gitId":"sopa301"},"content":" \"node_modules/escalade\": {","isFullCredit":false},{"lineNumber":3248,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":3249,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3250,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3251,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":3252,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3253,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":3254,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3255,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3256,"author":{"gitId":"sopa301"},"content":" \"node_modules/escape-string-regexp\": {","isFullCredit":false},{"lineNumber":3257,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":3258,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3259,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3260,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3261,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.8.0\"","isFullCredit":false},{"lineNumber":3262,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3263,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3264,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint\": {","isFullCredit":false},{"lineNumber":3265,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.57.0\",","isFullCredit":false},{"lineNumber":3266,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3267,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3268,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3269,"author":{"gitId":"sopa301"},"content":" \"@eslint-community/eslint-utils\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":3270,"author":{"gitId":"sopa301"},"content":" \"@eslint-community/regexpp\": \"^4.6.1\",","isFullCredit":false},{"lineNumber":3271,"author":{"gitId":"sopa301"},"content":" \"@eslint/eslintrc\": \"^2.1.4\",","isFullCredit":false},{"lineNumber":3272,"author":{"gitId":"sopa301"},"content":" \"@eslint/js\": \"8.57.0\",","isFullCredit":false},{"lineNumber":3273,"author":{"gitId":"sopa301"},"content":" \"@humanwhocodes/config-array\": \"^0.11.14\",","isFullCredit":false},{"lineNumber":3274,"author":{"gitId":"sopa301"},"content":" \"@humanwhocodes/module-importer\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":3275,"author":{"gitId":"sopa301"},"content":" \"@nodelib/fs.walk\": \"^1.2.8\",","isFullCredit":false},{"lineNumber":3276,"author":{"gitId":"sopa301"},"content":" \"@ungap/structured-clone\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":3277,"author":{"gitId":"sopa301"},"content":" \"ajv\": \"^6.12.4\",","isFullCredit":false},{"lineNumber":3278,"author":{"gitId":"sopa301"},"content":" \"chalk\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":3279,"author":{"gitId":"sopa301"},"content":" \"cross-spawn\": \"^7.0.2\",","isFullCredit":false},{"lineNumber":3280,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^4.3.2\",","isFullCredit":false},{"lineNumber":3281,"author":{"gitId":"sopa301"},"content":" \"doctrine\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":3282,"author":{"gitId":"sopa301"},"content":" \"escape-string-regexp\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":3283,"author":{"gitId":"sopa301"},"content":" \"eslint-scope\": \"^7.2.2\",","isFullCredit":false},{"lineNumber":3284,"author":{"gitId":"sopa301"},"content":" \"eslint-visitor-keys\": \"^3.4.3\",","isFullCredit":false},{"lineNumber":3285,"author":{"gitId":"sopa301"},"content":" \"espree\": \"^9.6.1\",","isFullCredit":false},{"lineNumber":3286,"author":{"gitId":"sopa301"},"content":" \"esquery\": \"^1.4.2\",","isFullCredit":false},{"lineNumber":3287,"author":{"gitId":"sopa301"},"content":" \"esutils\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":3288,"author":{"gitId":"sopa301"},"content":" \"fast-deep-equal\": \"^3.1.3\",","isFullCredit":false},{"lineNumber":3289,"author":{"gitId":"sopa301"},"content":" \"file-entry-cache\": \"^6.0.1\",","isFullCredit":false},{"lineNumber":3290,"author":{"gitId":"sopa301"},"content":" \"find-up\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":3291,"author":{"gitId":"sopa301"},"content":" \"glob-parent\": \"^6.0.2\",","isFullCredit":false},{"lineNumber":3292,"author":{"gitId":"sopa301"},"content":" \"globals\": \"^13.19.0\",","isFullCredit":false},{"lineNumber":3293,"author":{"gitId":"sopa301"},"content":" \"graphemer\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":3294,"author":{"gitId":"sopa301"},"content":" \"ignore\": \"^5.2.0\",","isFullCredit":false},{"lineNumber":3295,"author":{"gitId":"sopa301"},"content":" \"imurmurhash\": \"^0.1.4\",","isFullCredit":false},{"lineNumber":3296,"author":{"gitId":"sopa301"},"content":" \"is-glob\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":3297,"author":{"gitId":"sopa301"},"content":" \"is-path-inside\": \"^3.0.3\",","isFullCredit":false},{"lineNumber":3298,"author":{"gitId":"sopa301"},"content":" \"js-yaml\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":3299,"author":{"gitId":"sopa301"},"content":" \"json-stable-stringify-without-jsonify\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":3300,"author":{"gitId":"sopa301"},"content":" \"levn\": \"^0.4.1\",","isFullCredit":false},{"lineNumber":3301,"author":{"gitId":"sopa301"},"content":" \"lodash.merge\": \"^4.6.2\",","isFullCredit":false},{"lineNumber":3302,"author":{"gitId":"sopa301"},"content":" \"minimatch\": \"^3.1.2\",","isFullCredit":false},{"lineNumber":3303,"author":{"gitId":"sopa301"},"content":" \"natural-compare\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":3304,"author":{"gitId":"sopa301"},"content":" \"optionator\": \"^0.9.3\",","isFullCredit":false},{"lineNumber":3305,"author":{"gitId":"sopa301"},"content":" \"strip-ansi\": \"^6.0.1\",","isFullCredit":false},{"lineNumber":3306,"author":{"gitId":"sopa301"},"content":" \"text-table\": \"^0.2.0\"","isFullCredit":false},{"lineNumber":3307,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3308,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":3309,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"bin/eslint.js\"","isFullCredit":false},{"lineNumber":3310,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3311,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3312,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":3313,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3314,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3315,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":3316,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3317,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3318,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-config-airbnb-base\": {","isFullCredit":false},{"lineNumber":3319,"author":{"gitId":"sopa301"},"content":" \"version\": \"15.0.0\",","isFullCredit":false},{"lineNumber":3320,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3321,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3322,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3323,"author":{"gitId":"sopa301"},"content":" \"confusing-browser-globals\": \"^1.0.10\",","isFullCredit":false},{"lineNumber":3324,"author":{"gitId":"sopa301"},"content":" \"object.assign\": \"^4.1.2\",","isFullCredit":false},{"lineNumber":3325,"author":{"gitId":"sopa301"},"content":" \"object.entries\": \"^1.1.5\",","isFullCredit":false},{"lineNumber":3326,"author":{"gitId":"sopa301"},"content":" \"semver\": \"^6.3.0\"","isFullCredit":false},{"lineNumber":3327,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3328,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3329,"author":{"gitId":"sopa301"},"content":" \"node\": \"^10.12.0 || \u003e\u003d12.0.0\"","isFullCredit":false},{"lineNumber":3330,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3331,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3332,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^7.32.0 || ^8.2.0\",","isFullCredit":false},{"lineNumber":3333,"author":{"gitId":"sopa301"},"content":" \"eslint-plugin-import\": \"^2.25.2\"","isFullCredit":false},{"lineNumber":3334,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3335,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3336,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-config-airbnb-typescript\": {","isFullCredit":false},{"lineNumber":3337,"author":{"gitId":"sopa301"},"content":" \"version\": \"18.0.0\",","isFullCredit":false},{"lineNumber":3338,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-18.0.0.tgz\",","isFullCredit":false},{"lineNumber":3339,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-oc+Lxzgzsu8FQyFVa4QFaVKiitTYiiW3frB9KYW5OWdPrqFc7FzxgB20hP4cHMlr+MBzGcLl3jnCOVOydL9mIg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3340,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3341,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3342,"author":{"gitId":"sopa301"},"content":" \"eslint-config-airbnb-base\": \"^15.0.0\"","isFullCredit":false},{"lineNumber":3343,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3344,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3345,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/eslint-plugin\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":3346,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/parser\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":3347,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^8.56.0\"","isFullCredit":false},{"lineNumber":3348,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3349,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3350,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-import-resolver-node\": {","isFullCredit":false},{"lineNumber":3351,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.3.9\",","isFullCredit":false},{"lineNumber":3352,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3353,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3354,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3355,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^3.2.7\",","isFullCredit":false},{"lineNumber":3356,"author":{"gitId":"sopa301"},"content":" \"is-core-module\": \"^2.13.0\",","isFullCredit":false},{"lineNumber":3357,"author":{"gitId":"sopa301"},"content":" \"resolve\": \"^1.22.4\"","isFullCredit":false},{"lineNumber":3358,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3359,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3360,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-import-resolver-node/node_modules/debug\": {","isFullCredit":false},{"lineNumber":3361,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.2.7\",","isFullCredit":false},{"lineNumber":3362,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3363,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3364,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3365,"author":{"gitId":"sopa301"},"content":" \"ms\": \"^2.1.1\"","isFullCredit":false},{"lineNumber":3366,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3367,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3368,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-module-utils\": {","isFullCredit":false},{"lineNumber":3369,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.8.1\",","isFullCredit":false},{"lineNumber":3370,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3371,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3372,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3373,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^3.2.7\"","isFullCredit":false},{"lineNumber":3374,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3375,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3376,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":3377,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3378,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":3379,"author":{"gitId":"sopa301"},"content":" \"eslint\": {","isFullCredit":false},{"lineNumber":3380,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3381,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":3382,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3383,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3384,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-module-utils/node_modules/debug\": {","isFullCredit":false},{"lineNumber":3385,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.2.7\",","isFullCredit":false},{"lineNumber":3386,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3387,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3388,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3389,"author":{"gitId":"sopa301"},"content":" \"ms\": \"^2.1.1\"","isFullCredit":false},{"lineNumber":3390,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3391,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3392,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-plugin-import\": {","isFullCredit":false},{"lineNumber":3393,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.29.1\",","isFullCredit":false},{"lineNumber":3394,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3395,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3396,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3397,"author":{"gitId":"sopa301"},"content":" \"array-includes\": \"^3.1.7\",","isFullCredit":false},{"lineNumber":3398,"author":{"gitId":"sopa301"},"content":" \"array.prototype.findlastindex\": \"^1.2.3\",","isFullCredit":false},{"lineNumber":3399,"author":{"gitId":"sopa301"},"content":" \"array.prototype.flat\": \"^1.3.2\",","isFullCredit":false},{"lineNumber":3400,"author":{"gitId":"sopa301"},"content":" \"array.prototype.flatmap\": \"^1.3.2\",","isFullCredit":false},{"lineNumber":3401,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^3.2.7\",","isFullCredit":false},{"lineNumber":3402,"author":{"gitId":"sopa301"},"content":" \"doctrine\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":3403,"author":{"gitId":"sopa301"},"content":" \"eslint-import-resolver-node\": \"^0.3.9\",","isFullCredit":false},{"lineNumber":3404,"author":{"gitId":"sopa301"},"content":" \"eslint-module-utils\": \"^2.8.0\",","isFullCredit":false},{"lineNumber":3405,"author":{"gitId":"sopa301"},"content":" \"hasown\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":3406,"author":{"gitId":"sopa301"},"content":" \"is-core-module\": \"^2.13.1\",","isFullCredit":false},{"lineNumber":3407,"author":{"gitId":"sopa301"},"content":" \"is-glob\": \"^4.0.3\",","isFullCredit":false},{"lineNumber":3408,"author":{"gitId":"sopa301"},"content":" \"minimatch\": \"^3.1.2\",","isFullCredit":false},{"lineNumber":3409,"author":{"gitId":"sopa301"},"content":" \"object.fromentries\": \"^2.0.7\",","isFullCredit":false},{"lineNumber":3410,"author":{"gitId":"sopa301"},"content":" \"object.groupby\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":3411,"author":{"gitId":"sopa301"},"content":" \"object.values\": \"^1.1.7\",","isFullCredit":false},{"lineNumber":3412,"author":{"gitId":"sopa301"},"content":" \"semver\": \"^6.3.1\",","isFullCredit":false},{"lineNumber":3413,"author":{"gitId":"sopa301"},"content":" \"tsconfig-paths\": \"^3.15.0\"","isFullCredit":false},{"lineNumber":3414,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3415,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3416,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":3417,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3418,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3419,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8\"","isFullCredit":false},{"lineNumber":3420,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3421,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3422,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-plugin-import/node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":3423,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":3424,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3425,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3426,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3427,"author":{"gitId":"sopa301"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":3428,"author":{"gitId":"sopa301"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":3429,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3430,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3431,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-plugin-import/node_modules/debug\": {","isFullCredit":false},{"lineNumber":3432,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.2.7\",","isFullCredit":false},{"lineNumber":3433,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3434,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3435,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3436,"author":{"gitId":"sopa301"},"content":" \"ms\": \"^2.1.1\"","isFullCredit":false},{"lineNumber":3437,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3438,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3439,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-plugin-import/node_modules/doctrine\": {","isFullCredit":false},{"lineNumber":3440,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":3441,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3442,"author":{"gitId":"sopa301"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":3443,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3444,"author":{"gitId":"sopa301"},"content":" \"esutils\": \"^2.0.2\"","isFullCredit":false},{"lineNumber":3445,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3446,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3447,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":3448,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3449,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3450,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-plugin-import/node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":3451,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":3452,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3453,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":3454,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3455,"author":{"gitId":"sopa301"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":3456,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3457,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3458,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":3459,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3460,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3461,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-plugin-vue\": {","isFullCredit":false},{"lineNumber":3462,"author":{"gitId":"sopa301"},"content":" \"version\": \"9.25.0\",","isFullCredit":false},{"lineNumber":3463,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.25.0.tgz\",","isFullCredit":false},{"lineNumber":3464,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-tDWlx14bVe6Bs+Nnh3IGrD+hb11kf2nukfm6jLsmJIhmiRQ1SUaksvwY9U5MvPB0pcrg0QK0xapQkfITs3RKOA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3465,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3466,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3467,"author":{"gitId":"sopa301"},"content":" \"@eslint-community/eslint-utils\": \"^4.4.0\",","isFullCredit":false},{"lineNumber":3468,"author":{"gitId":"sopa301"},"content":" \"globals\": \"^13.24.0\",","isFullCredit":false},{"lineNumber":3469,"author":{"gitId":"sopa301"},"content":" \"natural-compare\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":3470,"author":{"gitId":"sopa301"},"content":" \"nth-check\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":3471,"author":{"gitId":"sopa301"},"content":" \"postcss-selector-parser\": \"^6.0.15\",","isFullCredit":false},{"lineNumber":3472,"author":{"gitId":"sopa301"},"content":" \"semver\": \"^7.6.0\",","isFullCredit":false},{"lineNumber":3473,"author":{"gitId":"sopa301"},"content":" \"vue-eslint-parser\": \"^9.4.2\",","isFullCredit":false},{"lineNumber":3474,"author":{"gitId":"sopa301"},"content":" \"xml-name-validator\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":3475,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3476,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3477,"author":{"gitId":"sopa301"},"content":" \"node\": \"^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":3478,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3479,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3480,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0\"","isFullCredit":false},{"lineNumber":3481,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3482,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3483,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-plugin-vue/node_modules/globals\": {","isFullCredit":false},{"lineNumber":3484,"author":{"gitId":"sopa301"},"content":" \"version\": \"13.24.0\",","isFullCredit":false},{"lineNumber":3485,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/globals/-/globals-13.24.0.tgz\",","isFullCredit":false},{"lineNumber":3486,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3487,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3488,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3489,"author":{"gitId":"sopa301"},"content":" \"type-fest\": \"^0.20.2\"","isFullCredit":false},{"lineNumber":3490,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3491,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3492,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":3493,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3494,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3495,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":3496,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3497,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3498,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-plugin-vue/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":3499,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":3500,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":3501,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3502,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3503,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3504,"author":{"gitId":"sopa301"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":3505,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3506,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3507,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":3508,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3509,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3510,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-plugin-vue/node_modules/semver\": {","isFullCredit":false},{"lineNumber":3511,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":3512,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.6.0.tgz\",","isFullCredit":false},{"lineNumber":3513,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3514,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3515,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3516,"author":{"gitId":"sopa301"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":3517,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3518,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":3519,"author":{"gitId":"sopa301"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":3520,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3521,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3522,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":3523,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3524,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3525,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-plugin-vue/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":3526,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":3527,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":3528,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":3529,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3530,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3531,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint-scope\": {","isFullCredit":false},{"lineNumber":3532,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.1.1\",","isFullCredit":false},{"lineNumber":3533,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3534,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":3535,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":3536,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3537,"author":{"gitId":"sopa301"},"content":" \"esrecurse\": \"^4.3.0\",","isFullCredit":false},{"lineNumber":3538,"author":{"gitId":"sopa301"},"content":" \"estraverse\": \"^4.1.1\"","isFullCredit":false},{"lineNumber":3539,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3540,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3541,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8.0.0\"","isFullCredit":false},{"lineNumber":3542,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3543,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3544,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":3545,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":3546,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3547,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3548,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3549,"author":{"gitId":"sopa301"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":3550,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3551,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3552,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":3553,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3554,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3555,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":3556,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3557,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3558,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint/node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":3559,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":3560,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3561,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3562,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3563,"author":{"gitId":"sopa301"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":3564,"author":{"gitId":"sopa301"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":3565,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3566,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3567,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":3568,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":3569,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3570,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3571,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3572,"author":{"gitId":"sopa301"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":3573,"author":{"gitId":"sopa301"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":3574,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3575,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3576,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":3577,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3578,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3579,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":3580,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3581,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3582,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":3583,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":3584,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3585,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3586,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3587,"author":{"gitId":"sopa301"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":3588,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3589,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3590,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":3591,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3592,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3593,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":3594,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":3595,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3596,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3597,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3598,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint/node_modules/escape-string-regexp\": {","isFullCredit":false},{"lineNumber":3599,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":3600,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3601,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3602,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3603,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":3604,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3605,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3606,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":3607,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3608,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3609,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint/node_modules/eslint-scope\": {","isFullCredit":false},{"lineNumber":3610,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.2.2\",","isFullCredit":false},{"lineNumber":3611,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3612,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":3613,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3614,"author":{"gitId":"sopa301"},"content":" \"esrecurse\": \"^4.3.0\",","isFullCredit":false},{"lineNumber":3615,"author":{"gitId":"sopa301"},"content":" \"estraverse\": \"^5.2.0\"","isFullCredit":false},{"lineNumber":3616,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3617,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3618,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":3619,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3620,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3621,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":3622,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3623,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3624,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint/node_modules/eslint-visitor-keys\": {","isFullCredit":false},{"lineNumber":3625,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.3\",","isFullCredit":false},{"lineNumber":3626,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3627,"author":{"gitId":"sopa301"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":3628,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3629,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":3630,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3631,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3632,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":3633,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3634,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3635,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint/node_modules/estraverse\": {","isFullCredit":false},{"lineNumber":3636,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.3.0\",","isFullCredit":false},{"lineNumber":3637,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3638,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":3639,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3640,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4.0\"","isFullCredit":false},{"lineNumber":3641,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3642,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3643,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint/node_modules/globals\": {","isFullCredit":false},{"lineNumber":3644,"author":{"gitId":"sopa301"},"content":" \"version\": \"13.20.0\",","isFullCredit":false},{"lineNumber":3645,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3646,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3647,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3648,"author":{"gitId":"sopa301"},"content":" \"type-fest\": \"^0.20.2\"","isFullCredit":false},{"lineNumber":3649,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3650,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3651,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":3652,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3653,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3654,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":3655,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3656,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3657,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":3658,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":3659,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3660,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3661,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3662,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":3663,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3664,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3665,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint/node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":3666,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":3667,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3668,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":3669,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3670,"author":{"gitId":"sopa301"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":3671,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3672,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3673,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":3674,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3675,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3676,"author":{"gitId":"sopa301"},"content":" \"node_modules/eslint/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":3677,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":3678,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3679,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3680,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3681,"author":{"gitId":"sopa301"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":3682,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3683,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3684,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":3685,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3686,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3687,"author":{"gitId":"sopa301"},"content":" \"node_modules/espree\": {","isFullCredit":false},{"lineNumber":3688,"author":{"gitId":"sopa301"},"content":" \"version\": \"9.6.1\",","isFullCredit":false},{"lineNumber":3689,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3690,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":3691,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3692,"author":{"gitId":"sopa301"},"content":" \"acorn\": \"^8.9.0\",","isFullCredit":false},{"lineNumber":3693,"author":{"gitId":"sopa301"},"content":" \"acorn-jsx\": \"^5.3.2\",","isFullCredit":false},{"lineNumber":3694,"author":{"gitId":"sopa301"},"content":" \"eslint-visitor-keys\": \"^3.4.1\"","isFullCredit":false},{"lineNumber":3695,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3696,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3697,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":3698,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3699,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3700,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":3701,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3702,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3703,"author":{"gitId":"sopa301"},"content":" \"node_modules/espree/node_modules/eslint-visitor-keys\": {","isFullCredit":false},{"lineNumber":3704,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.3\",","isFullCredit":false},{"lineNumber":3705,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3706,"author":{"gitId":"sopa301"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":3707,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3708,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":3709,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3710,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3711,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":3712,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3713,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3714,"author":{"gitId":"sopa301"},"content":" \"node_modules/esquery\": {","isFullCredit":false},{"lineNumber":3715,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.5.0\",","isFullCredit":false},{"lineNumber":3716,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3717,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":3718,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3719,"author":{"gitId":"sopa301"},"content":" \"estraverse\": \"^5.1.0\"","isFullCredit":false},{"lineNumber":3720,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3721,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3722,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10\"","isFullCredit":false},{"lineNumber":3723,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3724,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3725,"author":{"gitId":"sopa301"},"content":" \"node_modules/esquery/node_modules/estraverse\": {","isFullCredit":false},{"lineNumber":3726,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.3.0\",","isFullCredit":false},{"lineNumber":3727,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3728,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":3729,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3730,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4.0\"","isFullCredit":false},{"lineNumber":3731,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3732,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3733,"author":{"gitId":"sopa301"},"content":" \"node_modules/esrecurse\": {","isFullCredit":false},{"lineNumber":3734,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":3735,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3736,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":3737,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3738,"author":{"gitId":"sopa301"},"content":" \"estraverse\": \"^5.2.0\"","isFullCredit":false},{"lineNumber":3739,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3740,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3741,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4.0\"","isFullCredit":false},{"lineNumber":3742,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3743,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3744,"author":{"gitId":"sopa301"},"content":" \"node_modules/esrecurse/node_modules/estraverse\": {","isFullCredit":false},{"lineNumber":3745,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.3.0\",","isFullCredit":false},{"lineNumber":3746,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3747,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":3748,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3749,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4.0\"","isFullCredit":false},{"lineNumber":3750,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3751,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3752,"author":{"gitId":"sopa301"},"content":" \"node_modules/estraverse\": {","isFullCredit":false},{"lineNumber":3753,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":3754,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3755,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":3756,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":3757,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3758,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4.0\"","isFullCredit":false},{"lineNumber":3759,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3760,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3761,"author":{"gitId":"sopa301"},"content":" \"node_modules/estree-walker\": {","isFullCredit":false},{"lineNumber":3762,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":3763,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3764,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3765,"author":{"gitId":"sopa301"},"content":" \"node_modules/esutils\": {","isFullCredit":false},{"lineNumber":3766,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.3\",","isFullCredit":false},{"lineNumber":3767,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":3768,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3769,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":3770,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3771,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3772,"author":{"gitId":"sopa301"},"content":" \"node_modules/events\": {","isFullCredit":false},{"lineNumber":3773,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.3.0\",","isFullCredit":false},{"lineNumber":3774,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3775,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3776,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":3777,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3778,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.8.x\"","isFullCredit":false},{"lineNumber":3779,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3780,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3781,"author":{"gitId":"sopa301"},"content":" \"node_modules/fast-deep-equal\": {","isFullCredit":false},{"lineNumber":3782,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.3\",","isFullCredit":false},{"lineNumber":3783,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3784,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3785,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3786,"author":{"gitId":"sopa301"},"content":" \"node_modules/fast-glob\": {","isFullCredit":false},{"lineNumber":3787,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.3.2\",","isFullCredit":false},{"lineNumber":3788,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz\",","isFullCredit":false},{"lineNumber":3789,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow\u003d\u003d\",","isFullCredit":false},{"lineNumber":3790,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3791,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3792,"author":{"gitId":"sopa301"},"content":" \"@nodelib/fs.stat\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":3793,"author":{"gitId":"sopa301"},"content":" \"@nodelib/fs.walk\": \"^1.2.3\",","isFullCredit":false},{"lineNumber":3794,"author":{"gitId":"sopa301"},"content":" \"glob-parent\": \"^5.1.2\",","isFullCredit":false},{"lineNumber":3795,"author":{"gitId":"sopa301"},"content":" \"merge2\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":3796,"author":{"gitId":"sopa301"},"content":" \"micromatch\": \"^4.0.4\"","isFullCredit":false},{"lineNumber":3797,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3798,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3799,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8.6.0\"","isFullCredit":false},{"lineNumber":3800,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3801,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3802,"author":{"gitId":"sopa301"},"content":" \"node_modules/fast-glob/node_modules/glob-parent\": {","isFullCredit":false},{"lineNumber":3803,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.1.2\",","isFullCredit":false},{"lineNumber":3804,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3805,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":3806,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3807,"author":{"gitId":"sopa301"},"content":" \"is-glob\": \"^4.0.1\"","isFullCredit":false},{"lineNumber":3808,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3809,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3810,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":3811,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3812,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3813,"author":{"gitId":"sopa301"},"content":" \"node_modules/fast-json-stable-stringify\": {","isFullCredit":false},{"lineNumber":3814,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":3815,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3816,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3817,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3818,"author":{"gitId":"sopa301"},"content":" \"node_modules/fast-levenshtein\": {","isFullCredit":false},{"lineNumber":3819,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.6\",","isFullCredit":false},{"lineNumber":3820,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3821,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3822,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3823,"author":{"gitId":"sopa301"},"content":" \"node_modules/fastest-levenshtein\": {","isFullCredit":false},{"lineNumber":3824,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.16\",","isFullCredit":false},{"lineNumber":3825,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3826,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3827,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3828,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 4.9.1\"","isFullCredit":false},{"lineNumber":3829,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3830,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3831,"author":{"gitId":"sopa301"},"content":" \"node_modules/fastq\": {","isFullCredit":false},{"lineNumber":3832,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.15.0\",","isFullCredit":false},{"lineNumber":3833,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3834,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":3835,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3836,"author":{"gitId":"sopa301"},"content":" \"reusify\": \"^1.0.4\"","isFullCredit":false},{"lineNumber":3837,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3838,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3839,"author":{"gitId":"sopa301"},"content":" \"node_modules/file-entry-cache\": {","isFullCredit":false},{"lineNumber":3840,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.1\",","isFullCredit":false},{"lineNumber":3841,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3842,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3843,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3844,"author":{"gitId":"sopa301"},"content":" \"flat-cache\": \"^3.0.4\"","isFullCredit":false},{"lineNumber":3845,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3846,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3847,"author":{"gitId":"sopa301"},"content":" \"node\": \"^10.12.0 || \u003e\u003d12.0.0\"","isFullCredit":false},{"lineNumber":3848,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3849,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3850,"author":{"gitId":"sopa301"},"content":" \"node_modules/fill-range\": {","isFullCredit":false},{"lineNumber":3851,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.0.1\",","isFullCredit":false},{"lineNumber":3852,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":3853,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3854,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3855,"author":{"gitId":"sopa301"},"content":" \"to-regex-range\": \"^5.0.1\"","isFullCredit":false},{"lineNumber":3856,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3857,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3858,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":3859,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3860,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3861,"author":{"gitId":"sopa301"},"content":" \"node_modules/find-line-column\": {","isFullCredit":false},{"lineNumber":3862,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.5.2\",","isFullCredit":false},{"lineNumber":3863,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3864,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3865,"author":{"gitId":"sopa301"},"content":" \"node_modules/find-up\": {","isFullCredit":false},{"lineNumber":3866,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.0\",","isFullCredit":false},{"lineNumber":3867,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3868,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3869,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3870,"author":{"gitId":"sopa301"},"content":" \"locate-path\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":3871,"author":{"gitId":"sopa301"},"content":" \"path-exists\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":3872,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3873,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3874,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":3875,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3876,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3877,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":3878,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3879,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3880,"author":{"gitId":"sopa301"},"content":" \"node_modules/flat-cache\": {","isFullCredit":false},{"lineNumber":3881,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.4\",","isFullCredit":false},{"lineNumber":3882,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3883,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3884,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3885,"author":{"gitId":"sopa301"},"content":" \"flatted\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":3886,"author":{"gitId":"sopa301"},"content":" \"rimraf\": \"^3.0.2\"","isFullCredit":false},{"lineNumber":3887,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3888,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3889,"author":{"gitId":"sopa301"},"content":" \"node\": \"^10.12.0 || \u003e\u003d12.0.0\"","isFullCredit":false},{"lineNumber":3890,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3891,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3892,"author":{"gitId":"sopa301"},"content":" \"node_modules/flatted\": {","isFullCredit":false},{"lineNumber":3893,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.3.1\",","isFullCredit":false},{"lineNumber":3894,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz\",","isFullCredit":false},{"lineNumber":3895,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw\u003d\u003d\",","isFullCredit":false},{"lineNumber":3896,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3897,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3898,"author":{"gitId":"sopa301"},"content":" \"node_modules/for-each\": {","isFullCredit":false},{"lineNumber":3899,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.3.3\",","isFullCredit":false},{"lineNumber":3900,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3901,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3902,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3903,"author":{"gitId":"sopa301"},"content":" \"is-callable\": \"^1.1.3\"","isFullCredit":false},{"lineNumber":3904,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3905,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3906,"author":{"gitId":"sopa301"},"content":" \"node_modules/foreachasync\": {","isFullCredit":false},{"lineNumber":3907,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":3908,"author":{"gitId":"sopa301"},"content":" \"license\": \"Apache2\"","isFullCredit":false},{"lineNumber":3909,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3910,"author":{"gitId":"sopa301"},"content":" \"node_modules/fs.realpath\": {","isFullCredit":false},{"lineNumber":3911,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":3912,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":3913,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3914,"author":{"gitId":"sopa301"},"content":" \"node_modules/fsevents\": {","isFullCredit":false},{"lineNumber":3915,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.3\",","isFullCredit":false},{"lineNumber":3916,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",","isFullCredit":false},{"lineNumber":3917,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw\u003d\u003d\",","isFullCredit":false},{"lineNumber":3918,"author":{"gitId":"sopa301"},"content":" \"hasInstallScript\": true,","isFullCredit":false},{"lineNumber":3919,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":3920,"author":{"gitId":"sopa301"},"content":" \"os\": [","isFullCredit":false},{"lineNumber":3921,"author":{"gitId":"sopa301"},"content":" \"darwin\"","isFullCredit":false},{"lineNumber":3922,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":3923,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3924,"author":{"gitId":"sopa301"},"content":" \"node\": \"^8.16.0 || ^10.6.0 || \u003e\u003d11.0.0\"","isFullCredit":false},{"lineNumber":3925,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3926,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3927,"author":{"gitId":"sopa301"},"content":" \"node_modules/function-bind\": {","isFullCredit":false},{"lineNumber":3928,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.2\",","isFullCredit":false},{"lineNumber":3929,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3930,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3931,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":3932,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3933,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3934,"author":{"gitId":"sopa301"},"content":" \"node_modules/function.prototype.name\": {","isFullCredit":false},{"lineNumber":3935,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.6\",","isFullCredit":false},{"lineNumber":3936,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3937,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3938,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3939,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":3940,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":3941,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.22.1\",","isFullCredit":false},{"lineNumber":3942,"author":{"gitId":"sopa301"},"content":" \"functions-have-names\": \"^1.2.3\"","isFullCredit":false},{"lineNumber":3943,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3944,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3945,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":3946,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":3947,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3948,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":3949,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3950,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3951,"author":{"gitId":"sopa301"},"content":" \"node_modules/functions-have-names\": {","isFullCredit":false},{"lineNumber":3952,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.3\",","isFullCredit":false},{"lineNumber":3953,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3954,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3955,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3956,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":3957,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3958,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3959,"author":{"gitId":"sopa301"},"content":" \"node_modules/get-intrinsic\": {","isFullCredit":false},{"lineNumber":3960,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.4\",","isFullCredit":false},{"lineNumber":3961,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3962,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3963,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":3964,"author":{"gitId":"sopa301"},"content":" \"function-bind\": \"^1.1.2\",","isFullCredit":false},{"lineNumber":3965,"author":{"gitId":"sopa301"},"content":" \"has-proto\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":3966,"author":{"gitId":"sopa301"},"content":" \"has-symbols\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":3967,"author":{"gitId":"sopa301"},"content":" \"hasown\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":3968,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3969,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3970,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":3971,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3972,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3973,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":3974,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3975,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3976,"author":{"gitId":"sopa301"},"content":" \"node_modules/get-symbol-description\": {","isFullCredit":false},{"lineNumber":3977,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":3978,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3979,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3980,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3981,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":3982,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":3983,"author":{"gitId":"sopa301"},"content":" \"get-intrinsic\": \"^1.2.4\"","isFullCredit":false},{"lineNumber":3984,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3985,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3986,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":3987,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3988,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3989,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":3990,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3991,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3992,"author":{"gitId":"sopa301"},"content":" \"node_modules/glob\": {","isFullCredit":false},{"lineNumber":3993,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.2.3\",","isFullCredit":false},{"lineNumber":3994,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":3995,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3996,"author":{"gitId":"sopa301"},"content":" \"fs.realpath\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":3997,"author":{"gitId":"sopa301"},"content":" \"inflight\": \"^1.0.4\",","isFullCredit":false},{"lineNumber":3998,"author":{"gitId":"sopa301"},"content":" \"inherits\": \"2\",","isFullCredit":false},{"lineNumber":3999,"author":{"gitId":"sopa301"},"content":" \"minimatch\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":4000,"author":{"gitId":"sopa301"},"content":" \"once\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":4001,"author":{"gitId":"sopa301"},"content":" \"path-is-absolute\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":4002,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4003,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4004,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":4005,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4006,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4007,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/isaacs\"","isFullCredit":false},{"lineNumber":4008,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4009,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4010,"author":{"gitId":"sopa301"},"content":" \"node_modules/glob-parent\": {","isFullCredit":false},{"lineNumber":4011,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.2\",","isFullCredit":false},{"lineNumber":4012,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4013,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":4014,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4015,"author":{"gitId":"sopa301"},"content":" \"is-glob\": \"^4.0.3\"","isFullCredit":false},{"lineNumber":4016,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4017,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4018,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10.13.0\"","isFullCredit":false},{"lineNumber":4019,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4020,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4021,"author":{"gitId":"sopa301"},"content":" \"node_modules/glob-to-regexp\": {","isFullCredit":false},{"lineNumber":4022,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.4.1\",","isFullCredit":false},{"lineNumber":4023,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4024,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":4025,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":4026,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4027,"author":{"gitId":"sopa301"},"content":" \"node_modules/glob/node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":4028,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":4029,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4030,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4031,"author":{"gitId":"sopa301"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":4032,"author":{"gitId":"sopa301"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":4033,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4034,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4035,"author":{"gitId":"sopa301"},"content":" \"node_modules/glob/node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":4036,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":4037,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":4038,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4039,"author":{"gitId":"sopa301"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":4040,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4041,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4042,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":4043,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4044,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4045,"author":{"gitId":"sopa301"},"content":" \"node_modules/global-modules\": {","isFullCredit":false},{"lineNumber":4046,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":4047,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4048,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4049,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4050,"author":{"gitId":"sopa301"},"content":" \"global-prefix\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":4051,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4052,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4053,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":4054,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4055,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4056,"author":{"gitId":"sopa301"},"content":" \"node_modules/global-prefix\": {","isFullCredit":false},{"lineNumber":4057,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":4058,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4059,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4060,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4061,"author":{"gitId":"sopa301"},"content":" \"ini\": \"^1.3.5\",","isFullCredit":false},{"lineNumber":4062,"author":{"gitId":"sopa301"},"content":" \"kind-of\": \"^6.0.2\",","isFullCredit":false},{"lineNumber":4063,"author":{"gitId":"sopa301"},"content":" \"which\": \"^1.3.1\"","isFullCredit":false},{"lineNumber":4064,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4065,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4066,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":4067,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4068,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4069,"author":{"gitId":"sopa301"},"content":" \"node_modules/global-prefix/node_modules/which\": {","isFullCredit":false},{"lineNumber":4070,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.3.1\",","isFullCredit":false},{"lineNumber":4071,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4072,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":4073,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4074,"author":{"gitId":"sopa301"},"content":" \"isexe\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":4075,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4076,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":4077,"author":{"gitId":"sopa301"},"content":" \"which\": \"bin/which\"","isFullCredit":false},{"lineNumber":4078,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4079,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4080,"author":{"gitId":"sopa301"},"content":" \"node_modules/globalthis\": {","isFullCredit":false},{"lineNumber":4081,"author":{"gitId":"-"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":4082,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4083,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4084,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4085,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.1.3\"","isFullCredit":false},{"lineNumber":4086,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4087,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4088,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4089,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4090,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4091,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4092,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4093,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4094,"author":{"gitId":"sopa301"},"content":" \"node_modules/globby\": {","isFullCredit":false},{"lineNumber":4095,"author":{"gitId":"sopa301"},"content":" \"version\": \"11.1.0\",","isFullCredit":false},{"lineNumber":4096,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4097,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4098,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4099,"author":{"gitId":"sopa301"},"content":" \"array-union\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":4100,"author":{"gitId":"sopa301"},"content":" \"dir-glob\": \"^3.0.1\",","isFullCredit":false},{"lineNumber":4101,"author":{"gitId":"sopa301"},"content":" \"fast-glob\": \"^3.2.9\",","isFullCredit":false},{"lineNumber":4102,"author":{"gitId":"sopa301"},"content":" \"ignore\": \"^5.2.0\",","isFullCredit":false},{"lineNumber":4103,"author":{"gitId":"sopa301"},"content":" \"merge2\": \"^1.4.1\",","isFullCredit":false},{"lineNumber":4104,"author":{"gitId":"sopa301"},"content":" \"slash\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":4105,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4106,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4107,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":4108,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4109,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4110,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":4111,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4112,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4113,"author":{"gitId":"sopa301"},"content":" \"node_modules/globjoin\": {","isFullCredit":false},{"lineNumber":4114,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.1.4\",","isFullCredit":false},{"lineNumber":4115,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4116,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4117,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4118,"author":{"gitId":"sopa301"},"content":" \"node_modules/gopd\": {","isFullCredit":false},{"lineNumber":4119,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":4120,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4121,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4122,"author":{"gitId":"sopa301"},"content":" \"get-intrinsic\": \"^1.1.3\"","isFullCredit":false},{"lineNumber":4123,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4124,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4125,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4126,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4127,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4128,"author":{"gitId":"sopa301"},"content":" \"node_modules/graceful-fs\": {","isFullCredit":false},{"lineNumber":4129,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.2.10\",","isFullCredit":false},{"lineNumber":4130,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4131,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":4132,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4133,"author":{"gitId":"sopa301"},"content":" \"node_modules/graphemer\": {","isFullCredit":false},{"lineNumber":4134,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":4135,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4136,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4137,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4138,"author":{"gitId":"sopa301"},"content":" \"node_modules/has-bigints\": {","isFullCredit":false},{"lineNumber":4139,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":4140,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4141,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4142,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4143,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4144,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":4145,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4146,"author":{"gitId":"sopa301"},"content":" \"node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":4147,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":4148,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4149,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4150,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4151,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":4152,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4153,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4154,"author":{"gitId":"sopa301"},"content":" \"node_modules/has-property-descriptors\": {","isFullCredit":false},{"lineNumber":4155,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":4156,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4157,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4158,"author":{"gitId":"sopa301"},"content":" \"es-define-property\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":4159,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4160,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4161,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4162,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":4163,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4164,"author":{"gitId":"sopa301"},"content":" \"node_modules/has-proto\": {","isFullCredit":false},{"lineNumber":4165,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":4166,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4167,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4168,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4169,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4170,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4171,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4172,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":4173,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4174,"author":{"gitId":"sopa301"},"content":" \"node_modules/has-symbols\": {","isFullCredit":false},{"lineNumber":4175,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":4176,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4177,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4178,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4179,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4180,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4181,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4182,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":4183,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4184,"author":{"gitId":"sopa301"},"content":" \"node_modules/has-tostringtag\": {","isFullCredit":false},{"lineNumber":4185,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":4186,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4187,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4188,"author":{"gitId":"sopa301"},"content":" \"has-symbols\": \"^1.0.3\"","isFullCredit":false},{"lineNumber":4189,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4190,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4191,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4192,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4193,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4194,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4195,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":4196,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4197,"author":{"gitId":"sopa301"},"content":" \"node_modules/hasown\": {","isFullCredit":false},{"lineNumber":4198,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":4199,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4200,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4201,"author":{"gitId":"sopa301"},"content":" \"function-bind\": \"^1.1.2\"","isFullCredit":false},{"lineNumber":4202,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4203,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4204,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4205,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4206,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4207,"author":{"gitId":"sopa301"},"content":" \"node_modules/highlight.js\": {","isFullCredit":false},{"lineNumber":4208,"author":{"gitId":"sopa301"},"content":" \"version\": \"10.7.3\",","isFullCredit":false},{"lineNumber":4209,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":4210,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4211,"author":{"gitId":"-"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":4212,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4213,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4214,"author":{"gitId":"sopa301"},"content":" \"node_modules/html-tags\": {","isFullCredit":false},{"lineNumber":4215,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.3.1\",","isFullCredit":false},{"lineNumber":4216,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz\",","isFullCredit":false},{"lineNumber":4217,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":4218,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4219,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4220,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":4221,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4222,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4223,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":4224,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4225,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4226,"author":{"gitId":"sopa301"},"content":" \"node_modules/htmlparser2\": {","isFullCredit":false},{"lineNumber":4227,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.0.1\",","isFullCredit":false},{"lineNumber":4228,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":4229,"author":{"gitId":"sopa301"},"content":" \"https://github.com/fb55/htmlparser2?sponsor\u003d1\",","isFullCredit":false},{"lineNumber":4230,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":4231,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":4232,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/fb55\"","isFullCredit":false},{"lineNumber":4233,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":4234,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":4235,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4236,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4237,"author":{"gitId":"sopa301"},"content":" \"domelementtype\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":4238,"author":{"gitId":"sopa301"},"content":" \"domhandler\": \"^5.0.2\",","isFullCredit":false},{"lineNumber":4239,"author":{"gitId":"sopa301"},"content":" \"domutils\": \"^3.0.1\",","isFullCredit":false},{"lineNumber":4240,"author":{"gitId":"sopa301"},"content":" \"entities\": \"^4.3.0\"","isFullCredit":false},{"lineNumber":4241,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4242,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4243,"author":{"gitId":"sopa301"},"content":" \"node_modules/ignore\": {","isFullCredit":false},{"lineNumber":4244,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.3.1\",","isFullCredit":false},{"lineNumber":4245,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz\",","isFullCredit":false},{"lineNumber":4246,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw\u003d\u003d\",","isFullCredit":false},{"lineNumber":4247,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4248,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4249,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 4\"","isFullCredit":false},{"lineNumber":4250,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4251,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4252,"author":{"gitId":"sopa301"},"content":" \"node_modules/immediate\": {","isFullCredit":false},{"lineNumber":4253,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.6\",","isFullCredit":false},{"lineNumber":4254,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4255,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4256,"author":{"gitId":"sopa301"},"content":" \"node_modules/immutable\": {","isFullCredit":false},{"lineNumber":4257,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.2.4\",","isFullCredit":false},{"lineNumber":4258,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":4259,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4260,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4261,"author":{"gitId":"sopa301"},"content":" \"node_modules/import-fresh\": {","isFullCredit":false},{"lineNumber":4262,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.3.0\",","isFullCredit":false},{"lineNumber":4263,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4264,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4265,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4266,"author":{"gitId":"sopa301"},"content":" \"parent-module\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":4267,"author":{"gitId":"sopa301"},"content":" \"resolve-from\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":4268,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4269,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4270,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":4271,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4272,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4273,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":4274,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4275,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4276,"author":{"gitId":"sopa301"},"content":" \"node_modules/imurmurhash\": {","isFullCredit":false},{"lineNumber":4277,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.1.4\",","isFullCredit":false},{"lineNumber":4278,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4279,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4280,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4281,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.8.19\"","isFullCredit":false},{"lineNumber":4282,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4283,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4284,"author":{"gitId":"sopa301"},"content":" \"node_modules/inflight\": {","isFullCredit":false},{"lineNumber":4285,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.6\",","isFullCredit":false},{"lineNumber":4286,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":4287,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4288,"author":{"gitId":"sopa301"},"content":" \"once\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":4289,"author":{"gitId":"sopa301"},"content":" \"wrappy\": \"1\"","isFullCredit":false},{"lineNumber":4290,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4291,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4292,"author":{"gitId":"sopa301"},"content":" \"node_modules/inherits\": {","isFullCredit":false},{"lineNumber":4293,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.4\",","isFullCredit":false},{"lineNumber":4294,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":4295,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4296,"author":{"gitId":"sopa301"},"content":" \"node_modules/ini\": {","isFullCredit":false},{"lineNumber":4297,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.3.8\",","isFullCredit":false},{"lineNumber":4298,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4299,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":4300,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4301,"author":{"gitId":"sopa301"},"content":" \"node_modules/internal-slot\": {","isFullCredit":false},{"lineNumber":4302,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":4303,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4304,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4305,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4306,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":4307,"author":{"gitId":"sopa301"},"content":" \"hasown\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":4308,"author":{"gitId":"sopa301"},"content":" \"side-channel\": \"^1.0.4\"","isFullCredit":false},{"lineNumber":4309,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4310,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4311,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4312,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4313,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4314,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-array-buffer\": {","isFullCredit":false},{"lineNumber":4315,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.4\",","isFullCredit":false},{"lineNumber":4316,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4317,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4318,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4319,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":4320,"author":{"gitId":"sopa301"},"content":" \"get-intrinsic\": \"^1.2.1\"","isFullCredit":false},{"lineNumber":4321,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4322,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4323,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4324,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4325,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4326,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4327,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4328,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4329,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-arrayish\": {","isFullCredit":false},{"lineNumber":4330,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.2.1\",","isFullCredit":false},{"lineNumber":4331,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4332,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4333,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4334,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-bigint\": {","isFullCredit":false},{"lineNumber":4335,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":4336,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4337,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4338,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4339,"author":{"gitId":"sopa301"},"content":" \"has-bigints\": \"^1.0.1\"","isFullCredit":false},{"lineNumber":4340,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4341,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4342,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4343,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4344,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4345,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-binary-path\": {","isFullCredit":false},{"lineNumber":4346,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":4347,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":4348,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4349,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4350,"author":{"gitId":"sopa301"},"content":" \"binary-extensions\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":4351,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4352,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4353,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":4354,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4355,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4356,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-boolean-object\": {","isFullCredit":false},{"lineNumber":4357,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.2\",","isFullCredit":false},{"lineNumber":4358,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4359,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4360,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4361,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":4362,"author":{"gitId":"sopa301"},"content":" \"has-tostringtag\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":4363,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4364,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4365,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4366,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4367,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4368,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4369,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4370,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4371,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-callable\": {","isFullCredit":false},{"lineNumber":4372,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.7\",","isFullCredit":false},{"lineNumber":4373,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4374,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4375,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4376,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4377,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4378,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4379,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4380,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4381,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4382,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-core-module\": {","isFullCredit":false},{"lineNumber":4383,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.13.1\",","isFullCredit":false},{"lineNumber":4384,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4385,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4386,"author":{"gitId":"sopa301"},"content":" \"hasown\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":4387,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4388,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4389,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4390,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4391,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4392,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-date-object\": {","isFullCredit":false},{"lineNumber":4393,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":4394,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4395,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4396,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4397,"author":{"gitId":"sopa301"},"content":" \"has-tostringtag\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":4398,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4399,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4400,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4401,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4402,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4403,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4404,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4405,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4406,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-expression\": {","isFullCredit":false},{"lineNumber":4407,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":4408,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4409,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4410,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4411,"author":{"gitId":"sopa301"},"content":" \"acorn\": \"^7.1.1\",","isFullCredit":false},{"lineNumber":4412,"author":{"gitId":"sopa301"},"content":" \"object-assign\": \"^4.1.1\"","isFullCredit":false},{"lineNumber":4413,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4414,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4415,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-expression/node_modules/acorn\": {","isFullCredit":false},{"lineNumber":4416,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.4.1\",","isFullCredit":false},{"lineNumber":4417,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4418,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4419,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":4420,"author":{"gitId":"sopa301"},"content":" \"acorn\": \"bin/acorn\"","isFullCredit":false},{"lineNumber":4421,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4422,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4423,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.4.0\"","isFullCredit":false},{"lineNumber":4424,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4425,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4426,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-extglob\": {","isFullCredit":false},{"lineNumber":4427,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.1\",","isFullCredit":false},{"lineNumber":4428,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":4429,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4430,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4431,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":4432,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4433,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4434,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-fullwidth-code-point\": {","isFullCredit":false},{"lineNumber":4435,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":4436,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4437,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4438,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4439,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":4440,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4441,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4442,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-glob\": {","isFullCredit":false},{"lineNumber":4443,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.3\",","isFullCredit":false},{"lineNumber":4444,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":4445,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4446,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4447,"author":{"gitId":"sopa301"},"content":" \"is-extglob\": \"^2.1.1\"","isFullCredit":false},{"lineNumber":4448,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4449,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4450,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":4451,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4452,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4453,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-negative-zero\": {","isFullCredit":false},{"lineNumber":4454,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.3\",","isFullCredit":false},{"lineNumber":4455,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4456,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4457,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4458,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4459,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4460,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4461,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4462,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4463,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4464,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-number\": {","isFullCredit":false},{"lineNumber":4465,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.0.0\",","isFullCredit":false},{"lineNumber":4466,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":4467,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4468,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4469,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.12.0\"","isFullCredit":false},{"lineNumber":4470,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4471,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4472,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-number-object\": {","isFullCredit":false},{"lineNumber":4473,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":4474,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4475,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4476,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4477,"author":{"gitId":"sopa301"},"content":" \"has-tostringtag\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":4478,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4479,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4480,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4481,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4482,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4483,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4484,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4485,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4486,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-path-inside\": {","isFullCredit":false},{"lineNumber":4487,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.3\",","isFullCredit":false},{"lineNumber":4488,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4489,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4490,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4491,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":4492,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4493,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4494,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-plain-object\": {","isFullCredit":false},{"lineNumber":4495,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.0\",","isFullCredit":false},{"lineNumber":4496,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4497,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4498,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4499,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":4500,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4501,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4502,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-promise\": {","isFullCredit":false},{"lineNumber":4503,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.2.2\",","isFullCredit":false},{"lineNumber":4504,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4505,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4506,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4507,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-regex\": {","isFullCredit":false},{"lineNumber":4508,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":4509,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4510,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4511,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":4512,"author":{"gitId":"sopa301"},"content":" \"has-tostringtag\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":4513,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4514,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4515,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4516,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4517,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4518,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4519,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4520,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4521,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-shared-array-buffer\": {","isFullCredit":false},{"lineNumber":4522,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":4523,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4524,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4525,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4526,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.7\"","isFullCredit":false},{"lineNumber":4527,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4528,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4529,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4530,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4531,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4532,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4533,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4534,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4535,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-string\": {","isFullCredit":false},{"lineNumber":4536,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":4537,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4538,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4539,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4540,"author":{"gitId":"sopa301"},"content":" \"has-tostringtag\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":4541,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4542,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4543,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4544,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4545,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4546,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4547,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4548,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4549,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-symbol\": {","isFullCredit":false},{"lineNumber":4550,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":4551,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4552,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4553,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4554,"author":{"gitId":"sopa301"},"content":" \"has-symbols\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":4555,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4556,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4557,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4558,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4559,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4560,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4561,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4562,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4563,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-typed-array\": {","isFullCredit":false},{"lineNumber":4564,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.13\",","isFullCredit":false},{"lineNumber":4565,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4566,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4567,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4568,"author":{"gitId":"sopa301"},"content":" \"which-typed-array\": \"^1.1.14\"","isFullCredit":false},{"lineNumber":4569,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4570,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4571,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4572,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4573,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4574,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4575,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4576,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4577,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-weakref\": {","isFullCredit":false},{"lineNumber":4578,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":4579,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4580,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4581,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4582,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":4583,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4584,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4585,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4586,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4587,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4588,"author":{"gitId":"sopa301"},"content":" \"node_modules/isarray\": {","isFullCredit":false},{"lineNumber":4589,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":4590,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4591,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4592,"author":{"gitId":"sopa301"},"content":" \"node_modules/isexe\": {","isFullCredit":false},{"lineNumber":4593,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":4594,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4595,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":4596,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4597,"author":{"gitId":"sopa301"},"content":" \"node_modules/jest-util\": {","isFullCredit":false},{"lineNumber":4598,"author":{"gitId":"sopa301"},"content":" \"version\": \"29.7.0\",","isFullCredit":false},{"lineNumber":4599,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz\",","isFullCredit":false},{"lineNumber":4600,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA\u003d\u003d\",","isFullCredit":false},{"lineNumber":4601,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4602,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4603,"author":{"gitId":"sopa301"},"content":" \"@jest/types\": \"^29.6.3\",","isFullCredit":false},{"lineNumber":4604,"author":{"gitId":"sopa301"},"content":" \"@types/node\": \"*\",","isFullCredit":false},{"lineNumber":4605,"author":{"gitId":"sopa301"},"content":" \"chalk\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":4606,"author":{"gitId":"sopa301"},"content":" \"ci-info\": \"^3.2.0\",","isFullCredit":false},{"lineNumber":4607,"author":{"gitId":"sopa301"},"content":" \"graceful-fs\": \"^4.2.9\",","isFullCredit":false},{"lineNumber":4608,"author":{"gitId":"sopa301"},"content":" \"picomatch\": \"^2.2.3\"","isFullCredit":false},{"lineNumber":4609,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4610,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4611,"author":{"gitId":"sopa301"},"content":" \"node\": \"^14.15.0 || ^16.10.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":4612,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4613,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4614,"author":{"gitId":"sopa301"},"content":" \"node_modules/jest-util/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":4615,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":4616,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",","isFullCredit":false},{"lineNumber":4617,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg\u003d\u003d\",","isFullCredit":false},{"lineNumber":4618,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4619,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4620,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":4621,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4622,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4623,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":4624,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4625,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4626,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":4627,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4628,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4629,"author":{"gitId":"sopa301"},"content":" \"node_modules/jest-util/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":4630,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":4631,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",","isFullCredit":false},{"lineNumber":4632,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA\u003d\u003d\",","isFullCredit":false},{"lineNumber":4633,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4634,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4635,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":4636,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":4637,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4638,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4639,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":4640,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4641,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4642,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":4643,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4644,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4645,"author":{"gitId":"sopa301"},"content":" \"node_modules/jest-util/node_modules/ci-info\": {","isFullCredit":false},{"lineNumber":4646,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.9.0\",","isFullCredit":false},{"lineNumber":4647,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz\",","isFullCredit":false},{"lineNumber":4648,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":4649,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4650,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":4651,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":4652,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":4653,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sibiraj-s\"","isFullCredit":false},{"lineNumber":4654,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":4655,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":4656,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4657,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":4658,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":4659,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4660,"author":{"gitId":"sopa301"},"content":" \"node_modules/jest-util/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":4661,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":4662,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",","isFullCredit":false},{"lineNumber":4663,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":4664,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4665,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4666,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":4667,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4668,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4669,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":4670,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4671,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4672,"author":{"gitId":"sopa301"},"content":" \"node_modules/jest-util/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":4673,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":4674,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",","isFullCredit":false},{"lineNumber":4675,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA\u003d\u003d\",","isFullCredit":false},{"lineNumber":4676,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":4677,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4678,"author":{"gitId":"sopa301"},"content":" \"node_modules/jest-util/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":4679,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":4680,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":4681,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":4682,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4683,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4684,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":4685,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4686,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4687,"author":{"gitId":"sopa301"},"content":" \"node_modules/jest-util/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":4688,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":4689,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",","isFullCredit":false},{"lineNumber":4690,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw\u003d\u003d\",","isFullCredit":false},{"lineNumber":4691,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4692,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4693,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":4694,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4695,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4696,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":4697,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4698,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4699,"author":{"gitId":"sopa301"},"content":" \"node_modules/jest-worker\": {","isFullCredit":false},{"lineNumber":4700,"author":{"gitId":"sopa301"},"content":" \"version\": \"27.5.1\",","isFullCredit":false},{"lineNumber":4701,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4702,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4703,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":4704,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4705,"author":{"gitId":"sopa301"},"content":" \"@types/node\": \"*\",","isFullCredit":false},{"lineNumber":4706,"author":{"gitId":"sopa301"},"content":" \"merge-stream\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":4707,"author":{"gitId":"sopa301"},"content":" \"supports-color\": \"^8.0.0\"","isFullCredit":false},{"lineNumber":4708,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4709,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4710,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 10.13.0\"","isFullCredit":false},{"lineNumber":4711,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4712,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4713,"author":{"gitId":"sopa301"},"content":" \"node_modules/jest-worker/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":4714,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":4715,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4716,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4717,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":4718,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4719,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":4720,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4721,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4722,"author":{"gitId":"sopa301"},"content":" \"node_modules/jest-worker/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":4723,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.1.1\",","isFullCredit":false},{"lineNumber":4724,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4725,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4726,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":4727,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4728,"author":{"gitId":"sopa301"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":4729,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4730,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4731,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":4732,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4733,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4734,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/supports-color?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":4735,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4736,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4737,"author":{"gitId":"sopa301"},"content":" \"node_modules/js-stringify\": {","isFullCredit":false},{"lineNumber":4738,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":4739,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4740,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4741,"author":{"gitId":"sopa301"},"content":" \"node_modules/js-tokens\": {","isFullCredit":false},{"lineNumber":4742,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":4743,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4744,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4745,"author":{"gitId":"sopa301"},"content":" \"node_modules/js-yaml\": {","isFullCredit":false},{"lineNumber":4746,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":4747,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4748,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4749,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4750,"author":{"gitId":"sopa301"},"content":" \"argparse\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":4751,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4752,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":4753,"author":{"gitId":"sopa301"},"content":" \"js-yaml\": \"bin/js-yaml.js\"","isFullCredit":false},{"lineNumber":4754,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4755,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4756,"author":{"gitId":"sopa301"},"content":" \"node_modules/json-buffer\": {","isFullCredit":false},{"lineNumber":4757,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":4758,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz\",","isFullCredit":false},{"lineNumber":4759,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":4760,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":4761,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4762,"author":{"gitId":"sopa301"},"content":" \"node_modules/json-parse-even-better-errors\": {","isFullCredit":false},{"lineNumber":4763,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.1\",","isFullCredit":false},{"lineNumber":4764,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4765,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4766,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4767,"author":{"gitId":"sopa301"},"content":" \"node_modules/json-schema-traverse\": {","isFullCredit":false},{"lineNumber":4768,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.4.1\",","isFullCredit":false},{"lineNumber":4769,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4770,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4771,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4772,"author":{"gitId":"sopa301"},"content":" \"node_modules/json-stable-stringify-without-jsonify\": {","isFullCredit":false},{"lineNumber":4773,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":4774,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4775,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4776,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4777,"author":{"gitId":"sopa301"},"content":" \"node_modules/jstransformer\": {","isFullCredit":false},{"lineNumber":4778,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":4779,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4780,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4781,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4782,"author":{"gitId":"sopa301"},"content":" \"is-promise\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":4783,"author":{"gitId":"sopa301"},"content":" \"promise\": \"^7.0.1\"","isFullCredit":false},{"lineNumber":4784,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":4785,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4786,"author":{"gitId":"sopa301"},"content":" \"node_modules/jszip\": {","isFullCredit":false},{"lineNumber":4787,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.10.1\",","isFullCredit":false},{"lineNumber":4788,"author":{"gitId":"sopa301"},"content":" \"license\": \"(MIT OR GPL-3.0-or-later)\",","isFullCredit":false},{"lineNumber":4789,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4790,"author":{"gitId":"sopa301"},"content":" \"lie\": \"~3.3.0\",","isFullCredit":false},{"lineNumber":4791,"author":{"gitId":"sopa301"},"content":" \"pako\": \"~1.0.2\",","isFullCredit":false},{"lineNumber":4792,"author":{"gitId":"sopa301"},"content":" \"readable-stream\": \"~2.3.6\",","isFullCredit":false},{"lineNumber":4793,"author":{"gitId":"sopa301"},"content":" \"setimmediate\": \"^1.0.5\"","isFullCredit":false},{"lineNumber":4794,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4795,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4796,"author":{"gitId":"sopa301"},"content":" \"node_modules/keyv\": {","isFullCredit":false},{"lineNumber":4797,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.5.4\",","isFullCredit":false},{"lineNumber":4798,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz\",","isFullCredit":false},{"lineNumber":4799,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw\u003d\u003d\",","isFullCredit":false},{"lineNumber":4800,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4801,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4802,"author":{"gitId":"sopa301"},"content":" \"json-buffer\": \"3.0.1\"","isFullCredit":false},{"lineNumber":4803,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4804,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4805,"author":{"gitId":"sopa301"},"content":" \"node_modules/kind-of\": {","isFullCredit":false},{"lineNumber":4806,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.3\",","isFullCredit":false},{"lineNumber":4807,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4808,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4809,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4810,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":4811,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4812,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4813,"author":{"gitId":"sopa301"},"content":" \"node_modules/known-css-properties\": {","isFullCredit":false},{"lineNumber":4814,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.30.0\",","isFullCredit":false},{"lineNumber":4815,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.30.0.tgz\",","isFullCredit":false},{"lineNumber":4816,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":4817,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":4818,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4819,"author":{"gitId":"sopa301"},"content":" \"node_modules/levn\": {","isFullCredit":false},{"lineNumber":4820,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.4.1\",","isFullCredit":false},{"lineNumber":4821,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4822,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4823,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4824,"author":{"gitId":"sopa301"},"content":" \"prelude-ls\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":4825,"author":{"gitId":"sopa301"},"content":" \"type-check\": \"~0.4.0\"","isFullCredit":false},{"lineNumber":4826,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4827,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4828,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.8.0\"","isFullCredit":false},{"lineNumber":4829,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4830,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4831,"author":{"gitId":"sopa301"},"content":" \"node_modules/lie\": {","isFullCredit":false},{"lineNumber":4832,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.3.0\",","isFullCredit":false},{"lineNumber":4833,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4834,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4835,"author":{"gitId":"sopa301"},"content":" \"immediate\": \"~3.0.5\"","isFullCredit":false},{"lineNumber":4836,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4837,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4838,"author":{"gitId":"sopa301"},"content":" \"node_modules/lines-and-columns\": {","isFullCredit":false},{"lineNumber":4839,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.4\",","isFullCredit":false},{"lineNumber":4840,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4841,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4842,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4843,"author":{"gitId":"sopa301"},"content":" \"node_modules/linkify-it\": {","isFullCredit":false},{"lineNumber":4844,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.0\",","isFullCredit":false},{"lineNumber":4845,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4846,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4847,"author":{"gitId":"sopa301"},"content":" \"uc.micro\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":4848,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4849,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4850,"author":{"gitId":"sopa301"},"content":" \"node_modules/loader-runner\": {","isFullCredit":false},{"lineNumber":4851,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":4852,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4853,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4854,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":4855,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4856,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6.11.5\"","isFullCredit":false},{"lineNumber":4857,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4858,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4859,"author":{"gitId":"sopa301"},"content":" \"node_modules/locate-path\": {","isFullCredit":false},{"lineNumber":4860,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":4861,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4862,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4863,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4864,"author":{"gitId":"sopa301"},"content":" \"p-locate\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":4865,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4866,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4867,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":4868,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4869,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4870,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":4871,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4872,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4873,"author":{"gitId":"sopa301"},"content":" \"node_modules/lodash\": {","isFullCredit":false},{"lineNumber":4874,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.21\",","isFullCredit":false},{"lineNumber":4875,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4876,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4877,"author":{"gitId":"sopa301"},"content":" \"node_modules/lodash.merge\": {","isFullCredit":false},{"lineNumber":4878,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.6.2\",","isFullCredit":false},{"lineNumber":4879,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4880,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4881,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4882,"author":{"gitId":"sopa301"},"content":" \"node_modules/lodash.truncate\": {","isFullCredit":false},{"lineNumber":4883,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.4.2\",","isFullCredit":false},{"lineNumber":4884,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4885,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4886,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4887,"author":{"gitId":"sopa301"},"content":" \"node_modules/loose-envify\": {","isFullCredit":false},{"lineNumber":4888,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":4889,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4890,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":4891,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4892,"author":{"gitId":"sopa301"},"content":" \"js-tokens\": \"^3.0.0 || ^4.0.0\"","isFullCredit":false},{"lineNumber":4893,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4894,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":4895,"author":{"gitId":"sopa301"},"content":" \"loose-envify\": \"cli.js\"","isFullCredit":false},{"lineNumber":4896,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4897,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4898,"author":{"gitId":"sopa301"},"content":" \"node_modules/magic-string\": {","isFullCredit":false},{"lineNumber":4899,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.30.8\",","isFullCredit":false},{"lineNumber":4900,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4901,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4902,"author":{"gitId":"sopa301"},"content":" \"@jridgewell/sourcemap-codec\": \"^1.4.15\"","isFullCredit":false},{"lineNumber":4903,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4904,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4905,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":4906,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4907,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4908,"author":{"gitId":"sopa301"},"content":" \"node_modules/magic-string/node_modules/@jridgewell/sourcemap-codec\": {","isFullCredit":false},{"lineNumber":4909,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.4.15\",","isFullCredit":false},{"lineNumber":4910,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4911,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4912,"author":{"gitId":"sopa301"},"content":" \"node_modules/markdown-it\": {","isFullCredit":false},{"lineNumber":4913,"author":{"gitId":"sopa301"},"content":" \"version\": \"14.1.0\",","isFullCredit":false},{"lineNumber":4914,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4915,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4916,"author":{"gitId":"sopa301"},"content":" \"argparse\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":4917,"author":{"gitId":"sopa301"},"content":" \"entities\": \"^4.4.0\",","isFullCredit":false},{"lineNumber":4918,"author":{"gitId":"sopa301"},"content":" \"linkify-it\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":4919,"author":{"gitId":"sopa301"},"content":" \"mdurl\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":4920,"author":{"gitId":"sopa301"},"content":" \"punycode.js\": \"^2.3.1\",","isFullCredit":false},{"lineNumber":4921,"author":{"gitId":"sopa301"},"content":" \"uc.micro\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":4922,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4923,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":4924,"author":{"gitId":"sopa301"},"content":" \"markdown-it\": \"bin/markdown-it.mjs\"","isFullCredit":false},{"lineNumber":4925,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4926,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4927,"author":{"gitId":"sopa301"},"content":" \"node_modules/mathml-tag-names\": {","isFullCredit":false},{"lineNumber":4928,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.3\",","isFullCredit":false},{"lineNumber":4929,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4930,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4931,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4932,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":4933,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/wooorm\"","isFullCredit":false},{"lineNumber":4934,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4935,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4936,"author":{"gitId":"sopa301"},"content":" \"node_modules/mdurl\": {","isFullCredit":false},{"lineNumber":4937,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":4938,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4939,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4940,"author":{"gitId":"sopa301"},"content":" \"node_modules/meow\": {","isFullCredit":false},{"lineNumber":4941,"author":{"gitId":"sopa301"},"content":" \"version\": \"13.2.0\",","isFullCredit":false},{"lineNumber":4942,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/meow/-/meow-13.2.0.tgz\",","isFullCredit":false},{"lineNumber":4943,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA\u003d\u003d\",","isFullCredit":false},{"lineNumber":4944,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4945,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4946,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18\"","isFullCredit":false},{"lineNumber":4947,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4948,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4949,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":4950,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4951,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4952,"author":{"gitId":"sopa301"},"content":" \"node_modules/merge-stream\": {","isFullCredit":false},{"lineNumber":4953,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":4954,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4955,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4956,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4957,"author":{"gitId":"sopa301"},"content":" \"node_modules/merge2\": {","isFullCredit":false},{"lineNumber":4958,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.4.1\",","isFullCredit":false},{"lineNumber":4959,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4960,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4961,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4962,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":4963,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4964,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4965,"author":{"gitId":"sopa301"},"content":" \"node_modules/micromatch\": {","isFullCredit":false},{"lineNumber":4966,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.5\",","isFullCredit":false},{"lineNumber":4967,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4968,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4969,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4970,"author":{"gitId":"sopa301"},"content":" \"braces\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":4971,"author":{"gitId":"sopa301"},"content":" \"picomatch\": \"^2.3.1\"","isFullCredit":false},{"lineNumber":4972,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4973,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4974,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8.6\"","isFullCredit":false},{"lineNumber":4975,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4976,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4977,"author":{"gitId":"sopa301"},"content":" \"node_modules/mime-db\": {","isFullCredit":false},{"lineNumber":4978,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.52.0\",","isFullCredit":false},{"lineNumber":4979,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4980,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4981,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":4982,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4983,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":4984,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":4985,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4986,"author":{"gitId":"sopa301"},"content":" \"node_modules/mime-types\": {","isFullCredit":false},{"lineNumber":4987,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.35\",","isFullCredit":false},{"lineNumber":4988,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4989,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4990,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":4991,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4992,"author":{"gitId":"sopa301"},"content":" \"mime-db\": \"1.52.0\"","isFullCredit":false},{"lineNumber":4993,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4994,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4995,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":4996,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":4997,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":4998,"author":{"gitId":"sopa301"},"content":" \"node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":4999,"author":{"gitId":"sopa301"},"content":" \"version\": \"9.0.4\",","isFullCredit":false},{"lineNumber":5000,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz\",","isFullCredit":false},{"lineNumber":5001,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw\u003d\u003d\",","isFullCredit":false},{"lineNumber":5002,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5003,"author":{"gitId":"sopa301"},"content":" \"brace-expansion\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":5004,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5005,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5006,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d16 || 14 \u003e\u003d14.17\"","isFullCredit":false},{"lineNumber":5007,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5008,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5009,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/isaacs\"","isFullCredit":false},{"lineNumber":5010,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5011,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5012,"author":{"gitId":"sopa301"},"content":" \"node_modules/minimist\": {","isFullCredit":false},{"lineNumber":5013,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.7\",","isFullCredit":false},{"lineNumber":5014,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5015,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5016,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5017,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":5018,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5019,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5020,"author":{"gitId":"sopa301"},"content":" \"node_modules/ms\": {","isFullCredit":false},{"lineNumber":5021,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.2\",","isFullCredit":false},{"lineNumber":5022,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5023,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5024,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5025,"author":{"gitId":"sopa301"},"content":" \"node_modules/muicss\": {","isFullCredit":false},{"lineNumber":5026,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.10.3\",","isFullCredit":false},{"lineNumber":5027,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5028,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5029,"author":{"gitId":"sopa301"},"content":" \"react-addons-shallow-compare\": \"^15.6.2\"","isFullCredit":false},{"lineNumber":5030,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5031,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":5032,"author":{"gitId":"sopa301"},"content":" \"react\": \"^0.14.0 || ^15.0.0 || ^16.0.0\"","isFullCredit":false},{"lineNumber":5033,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5034,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5035,"author":{"gitId":"sopa301"},"content":" \"node_modules/nanoid\": {","isFullCredit":false},{"lineNumber":5036,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.3.7\",","isFullCredit":false},{"lineNumber":5037,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":5038,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":5039,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":5040,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ai\"","isFullCredit":false},{"lineNumber":5041,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":5042,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":5043,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5044,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":5045,"author":{"gitId":"sopa301"},"content":" \"nanoid\": \"bin/nanoid.cjs\"","isFullCredit":false},{"lineNumber":5046,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5047,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5048,"author":{"gitId":"sopa301"},"content":" \"node\": \"^10 || ^12 || ^13.7 || ^14 || \u003e\u003d15.0.1\"","isFullCredit":false},{"lineNumber":5049,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5050,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5051,"author":{"gitId":"sopa301"},"content":" \"node_modules/natural-compare\": {","isFullCredit":false},{"lineNumber":5052,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":5053,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5054,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5055,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5056,"author":{"gitId":"sopa301"},"content":" \"node_modules/neo-async\": {","isFullCredit":false},{"lineNumber":5057,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.6.2\",","isFullCredit":false},{"lineNumber":5058,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5059,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5060,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":5061,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5062,"author":{"gitId":"sopa301"},"content":" \"node_modules/node-releases\": {","isFullCredit":false},{"lineNumber":5063,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.8\",","isFullCredit":false},{"lineNumber":5064,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5065,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5066,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":5067,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5068,"author":{"gitId":"sopa301"},"content":" \"node_modules/normalize-path\": {","isFullCredit":false},{"lineNumber":5069,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":5070,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":5071,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5072,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5073,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":5074,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5075,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5076,"author":{"gitId":"sopa301"},"content":" \"node_modules/normalize.css\": {","isFullCredit":false},{"lineNumber":5077,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.0.1\",","isFullCredit":false},{"lineNumber":5078,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5079,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5080,"author":{"gitId":"sopa301"},"content":" \"node_modules/nth-check\": {","isFullCredit":false},{"lineNumber":5081,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.1\",","isFullCredit":false},{"lineNumber":5082,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":5083,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5084,"author":{"gitId":"sopa301"},"content":" \"boolbase\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":5085,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5086,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5087,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/fb55/nth-check?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":5088,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5089,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5090,"author":{"gitId":"sopa301"},"content":" \"node_modules/object-assign\": {","isFullCredit":false},{"lineNumber":5091,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.1\",","isFullCredit":false},{"lineNumber":5092,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5093,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5094,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":5095,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5096,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5097,"author":{"gitId":"sopa301"},"content":" \"node_modules/object-inspect\": {","isFullCredit":false},{"lineNumber":5098,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.13.1\",","isFullCredit":false},{"lineNumber":5099,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5100,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5101,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5102,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":5103,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5104,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5105,"author":{"gitId":"sopa301"},"content":" \"node_modules/object-keys\": {","isFullCredit":false},{"lineNumber":5106,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.1\",","isFullCredit":false},{"lineNumber":5107,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5108,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5109,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5110,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":5111,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5112,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5113,"author":{"gitId":"sopa301"},"content":" \"node_modules/object.assign\": {","isFullCredit":false},{"lineNumber":5114,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.5\",","isFullCredit":false},{"lineNumber":5115,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5116,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5117,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5118,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":5119,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":5120,"author":{"gitId":"sopa301"},"content":" \"has-symbols\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":5121,"author":{"gitId":"sopa301"},"content":" \"object-keys\": \"^1.1.1\"","isFullCredit":false},{"lineNumber":5122,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5123,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5124,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":5125,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5126,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5127,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":5128,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5129,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5130,"author":{"gitId":"sopa301"},"content":" \"node_modules/object.entries\": {","isFullCredit":false},{"lineNumber":5131,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.6\",","isFullCredit":false},{"lineNumber":5132,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5133,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5134,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5135,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":5136,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.1.4\",","isFullCredit":false},{"lineNumber":5137,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.20.4\"","isFullCredit":false},{"lineNumber":5138,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5139,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5140,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":5141,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5142,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5143,"author":{"gitId":"sopa301"},"content":" \"node_modules/object.fromentries\": {","isFullCredit":false},{"lineNumber":5144,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.7\",","isFullCredit":false},{"lineNumber":5145,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5146,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5147,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5148,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":5149,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":5150,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.22.1\"","isFullCredit":false},{"lineNumber":5151,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5152,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5153,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":5154,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5155,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5156,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":5157,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5158,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5159,"author":{"gitId":"sopa301"},"content":" \"node_modules/object.groupby\": {","isFullCredit":false},{"lineNumber":5160,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":5161,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5162,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5163,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5164,"author":{"gitId":"sopa301"},"content":" \"array.prototype.filter\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":5165,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":5166,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":5167,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.22.3\",","isFullCredit":false},{"lineNumber":5168,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":5169,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5170,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5171,"author":{"gitId":"sopa301"},"content":" \"node_modules/object.values\": {","isFullCredit":false},{"lineNumber":5172,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.7\",","isFullCredit":false},{"lineNumber":5173,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5174,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5175,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5176,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":5177,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":5178,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.22.1\"","isFullCredit":false},{"lineNumber":5179,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5180,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5181,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":5182,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5183,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5184,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":5185,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5186,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5187,"author":{"gitId":"sopa301"},"content":" \"node_modules/once\": {","isFullCredit":false},{"lineNumber":5188,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":5189,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":5190,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5191,"author":{"gitId":"sopa301"},"content":" \"wrappy\": \"1\"","isFullCredit":false},{"lineNumber":5192,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5193,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5194,"author":{"gitId":"sopa301"},"content":" \"node_modules/optionator\": {","isFullCredit":false},{"lineNumber":5195,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.9.3\",","isFullCredit":false},{"lineNumber":5196,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5197,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5198,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5199,"author":{"gitId":"sopa301"},"content":" \"@aashutoshrathi/word-wrap\": \"^1.2.3\",","isFullCredit":false},{"lineNumber":5200,"author":{"gitId":"sopa301"},"content":" \"deep-is\": \"^0.1.3\",","isFullCredit":false},{"lineNumber":5201,"author":{"gitId":"sopa301"},"content":" \"fast-levenshtein\": \"^2.0.6\",","isFullCredit":false},{"lineNumber":5202,"author":{"gitId":"sopa301"},"content":" \"levn\": \"^0.4.1\",","isFullCredit":false},{"lineNumber":5203,"author":{"gitId":"sopa301"},"content":" \"prelude-ls\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":5204,"author":{"gitId":"sopa301"},"content":" \"type-check\": \"^0.4.0\"","isFullCredit":false},{"lineNumber":5205,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5206,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5207,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.8.0\"","isFullCredit":false},{"lineNumber":5208,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5209,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5210,"author":{"gitId":"sopa301"},"content":" \"node_modules/p-limit\": {","isFullCredit":false},{"lineNumber":5211,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":5212,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5213,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5214,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5215,"author":{"gitId":"sopa301"},"content":" \"yocto-queue\": \"^0.1.0\"","isFullCredit":false},{"lineNumber":5216,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5217,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5218,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":5219,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5220,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5221,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":5222,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5223,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5224,"author":{"gitId":"sopa301"},"content":" \"node_modules/p-locate\": {","isFullCredit":false},{"lineNumber":5225,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.0\",","isFullCredit":false},{"lineNumber":5226,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5227,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5228,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5229,"author":{"gitId":"sopa301"},"content":" \"p-limit\": \"^3.0.2\"","isFullCredit":false},{"lineNumber":5230,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5231,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5232,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":5233,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5234,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5235,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":5236,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5237,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5238,"author":{"gitId":"sopa301"},"content":" \"node_modules/pako\": {","isFullCredit":false},{"lineNumber":5239,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.11\",","isFullCredit":false},{"lineNumber":5240,"author":{"gitId":"sopa301"},"content":" \"license\": \"(MIT AND Zlib)\"","isFullCredit":false},{"lineNumber":5241,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5242,"author":{"gitId":"sopa301"},"content":" \"node_modules/parent-module\": {","isFullCredit":false},{"lineNumber":5243,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":5244,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5245,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5246,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5247,"author":{"gitId":"sopa301"},"content":" \"callsites\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":5248,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5249,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5250,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":5251,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5252,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5253,"author":{"gitId":"sopa301"},"content":" \"node_modules/parse-json\": {","isFullCredit":false},{"lineNumber":5254,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.2.0\",","isFullCredit":false},{"lineNumber":5255,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5256,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5257,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5258,"author":{"gitId":"sopa301"},"content":" \"@babel/code-frame\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":5259,"author":{"gitId":"sopa301"},"content":" \"error-ex\": \"^1.3.1\",","isFullCredit":false},{"lineNumber":5260,"author":{"gitId":"sopa301"},"content":" \"json-parse-even-better-errors\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":5261,"author":{"gitId":"sopa301"},"content":" \"lines-and-columns\": \"^1.1.6\"","isFullCredit":false},{"lineNumber":5262,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5263,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5264,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5265,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5266,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5267,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":5268,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5269,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5270,"author":{"gitId":"sopa301"},"content":" \"node_modules/path-exists\": {","isFullCredit":false},{"lineNumber":5271,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":5272,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5273,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5274,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5275,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5276,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5277,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5278,"author":{"gitId":"sopa301"},"content":" \"node_modules/path-is-absolute\": {","isFullCredit":false},{"lineNumber":5279,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":5280,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5281,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5282,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":5283,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5284,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5285,"author":{"gitId":"sopa301"},"content":" \"node_modules/path-key\": {","isFullCredit":false},{"lineNumber":5286,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":5287,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5288,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5289,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5290,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5291,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5292,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5293,"author":{"gitId":"sopa301"},"content":" \"node_modules/path-parse\": {","isFullCredit":false},{"lineNumber":5294,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":5295,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5296,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5297,"author":{"gitId":"sopa301"},"content":" \"node_modules/path-type\": {","isFullCredit":false},{"lineNumber":5298,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":5299,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5300,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5301,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5302,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5303,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5304,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5305,"author":{"gitId":"sopa301"},"content":" \"node_modules/picocolors\": {","isFullCredit":false},{"lineNumber":5306,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":5307,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":5308,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5309,"author":{"gitId":"sopa301"},"content":" \"node_modules/picomatch\": {","isFullCredit":false},{"lineNumber":5310,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.1\",","isFullCredit":false},{"lineNumber":5311,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":5312,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5313,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5314,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8.6\"","isFullCredit":false},{"lineNumber":5315,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5316,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5317,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/jonschlinkert\"","isFullCredit":false},{"lineNumber":5318,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5319,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5320,"author":{"gitId":"sopa301"},"content":" \"node_modules/possible-typed-array-names\": {","isFullCredit":false},{"lineNumber":5321,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":5322,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5323,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5324,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5325,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":5326,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5327,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5328,"author":{"gitId":"sopa301"},"content":" \"node_modules/postcss\": {","isFullCredit":false},{"lineNumber":5329,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.4.38\",","isFullCredit":false},{"lineNumber":5330,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":5331,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":5332,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":5333,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/postcss/\"","isFullCredit":false},{"lineNumber":5334,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5335,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":5336,"author":{"gitId":"sopa301"},"content":" \"type\": \"tidelift\",","isFullCredit":false},{"lineNumber":5337,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://tidelift.com/funding/github/npm/postcss\"","isFullCredit":false},{"lineNumber":5338,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5339,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":5340,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":5341,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ai\"","isFullCredit":false},{"lineNumber":5342,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":5343,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":5344,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5345,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5346,"author":{"gitId":"sopa301"},"content":" \"nanoid\": \"^3.3.7\",","isFullCredit":false},{"lineNumber":5347,"author":{"gitId":"sopa301"},"content":" \"picocolors\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":5348,"author":{"gitId":"sopa301"},"content":" \"source-map-js\": \"^1.2.0\"","isFullCredit":false},{"lineNumber":5349,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5350,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5351,"author":{"gitId":"sopa301"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14\"","isFullCredit":false},{"lineNumber":5352,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5353,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5354,"author":{"gitId":"sopa301"},"content":" \"node_modules/postcss-html\": {","isFullCredit":false},{"lineNumber":5355,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.6.0\",","isFullCredit":false},{"lineNumber":5356,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5357,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5358,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5359,"author":{"gitId":"sopa301"},"content":" \"htmlparser2\": \"^8.0.0\",","isFullCredit":false},{"lineNumber":5360,"author":{"gitId":"sopa301"},"content":" \"js-tokens\": \"^8.0.0\",","isFullCredit":false},{"lineNumber":5361,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.4.0\",","isFullCredit":false},{"lineNumber":5362,"author":{"gitId":"sopa301"},"content":" \"postcss-safe-parser\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":5363,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5364,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5365,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12 || \u003e\u003d14\"","isFullCredit":false},{"lineNumber":5366,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5367,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5368,"author":{"gitId":"sopa301"},"content":" \"node_modules/postcss-html/node_modules/js-tokens\": {","isFullCredit":false},{"lineNumber":5369,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.0.1\",","isFullCredit":false},{"lineNumber":5370,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5371,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5372,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5373,"author":{"gitId":"sopa301"},"content":" \"node_modules/postcss-media-query-parser\": {","isFullCredit":false},{"lineNumber":5374,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.2.3\",","isFullCredit":false},{"lineNumber":5375,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz\",","isFullCredit":false},{"lineNumber":5376,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig\u003d\u003d\",","isFullCredit":false},{"lineNumber":5377,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":5378,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5379,"author":{"gitId":"sopa301"},"content":" \"node_modules/postcss-resolve-nested-selector\": {","isFullCredit":false},{"lineNumber":5380,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.1.1\",","isFullCredit":false},{"lineNumber":5381,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5382,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5383,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5384,"author":{"gitId":"sopa301"},"content":" \"node_modules/postcss-safe-parser\": {","isFullCredit":false},{"lineNumber":5385,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":5386,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5387,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5388,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5389,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12.0\"","isFullCredit":false},{"lineNumber":5390,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5391,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5392,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":5393,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/postcss/\"","isFullCredit":false},{"lineNumber":5394,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5395,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":5396,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.3.3\"","isFullCredit":false},{"lineNumber":5397,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5398,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5399,"author":{"gitId":"sopa301"},"content":" \"node_modules/postcss-scss\": {","isFullCredit":false},{"lineNumber":5400,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.9\",","isFullCredit":false},{"lineNumber":5401,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz\",","isFullCredit":false},{"lineNumber":5402,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A\u003d\u003d\",","isFullCredit":false},{"lineNumber":5403,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5404,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":5405,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":5406,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":5407,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/postcss/\"","isFullCredit":false},{"lineNumber":5408,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5409,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":5410,"author":{"gitId":"sopa301"},"content":" \"type\": \"tidelift\",","isFullCredit":false},{"lineNumber":5411,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://tidelift.com/funding/github/npm/postcss-scss\"","isFullCredit":false},{"lineNumber":5412,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5413,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":5414,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":5415,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ai\"","isFullCredit":false},{"lineNumber":5416,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5417,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":5418,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5419,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12.0\"","isFullCredit":false},{"lineNumber":5420,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5421,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":5422,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.4.29\"","isFullCredit":false},{"lineNumber":5423,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5424,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5425,"author":{"gitId":"sopa301"},"content":" \"node_modules/postcss-selector-parser\": {","isFullCredit":false},{"lineNumber":5426,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.16\",","isFullCredit":false},{"lineNumber":5427,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz\",","isFullCredit":false},{"lineNumber":5428,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw\u003d\u003d\",","isFullCredit":false},{"lineNumber":5429,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5430,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5431,"author":{"gitId":"sopa301"},"content":" \"cssesc\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":5432,"author":{"gitId":"sopa301"},"content":" \"util-deprecate\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":5433,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5434,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5435,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":5436,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5437,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5438,"author":{"gitId":"sopa301"},"content":" \"node_modules/postcss-sorting\": {","isFullCredit":false},{"lineNumber":5439,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.0.2\",","isFullCredit":false},{"lineNumber":5440,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-8.0.2.tgz\",","isFullCredit":false},{"lineNumber":5441,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":5442,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5443,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":5444,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.4.20\"","isFullCredit":false},{"lineNumber":5445,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5446,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5447,"author":{"gitId":"sopa301"},"content":" \"node_modules/postcss-value-parser\": {","isFullCredit":false},{"lineNumber":5448,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.2.0\",","isFullCredit":false},{"lineNumber":5449,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5450,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5451,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5452,"author":{"gitId":"sopa301"},"content":" \"node_modules/prelude-ls\": {","isFullCredit":false},{"lineNumber":5453,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":5454,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5455,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5456,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5457,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.8.0\"","isFullCredit":false},{"lineNumber":5458,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5459,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5460,"author":{"gitId":"sopa301"},"content":" \"node_modules/process-nextick-args\": {","isFullCredit":false},{"lineNumber":5461,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":5462,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5463,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5464,"author":{"gitId":"sopa301"},"content":" \"node_modules/promise\": {","isFullCredit":false},{"lineNumber":5465,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.3.1\",","isFullCredit":false},{"lineNumber":5466,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5467,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5468,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5469,"author":{"gitId":"sopa301"},"content":" \"asap\": \"~2.0.3\"","isFullCredit":false},{"lineNumber":5470,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5471,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5472,"author":{"gitId":"sopa301"},"content":" \"node_modules/prop-types\": {","isFullCredit":false},{"lineNumber":5473,"author":{"gitId":"sopa301"},"content":" \"version\": \"15.8.1\",","isFullCredit":false},{"lineNumber":5474,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5475,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":5476,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5477,"author":{"gitId":"sopa301"},"content":" \"loose-envify\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":5478,"author":{"gitId":"sopa301"},"content":" \"object-assign\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":5479,"author":{"gitId":"sopa301"},"content":" \"react-is\": \"^16.13.1\"","isFullCredit":false},{"lineNumber":5480,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5481,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5482,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug\": {","isFullCredit":false},{"lineNumber":5483,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.2\",","isFullCredit":false},{"lineNumber":5484,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5485,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5486,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5487,"author":{"gitId":"sopa301"},"content":" \"pug-code-gen\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":5488,"author":{"gitId":"sopa301"},"content":" \"pug-filters\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":5489,"author":{"gitId":"sopa301"},"content":" \"pug-lexer\": \"^5.0.1\",","isFullCredit":false},{"lineNumber":5490,"author":{"gitId":"sopa301"},"content":" \"pug-linker\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":5491,"author":{"gitId":"sopa301"},"content":" \"pug-load\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":5492,"author":{"gitId":"sopa301"},"content":" \"pug-parser\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":5493,"author":{"gitId":"sopa301"},"content":" \"pug-runtime\": \"^3.0.1\",","isFullCredit":false},{"lineNumber":5494,"author":{"gitId":"sopa301"},"content":" \"pug-strip-comments\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":5495,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5496,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5497,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-attrs\": {","isFullCredit":false},{"lineNumber":5498,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":5499,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5500,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5501,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5502,"author":{"gitId":"sopa301"},"content":" \"constantinople\": \"^4.0.1\",","isFullCredit":false},{"lineNumber":5503,"author":{"gitId":"sopa301"},"content":" \"js-stringify\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":5504,"author":{"gitId":"sopa301"},"content":" \"pug-runtime\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":5505,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5506,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5507,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-code-gen\": {","isFullCredit":false},{"lineNumber":5508,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.2\",","isFullCredit":false},{"lineNumber":5509,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5510,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5511,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5512,"author":{"gitId":"sopa301"},"content":" \"constantinople\": \"^4.0.1\",","isFullCredit":false},{"lineNumber":5513,"author":{"gitId":"sopa301"},"content":" \"doctypes\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":5514,"author":{"gitId":"sopa301"},"content":" \"js-stringify\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":5515,"author":{"gitId":"sopa301"},"content":" \"pug-attrs\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":5516,"author":{"gitId":"sopa301"},"content":" \"pug-error\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":5517,"author":{"gitId":"sopa301"},"content":" \"pug-runtime\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":5518,"author":{"gitId":"sopa301"},"content":" \"void-elements\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":5519,"author":{"gitId":"sopa301"},"content":" \"with\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":5520,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5521,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5522,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-error\": {","isFullCredit":false},{"lineNumber":5523,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":5524,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5525,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5526,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5527,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-filters\": {","isFullCredit":false},{"lineNumber":5528,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":5529,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5530,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5531,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5532,"author":{"gitId":"sopa301"},"content":" \"constantinople\": \"^4.0.1\",","isFullCredit":false},{"lineNumber":5533,"author":{"gitId":"sopa301"},"content":" \"jstransformer\": \"1.0.0\",","isFullCredit":false},{"lineNumber":5534,"author":{"gitId":"sopa301"},"content":" \"pug-error\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":5535,"author":{"gitId":"sopa301"},"content":" \"pug-walk\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":5536,"author":{"gitId":"sopa301"},"content":" \"resolve\": \"^1.15.1\"","isFullCredit":false},{"lineNumber":5537,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5538,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5539,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lexer\": {","isFullCredit":false},{"lineNumber":5540,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.1\",","isFullCredit":false},{"lineNumber":5541,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5542,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5543,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5544,"author":{"gitId":"sopa301"},"content":" \"character-parser\": \"^2.2.0\",","isFullCredit":false},{"lineNumber":5545,"author":{"gitId":"sopa301"},"content":" \"is-expression\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":5546,"author":{"gitId":"sopa301"},"content":" \"pug-error\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":5547,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5548,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5549,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-linker\": {","isFullCredit":false},{"lineNumber":5550,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":5551,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5552,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5553,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5554,"author":{"gitId":"sopa301"},"content":" \"pug-error\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":5555,"author":{"gitId":"sopa301"},"content":" \"pug-walk\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":5556,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5557,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5558,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint\": {","isFullCredit":false},{"lineNumber":5559,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.6.0\",","isFullCredit":false},{"lineNumber":5560,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":5561,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5562,"author":{"gitId":"sopa301"},"content":" \"acorn\": \"^4.0.1\",","isFullCredit":false},{"lineNumber":5563,"author":{"gitId":"sopa301"},"content":" \"commander\": \"^2.9.0\",","isFullCredit":false},{"lineNumber":5564,"author":{"gitId":"sopa301"},"content":" \"css-selector-parser\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":5565,"author":{"gitId":"sopa301"},"content":" \"find-line-column\": \"^0.5.2\",","isFullCredit":false},{"lineNumber":5566,"author":{"gitId":"sopa301"},"content":" \"glob\": \"^7.0.3\",","isFullCredit":false},{"lineNumber":5567,"author":{"gitId":"sopa301"},"content":" \"minimatch\": \"^3.0.3\",","isFullCredit":false},{"lineNumber":5568,"author":{"gitId":"sopa301"},"content":" \"path-is-absolute\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":5569,"author":{"gitId":"sopa301"},"content":" \"pug-attrs\": \"^2.0.3\",","isFullCredit":false},{"lineNumber":5570,"author":{"gitId":"sopa301"},"content":" \"pug-error\": \"^1.3.2\",","isFullCredit":false},{"lineNumber":5571,"author":{"gitId":"sopa301"},"content":" \"pug-lexer\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":5572,"author":{"gitId":"sopa301"},"content":" \"resolve\": \"^1.1.7\",","isFullCredit":false},{"lineNumber":5573,"author":{"gitId":"sopa301"},"content":" \"strip-json-comments\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":5574,"author":{"gitId":"sopa301"},"content":" \"void-elements\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":5575,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5576,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":5577,"author":{"gitId":"sopa301"},"content":" \"pug-lint\": \"bin/pug-lint\"","isFullCredit":false},{"lineNumber":5578,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5579,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5580,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint-vue\": {","isFullCredit":false},{"lineNumber":5581,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":5582,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5583,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5584,"author":{"gitId":"sopa301"},"content":" \"chalk\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":5585,"author":{"gitId":"sopa301"},"content":" \"cheerio\": \"^1.0.0-rc.3\",","isFullCredit":false},{"lineNumber":5586,"author":{"gitId":"sopa301"},"content":" \"commander\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":5587,"author":{"gitId":"sopa301"},"content":" \"htmlparser2\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":5588,"author":{"gitId":"sopa301"},"content":" \"pug-lint\": \"^2.6.0\",","isFullCredit":false},{"lineNumber":5589,"author":{"gitId":"sopa301"},"content":" \"text-table\": \"^0.2.0\",","isFullCredit":false},{"lineNumber":5590,"author":{"gitId":"sopa301"},"content":" \"walk\": \"^2.3.14\"","isFullCredit":false},{"lineNumber":5591,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5592,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":5593,"author":{"gitId":"sopa301"},"content":" \"pug-lint-vue\": \"bin/pug-lint-vue\"","isFullCredit":false},{"lineNumber":5594,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":5595,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5596,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint-vue/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":5597,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":5598,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5599,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5600,"author":{"gitId":"sopa301"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":5601,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5602,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5603,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5604,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5605,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5606,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":5607,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5608,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5609,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint-vue/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":5610,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":5611,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5612,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5613,"author":{"gitId":"sopa301"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":5614,"author":{"gitId":"sopa301"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":5615,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5616,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5617,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":5618,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5619,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5620,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":5621,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5622,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5623,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint-vue/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":5624,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":5625,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5626,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5627,"author":{"gitId":"sopa301"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":5628,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5629,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5630,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":5631,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5632,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5633,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint-vue/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":5634,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":5635,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5636,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5637,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint-vue/node_modules/commander\": {","isFullCredit":false},{"lineNumber":5638,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":5639,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5640,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5641,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":5642,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5643,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5644,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint-vue/node_modules/dom-serializer\": {","isFullCredit":false},{"lineNumber":5645,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.4.1\",","isFullCredit":false},{"lineNumber":5646,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5647,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5648,"author":{"gitId":"sopa301"},"content":" \"domelementtype\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":5649,"author":{"gitId":"sopa301"},"content":" \"domhandler\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":5650,"author":{"gitId":"sopa301"},"content":" \"entities\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":5651,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5652,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5653,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/cheeriojs/dom-serializer?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":5654,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5655,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5656,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint-vue/node_modules/dom-serializer/node_modules/domhandler\": {","isFullCredit":false},{"lineNumber":5657,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.1\",","isFullCredit":false},{"lineNumber":5658,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":5659,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5660,"author":{"gitId":"sopa301"},"content":" \"domelementtype\": \"^2.2.0\"","isFullCredit":false},{"lineNumber":5661,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5662,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5663,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 4\"","isFullCredit":false},{"lineNumber":5664,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5665,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5666,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/fb55/domhandler?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":5667,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5668,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5669,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint-vue/node_modules/domhandler\": {","isFullCredit":false},{"lineNumber":5670,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.3.0\",","isFullCredit":false},{"lineNumber":5671,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":5672,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5673,"author":{"gitId":"sopa301"},"content":" \"domelementtype\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":5674,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5675,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5676,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 4\"","isFullCredit":false},{"lineNumber":5677,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5678,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5679,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/fb55/domhandler?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":5680,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5681,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5682,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint-vue/node_modules/domutils\": {","isFullCredit":false},{"lineNumber":5683,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.8.0\",","isFullCredit":false},{"lineNumber":5684,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":5685,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5686,"author":{"gitId":"sopa301"},"content":" \"dom-serializer\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":5687,"author":{"gitId":"sopa301"},"content":" \"domelementtype\": \"^2.2.0\",","isFullCredit":false},{"lineNumber":5688,"author":{"gitId":"sopa301"},"content":" \"domhandler\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":5689,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5690,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5691,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/fb55/domutils?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":5692,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5693,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5694,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint-vue/node_modules/domutils/node_modules/domhandler\": {","isFullCredit":false},{"lineNumber":5695,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.1\",","isFullCredit":false},{"lineNumber":5696,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":5697,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5698,"author":{"gitId":"sopa301"},"content":" \"domelementtype\": \"^2.2.0\"","isFullCredit":false},{"lineNumber":5699,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5700,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5701,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 4\"","isFullCredit":false},{"lineNumber":5702,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5703,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5704,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/fb55/domhandler?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":5705,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5706,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5707,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint-vue/node_modules/entities\": {","isFullCredit":false},{"lineNumber":5708,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":5709,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":5710,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5711,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/fb55/entities?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":5712,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5713,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5714,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint-vue/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":5715,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":5716,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5717,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5718,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5719,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5720,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5721,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint-vue/node_modules/htmlparser2\": {","isFullCredit":false},{"lineNumber":5722,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":5723,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5724,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5725,"author":{"gitId":"sopa301"},"content":" \"domelementtype\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":5726,"author":{"gitId":"sopa301"},"content":" \"domhandler\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":5727,"author":{"gitId":"sopa301"},"content":" \"domutils\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":5728,"author":{"gitId":"sopa301"},"content":" \"entities\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":5729,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5730,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5731,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint-vue/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":5732,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":5733,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5734,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5735,"author":{"gitId":"sopa301"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":5736,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5737,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5738,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5739,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5740,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5741,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint/node_modules/acorn\": {","isFullCredit":false},{"lineNumber":5742,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.13\",","isFullCredit":false},{"lineNumber":5743,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5744,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":5745,"author":{"gitId":"sopa301"},"content":" \"acorn\": \"bin/acorn\"","isFullCredit":false},{"lineNumber":5746,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5747,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5748,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.4.0\"","isFullCredit":false},{"lineNumber":5749,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5750,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5751,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint/node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":5752,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":5753,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5754,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5755,"author":{"gitId":"sopa301"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":5756,"author":{"gitId":"sopa301"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":5757,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5758,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5759,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint/node_modules/commander\": {","isFullCredit":false},{"lineNumber":5760,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.20.3\",","isFullCredit":false},{"lineNumber":5761,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5762,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5763,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint/node_modules/constantinople\": {","isFullCredit":false},{"lineNumber":5764,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":5765,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5766,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5767,"author":{"gitId":"sopa301"},"content":" \"@types/babel-types\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":5768,"author":{"gitId":"sopa301"},"content":" \"@types/babylon\": \"^6.16.2\",","isFullCredit":false},{"lineNumber":5769,"author":{"gitId":"sopa301"},"content":" \"babel-types\": \"^6.26.0\",","isFullCredit":false},{"lineNumber":5770,"author":{"gitId":"sopa301"},"content":" \"babylon\": \"^6.18.0\"","isFullCredit":false},{"lineNumber":5771,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5772,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5773,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint/node_modules/is-expression\": {","isFullCredit":false},{"lineNumber":5774,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":5775,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5776,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5777,"author":{"gitId":"sopa301"},"content":" \"acorn\": \"~4.0.2\",","isFullCredit":false},{"lineNumber":5778,"author":{"gitId":"sopa301"},"content":" \"object-assign\": \"^4.0.1\"","isFullCredit":false},{"lineNumber":5779,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5780,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5781,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint/node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":5782,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":5783,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":5784,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5785,"author":{"gitId":"sopa301"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":5786,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5787,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5788,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":5789,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5790,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5791,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint/node_modules/pug-attrs\": {","isFullCredit":false},{"lineNumber":5792,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.4\",","isFullCredit":false},{"lineNumber":5793,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5794,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5795,"author":{"gitId":"sopa301"},"content":" \"constantinople\": \"^3.0.1\",","isFullCredit":false},{"lineNumber":5796,"author":{"gitId":"sopa301"},"content":" \"js-stringify\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":5797,"author":{"gitId":"sopa301"},"content":" \"pug-runtime\": \"^2.0.5\"","isFullCredit":false},{"lineNumber":5798,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5799,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5800,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint/node_modules/pug-error\": {","isFullCredit":false},{"lineNumber":5801,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.3.3\",","isFullCredit":false},{"lineNumber":5802,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5803,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5804,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint/node_modules/pug-lexer\": {","isFullCredit":false},{"lineNumber":5805,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":5806,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5807,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5808,"author":{"gitId":"sopa301"},"content":" \"character-parser\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":5809,"author":{"gitId":"sopa301"},"content":" \"is-expression\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":5810,"author":{"gitId":"sopa301"},"content":" \"pug-error\": \"^1.3.3\"","isFullCredit":false},{"lineNumber":5811,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5812,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5813,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint/node_modules/pug-runtime\": {","isFullCredit":false},{"lineNumber":5814,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.5\",","isFullCredit":false},{"lineNumber":5815,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5816,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5817,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint/node_modules/strip-json-comments\": {","isFullCredit":false},{"lineNumber":5818,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":5819,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5820,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5821,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":5822,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5823,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5824,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-lint/node_modules/void-elements\": {","isFullCredit":false},{"lineNumber":5825,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":5826,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5827,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5828,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":5829,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5830,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5831,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-load\": {","isFullCredit":false},{"lineNumber":5832,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":5833,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5834,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5835,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5836,"author":{"gitId":"sopa301"},"content":" \"object-assign\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":5837,"author":{"gitId":"sopa301"},"content":" \"pug-walk\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":5838,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5839,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5840,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-parser\": {","isFullCredit":false},{"lineNumber":5841,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":5842,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5843,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5844,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5845,"author":{"gitId":"sopa301"},"content":" \"pug-error\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":5846,"author":{"gitId":"sopa301"},"content":" \"token-stream\": \"1.0.0\"","isFullCredit":false},{"lineNumber":5847,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5848,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5849,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-runtime\": {","isFullCredit":false},{"lineNumber":5850,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":5851,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5852,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5853,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5854,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-strip-comments\": {","isFullCredit":false},{"lineNumber":5855,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":5856,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5857,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5858,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5859,"author":{"gitId":"sopa301"},"content":" \"pug-error\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":5860,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5861,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5862,"author":{"gitId":"sopa301"},"content":" \"node_modules/pug-walk\": {","isFullCredit":false},{"lineNumber":5863,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":5864,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5865,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5866,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5867,"author":{"gitId":"sopa301"},"content":" \"node_modules/punycode\": {","isFullCredit":false},{"lineNumber":5868,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":5869,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5870,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5871,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5872,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":5873,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5874,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5875,"author":{"gitId":"sopa301"},"content":" \"node_modules/punycode.js\": {","isFullCredit":false},{"lineNumber":5876,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.1\",","isFullCredit":false},{"lineNumber":5877,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5878,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5879,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":5880,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5881,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5882,"author":{"gitId":"sopa301"},"content":" \"node_modules/queue-microtask\": {","isFullCredit":false},{"lineNumber":5883,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.3\",","isFullCredit":false},{"lineNumber":5884,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5885,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":5886,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":5887,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":5888,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":5889,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5890,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":5891,"author":{"gitId":"sopa301"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":5892,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":5893,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5894,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":5895,"author":{"gitId":"sopa301"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":5896,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":5897,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5898,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":5899,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5900,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5901,"author":{"gitId":"sopa301"},"content":" \"node_modules/randombytes\": {","isFullCredit":false},{"lineNumber":5902,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":5903,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5904,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5905,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":5906,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5907,"author":{"gitId":"sopa301"},"content":" \"safe-buffer\": \"^5.1.0\"","isFullCredit":false},{"lineNumber":5908,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5909,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5910,"author":{"gitId":"sopa301"},"content":" \"node_modules/react\": {","isFullCredit":false},{"lineNumber":5911,"author":{"gitId":"sopa301"},"content":" \"version\": \"16.14.0\",","isFullCredit":false},{"lineNumber":5912,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5913,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":5914,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5915,"author":{"gitId":"sopa301"},"content":" \"loose-envify\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":5916,"author":{"gitId":"sopa301"},"content":" \"object-assign\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":5917,"author":{"gitId":"sopa301"},"content":" \"prop-types\": \"^15.6.2\"","isFullCredit":false},{"lineNumber":5918,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5919,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5920,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":5921,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5922,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5923,"author":{"gitId":"sopa301"},"content":" \"node_modules/react-addons-shallow-compare\": {","isFullCredit":false},{"lineNumber":5924,"author":{"gitId":"sopa301"},"content":" \"version\": \"15.6.3\",","isFullCredit":false},{"lineNumber":5925,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5926,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5927,"author":{"gitId":"sopa301"},"content":" \"object-assign\": \"^4.1.0\"","isFullCredit":false},{"lineNumber":5928,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5929,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5930,"author":{"gitId":"sopa301"},"content":" \"node_modules/react-is\": {","isFullCredit":false},{"lineNumber":5931,"author":{"gitId":"sopa301"},"content":" \"version\": \"16.13.1\",","isFullCredit":false},{"lineNumber":5932,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5933,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":5934,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5935,"author":{"gitId":"sopa301"},"content":" \"node_modules/readable-stream\": {","isFullCredit":false},{"lineNumber":5936,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.7\",","isFullCredit":false},{"lineNumber":5937,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5938,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5939,"author":{"gitId":"sopa301"},"content":" \"core-util-is\": \"~1.0.0\",","isFullCredit":false},{"lineNumber":5940,"author":{"gitId":"sopa301"},"content":" \"inherits\": \"~2.0.3\",","isFullCredit":false},{"lineNumber":5941,"author":{"gitId":"sopa301"},"content":" \"isarray\": \"~1.0.0\",","isFullCredit":false},{"lineNumber":5942,"author":{"gitId":"sopa301"},"content":" \"process-nextick-args\": \"~2.0.0\",","isFullCredit":false},{"lineNumber":5943,"author":{"gitId":"sopa301"},"content":" \"safe-buffer\": \"~5.1.1\",","isFullCredit":false},{"lineNumber":5944,"author":{"gitId":"sopa301"},"content":" \"string_decoder\": \"~1.1.1\",","isFullCredit":false},{"lineNumber":5945,"author":{"gitId":"sopa301"},"content":" \"util-deprecate\": \"~1.0.1\"","isFullCredit":false},{"lineNumber":5946,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5947,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5948,"author":{"gitId":"sopa301"},"content":" \"node_modules/readdirp\": {","isFullCredit":false},{"lineNumber":5949,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.6.0\",","isFullCredit":false},{"lineNumber":5950,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":5951,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5952,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5953,"author":{"gitId":"sopa301"},"content":" \"picomatch\": \"^2.2.1\"","isFullCredit":false},{"lineNumber":5954,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5955,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5956,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8.10.0\"","isFullCredit":false},{"lineNumber":5957,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5958,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5959,"author":{"gitId":"sopa301"},"content":" \"node_modules/regexp.prototype.flags\": {","isFullCredit":false},{"lineNumber":5960,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.5.2\",","isFullCredit":false},{"lineNumber":5961,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5962,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5963,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5964,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.6\",","isFullCredit":false},{"lineNumber":5965,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":5966,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":5967,"author":{"gitId":"sopa301"},"content":" \"set-function-name\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":5968,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5969,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5970,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":5971,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":5972,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5973,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":5974,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5975,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5976,"author":{"gitId":"sopa301"},"content":" \"node_modules/require-from-string\": {","isFullCredit":false},{"lineNumber":5977,"author":{"gitId":"-"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":5978,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5979,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5980,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5981,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":5982,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5983,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5984,"author":{"gitId":"sopa301"},"content":" \"node_modules/resolve\": {","isFullCredit":false},{"lineNumber":5985,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.22.8\",","isFullCredit":false},{"lineNumber":5986,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5987,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5988,"author":{"gitId":"sopa301"},"content":" \"is-core-module\": \"^2.13.0\",","isFullCredit":false},{"lineNumber":5989,"author":{"gitId":"-"},"content":" \"path-parse\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":5990,"author":{"gitId":"-"},"content":" \"supports-preserve-symlinks-flag\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":5991,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5992,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":5993,"author":{"gitId":"sopa301"},"content":" \"resolve\": \"bin/resolve\"","isFullCredit":false},{"lineNumber":5994,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5995,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5996,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":5997,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5998,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5999,"author":{"gitId":"sopa301"},"content":" \"node_modules/resolve-from\": {","isFullCredit":false},{"lineNumber":6000,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":6001,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6002,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6003,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6004,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":6005,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6006,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6007,"author":{"gitId":"sopa301"},"content":" \"node_modules/reusify\": {","isFullCredit":false},{"lineNumber":6008,"author":{"gitId":"-"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":6009,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6010,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6011,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6012,"author":{"gitId":"sopa301"},"content":" \"iojs\": \"\u003e\u003d1.0.0\",","isFullCredit":false},{"lineNumber":6013,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":6014,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6015,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6016,"author":{"gitId":"sopa301"},"content":" \"node_modules/rimraf\": {","isFullCredit":false},{"lineNumber":6017,"author":{"gitId":"-"},"content":" \"version\": \"3.0.2\",","isFullCredit":false},{"lineNumber":6018,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6019,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":6020,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6021,"author":{"gitId":"-"},"content":" \"glob\": \"^7.1.3\"","isFullCredit":false},{"lineNumber":6022,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6023,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":6024,"author":{"gitId":"sopa301"},"content":" \"rimraf\": \"bin.js\"","isFullCredit":false},{"lineNumber":6025,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6026,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6027,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/isaacs\"","isFullCredit":false},{"lineNumber":6028,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6029,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6030,"author":{"gitId":"sopa301"},"content":" \"node_modules/rollup\": {","isFullCredit":false},{"lineNumber":6031,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6032,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz\",","isFullCredit":false},{"lineNumber":6033,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":6034,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6035,"author":{"gitId":"sopa301"},"content":" \"@types/estree\": \"1.0.5\"","isFullCredit":false},{"lineNumber":6036,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6037,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":6038,"author":{"gitId":"sopa301"},"content":" \"rollup\": \"dist/bin/rollup\"","isFullCredit":false},{"lineNumber":6039,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6040,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6041,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18.0.0\",","isFullCredit":false},{"lineNumber":6042,"author":{"gitId":"sopa301"},"content":" \"npm\": \"\u003e\u003d8.0.0\"","isFullCredit":false},{"lineNumber":6043,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6044,"author":{"gitId":"sopa301"},"content":" \"optionalDependencies\": {","isFullCredit":false},{"lineNumber":6045,"author":{"gitId":"sopa301"},"content":" \"@rollup/rollup-android-arm-eabi\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6046,"author":{"gitId":"sopa301"},"content":" \"@rollup/rollup-android-arm64\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6047,"author":{"gitId":"sopa301"},"content":" \"@rollup/rollup-darwin-arm64\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6048,"author":{"gitId":"sopa301"},"content":" \"@rollup/rollup-darwin-x64\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6049,"author":{"gitId":"sopa301"},"content":" \"@rollup/rollup-linux-arm-gnueabihf\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6050,"author":{"gitId":"sopa301"},"content":" \"@rollup/rollup-linux-arm-musleabihf\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6051,"author":{"gitId":"sopa301"},"content":" \"@rollup/rollup-linux-arm64-gnu\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6052,"author":{"gitId":"sopa301"},"content":" \"@rollup/rollup-linux-arm64-musl\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6053,"author":{"gitId":"sopa301"},"content":" \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6054,"author":{"gitId":"sopa301"},"content":" \"@rollup/rollup-linux-riscv64-gnu\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6055,"author":{"gitId":"sopa301"},"content":" \"@rollup/rollup-linux-s390x-gnu\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6056,"author":{"gitId":"sopa301"},"content":" \"@rollup/rollup-linux-x64-gnu\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6057,"author":{"gitId":"sopa301"},"content":" \"@rollup/rollup-linux-x64-musl\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6058,"author":{"gitId":"sopa301"},"content":" \"@rollup/rollup-win32-arm64-msvc\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6059,"author":{"gitId":"sopa301"},"content":" \"@rollup/rollup-win32-ia32-msvc\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6060,"author":{"gitId":"sopa301"},"content":" \"@rollup/rollup-win32-x64-msvc\": \"4.17.2\",","isFullCredit":false},{"lineNumber":6061,"author":{"gitId":"sopa301"},"content":" \"fsevents\": \"~2.3.2\"","isFullCredit":false},{"lineNumber":6062,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6063,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6064,"author":{"gitId":"sopa301"},"content":" \"node_modules/run-parallel\": {","isFullCredit":false},{"lineNumber":6065,"author":{"gitId":"-"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":6066,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6067,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":6068,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":6069,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":6070,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":6071,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6072,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":6073,"author":{"gitId":"sopa301"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":6074,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":6075,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6076,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":6077,"author":{"gitId":"sopa301"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":6078,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":6079,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":6080,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":6081,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6082,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6083,"author":{"gitId":"-"},"content":" \"queue-microtask\": \"^1.2.2\"","isFullCredit":false},{"lineNumber":6084,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6085,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6086,"author":{"gitId":"sopa301"},"content":" \"node_modules/safe-array-concat\": {","isFullCredit":false},{"lineNumber":6087,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.2\",","isFullCredit":false},{"lineNumber":6088,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6089,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6090,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6091,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":6092,"author":{"gitId":"sopa301"},"content":" \"get-intrinsic\": \"^1.2.4\",","isFullCredit":false},{"lineNumber":6093,"author":{"gitId":"sopa301"},"content":" \"has-symbols\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":6094,"author":{"gitId":"sopa301"},"content":" \"isarray\": \"^2.0.5\"","isFullCredit":false},{"lineNumber":6095,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6096,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6097,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.4\"","isFullCredit":false},{"lineNumber":6098,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6099,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6100,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":6101,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6102,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6103,"author":{"gitId":"sopa301"},"content":" \"node_modules/safe-array-concat/node_modules/isarray\": {","isFullCredit":false},{"lineNumber":6104,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.5\",","isFullCredit":false},{"lineNumber":6105,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6106,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6107,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6108,"author":{"gitId":"sopa301"},"content":" \"node_modules/safe-buffer\": {","isFullCredit":false},{"lineNumber":6109,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.1.2\",","isFullCredit":false},{"lineNumber":6110,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6111,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6112,"author":{"gitId":"sopa301"},"content":" \"node_modules/safe-regex-test\": {","isFullCredit":false},{"lineNumber":6113,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":6114,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6115,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6116,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6117,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.6\",","isFullCredit":false},{"lineNumber":6118,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":6119,"author":{"gitId":"-"},"content":" \"is-regex\": \"^1.1.4\"","isFullCredit":false},{"lineNumber":6120,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6121,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6122,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":6123,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6124,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6125,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":6126,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6127,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6128,"author":{"gitId":"sopa301"},"content":" \"node_modules/sass\": {","isFullCredit":false},{"lineNumber":6129,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.72.0\",","isFullCredit":false},{"lineNumber":6130,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":6131,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6132,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6133,"author":{"gitId":"-"},"content":" \"chokidar\": \"\u003e\u003d3.0.0 \u003c4.0.0\",","isFullCredit":false},{"lineNumber":6134,"author":{"gitId":"-"},"content":" \"immutable\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":6135,"author":{"gitId":"-"},"content":" \"source-map-js\": \"\u003e\u003d0.6.2 \u003c2.0.0\"","isFullCredit":false},{"lineNumber":6136,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6137,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":6138,"author":{"gitId":"sopa301"},"content":" \"sass\": \"sass.js\"","isFullCredit":false},{"lineNumber":6139,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6140,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6141,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d14.0.0\"","isFullCredit":false},{"lineNumber":6142,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6143,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6144,"author":{"gitId":"sopa301"},"content":" \"node_modules/seedrandom\": {","isFullCredit":false},{"lineNumber":6145,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.5\",","isFullCredit":false},{"lineNumber":6146,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6147,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6148,"author":{"gitId":"sopa301"},"content":" \"node_modules/semver\": {","isFullCredit":false},{"lineNumber":6149,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.3.1\",","isFullCredit":false},{"lineNumber":6150,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6151,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":6152,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":6153,"author":{"gitId":"sopa301"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":6154,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6155,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6156,"author":{"gitId":"sopa301"},"content":" \"node_modules/serialize-javascript\": {","isFullCredit":false},{"lineNumber":6157,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.1\",","isFullCredit":false},{"lineNumber":6158,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6159,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":6160,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":6161,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6162,"author":{"gitId":"sopa301"},"content":" \"randombytes\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":6163,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6164,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6165,"author":{"gitId":"sopa301"},"content":" \"node_modules/set-function-length\": {","isFullCredit":false},{"lineNumber":6166,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.2\",","isFullCredit":false},{"lineNumber":6167,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6168,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6169,"author":{"gitId":"sopa301"},"content":" \"define-data-property\": \"^1.1.4\",","isFullCredit":false},{"lineNumber":6170,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":6171,"author":{"gitId":"sopa301"},"content":" \"function-bind\": \"^1.1.2\",","isFullCredit":false},{"lineNumber":6172,"author":{"gitId":"sopa301"},"content":" \"get-intrinsic\": \"^1.2.4\",","isFullCredit":false},{"lineNumber":6173,"author":{"gitId":"sopa301"},"content":" \"gopd\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":6174,"author":{"gitId":"sopa301"},"content":" \"has-property-descriptors\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":6175,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6176,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6177,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":6178,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6179,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6180,"author":{"gitId":"sopa301"},"content":" \"node_modules/set-function-name\": {","isFullCredit":false},{"lineNumber":6181,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":6182,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6183,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6184,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6185,"author":{"gitId":"sopa301"},"content":" \"define-data-property\": \"^1.1.4\",","isFullCredit":false},{"lineNumber":6186,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":6187,"author":{"gitId":"sopa301"},"content":" \"functions-have-names\": \"^1.2.3\",","isFullCredit":false},{"lineNumber":6188,"author":{"gitId":"sopa301"},"content":" \"has-property-descriptors\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":6189,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6190,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6191,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":6192,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6193,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6194,"author":{"gitId":"sopa301"},"content":" \"node_modules/setimmediate\": {","isFullCredit":false},{"lineNumber":6195,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":6196,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6197,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6198,"author":{"gitId":"sopa301"},"content":" \"node_modules/shebang-command\": {","isFullCredit":false},{"lineNumber":6199,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":6200,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6201,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6202,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6203,"author":{"gitId":"-"},"content":" \"shebang-regex\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":6204,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6205,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6206,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6207,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6208,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6209,"author":{"gitId":"sopa301"},"content":" \"node_modules/shebang-regex\": {","isFullCredit":false},{"lineNumber":6210,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":6211,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6212,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6213,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6214,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6215,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6216,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6217,"author":{"gitId":"sopa301"},"content":" \"node_modules/side-channel\": {","isFullCredit":false},{"lineNumber":6218,"author":{"gitId":"-"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":6219,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6220,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6221,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6222,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":6223,"author":{"gitId":"-"},"content":" \"get-intrinsic\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":6224,"author":{"gitId":"-"},"content":" \"object-inspect\": \"^1.9.0\"","isFullCredit":false},{"lineNumber":6225,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6226,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6227,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":6228,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6229,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6230,"author":{"gitId":"sopa301"},"content":" \"node_modules/slash\": {","isFullCredit":false},{"lineNumber":6231,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":6232,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6233,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6234,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6235,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6236,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6237,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6238,"author":{"gitId":"sopa301"},"content":" \"node_modules/slice-ansi\": {","isFullCredit":false},{"lineNumber":6239,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":6240,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6241,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6242,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6243,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":6244,"author":{"gitId":"-"},"content":" \"astral-regex\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":6245,"author":{"gitId":"-"},"content":" \"is-fullwidth-code-point\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":6246,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6247,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6248,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":6249,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6250,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6251,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/slice-ansi?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":6252,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6253,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6254,"author":{"gitId":"sopa301"},"content":" \"node_modules/slice-ansi/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":6255,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":6256,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6257,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6258,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6259,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":6260,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6261,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6262,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6263,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6264,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6265,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":6266,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6267,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6268,"author":{"gitId":"sopa301"},"content":" \"node_modules/slice-ansi/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":6269,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":6270,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6271,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6272,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6273,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":6274,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6275,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6276,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":6277,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6278,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6279,"author":{"gitId":"sopa301"},"content":" \"node_modules/slice-ansi/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":6280,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":6281,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6282,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6283,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6284,"author":{"gitId":"sopa301"},"content":" \"node_modules/source-map\": {","isFullCredit":false},{"lineNumber":6285,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.6.1\",","isFullCredit":false},{"lineNumber":6286,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":6287,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":6288,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":6289,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6290,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":6291,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6292,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6293,"author":{"gitId":"sopa301"},"content":" \"node_modules/source-map-js\": {","isFullCredit":false},{"lineNumber":6294,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":6295,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":6296,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6297,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":6298,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6299,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6300,"author":{"gitId":"sopa301"},"content":" \"node_modules/source-map-support\": {","isFullCredit":false},{"lineNumber":6301,"author":{"gitId":"-"},"content":" \"version\": \"0.5.21\",","isFullCredit":false},{"lineNumber":6302,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":6303,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6304,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":6305,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6306,"author":{"gitId":"-"},"content":" \"buffer-from\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":6307,"author":{"gitId":"-"},"content":" \"source-map\": \"^0.6.0\"","isFullCredit":false},{"lineNumber":6308,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6309,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6310,"author":{"gitId":"sopa301"},"content":" \"node_modules/string_decoder\": {","isFullCredit":false},{"lineNumber":6311,"author":{"gitId":"-"},"content":" \"version\": \"1.1.1\",","isFullCredit":false},{"lineNumber":6312,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6313,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6314,"author":{"gitId":"-"},"content":" \"safe-buffer\": \"~5.1.0\"","isFullCredit":false},{"lineNumber":6315,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6316,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6317,"author":{"gitId":"sopa301"},"content":" \"node_modules/string-width\": {","isFullCredit":false},{"lineNumber":6318,"author":{"gitId":"-"},"content":" \"version\": \"4.2.3\",","isFullCredit":false},{"lineNumber":6319,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6320,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6321,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6322,"author":{"gitId":"-"},"content":" \"emoji-regex\": \"^8.0.0\",","isFullCredit":false},{"lineNumber":6323,"author":{"gitId":"-"},"content":" \"is-fullwidth-code-point\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":6324,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":6325,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6326,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6327,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6328,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6329,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6330,"author":{"gitId":"sopa301"},"content":" \"node_modules/string.prototype.trim\": {","isFullCredit":false},{"lineNumber":6331,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.8\",","isFullCredit":false},{"lineNumber":6332,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6333,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6334,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6335,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":6336,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":6337,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.22.1\"","isFullCredit":false},{"lineNumber":6338,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6339,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6340,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":6341,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6342,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6343,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":6344,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6345,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6346,"author":{"gitId":"sopa301"},"content":" \"node_modules/string.prototype.trimend\": {","isFullCredit":false},{"lineNumber":6347,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":6348,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6349,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6350,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6351,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":6352,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":6353,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.22.1\"","isFullCredit":false},{"lineNumber":6354,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6355,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6356,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":6357,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6358,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6359,"author":{"gitId":"sopa301"},"content":" \"node_modules/string.prototype.trimstart\": {","isFullCredit":false},{"lineNumber":6360,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":6361,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6362,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6363,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6364,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":6365,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":6366,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.22.1\"","isFullCredit":false},{"lineNumber":6367,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6368,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6369,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":6370,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6371,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6372,"author":{"gitId":"sopa301"},"content":" \"node_modules/strip-ansi\": {","isFullCredit":false},{"lineNumber":6373,"author":{"gitId":"-"},"content":" \"version\": \"6.0.1\",","isFullCredit":false},{"lineNumber":6374,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6375,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6376,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6377,"author":{"gitId":"-"},"content":" \"ansi-regex\": \"^5.0.1\"","isFullCredit":false},{"lineNumber":6378,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6379,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6380,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6381,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6382,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6383,"author":{"gitId":"sopa301"},"content":" \"node_modules/strip-bom\": {","isFullCredit":false},{"lineNumber":6384,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":6385,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6386,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6387,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6388,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":6389,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6390,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6391,"author":{"gitId":"sopa301"},"content":" \"node_modules/strip-json-comments\": {","isFullCredit":false},{"lineNumber":6392,"author":{"gitId":"-"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":6393,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6394,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6395,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6396,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6397,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6398,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6399,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":6400,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6401,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6402,"author":{"gitId":"sopa301"},"content":" \"node_modules/style-search\": {","isFullCredit":false},{"lineNumber":6403,"author":{"gitId":"-"},"content":" \"version\": \"0.1.0\",","isFullCredit":false},{"lineNumber":6404,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6405,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":6406,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6407,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint\": {","isFullCredit":false},{"lineNumber":6408,"author":{"gitId":"sopa301"},"content":" \"version\": \"16.3.1\",","isFullCredit":false},{"lineNumber":6409,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/stylelint/-/stylelint-16.3.1.tgz\",","isFullCredit":false},{"lineNumber":6410,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-/JOwQnBvxEKOT2RtNgGpBVXnCSMBgKOL2k7w0K52htwCyJls4+cHvc4YZgXlVoAZS9QJd2DgYAiRnja96pTgxw\u003d\u003d\",","isFullCredit":false},{"lineNumber":6411,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6412,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6413,"author":{"gitId":"sopa301"},"content":" \"@csstools/css-parser-algorithms\": \"^2.6.1\",","isFullCredit":false},{"lineNumber":6414,"author":{"gitId":"sopa301"},"content":" \"@csstools/css-tokenizer\": \"^2.2.4\",","isFullCredit":false},{"lineNumber":6415,"author":{"gitId":"sopa301"},"content":" \"@csstools/media-query-list-parser\": \"^2.1.9\",","isFullCredit":false},{"lineNumber":6416,"author":{"gitId":"sopa301"},"content":" \"@csstools/selector-specificity\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":6417,"author":{"gitId":"sopa301"},"content":" \"@dual-bundle/import-meta-resolve\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":6418,"author":{"gitId":"-"},"content":" \"balanced-match\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":6419,"author":{"gitId":"-"},"content":" \"colord\": \"^2.9.3\",","isFullCredit":false},{"lineNumber":6420,"author":{"gitId":"sopa301"},"content":" \"cosmiconfig\": \"^9.0.0\",","isFullCredit":false},{"lineNumber":6421,"author":{"gitId":"sopa301"},"content":" \"css-functions-list\": \"^3.2.1\",","isFullCredit":false},{"lineNumber":6422,"author":{"gitId":"sopa301"},"content":" \"css-tree\": \"^2.3.1\",","isFullCredit":false},{"lineNumber":6423,"author":{"gitId":"-"},"content":" \"debug\": \"^4.3.4\",","isFullCredit":false},{"lineNumber":6424,"author":{"gitId":"sopa301"},"content":" \"fast-glob\": \"^3.3.2\",","isFullCredit":false},{"lineNumber":6425,"author":{"gitId":"-"},"content":" \"fastest-levenshtein\": \"^1.0.16\",","isFullCredit":false},{"lineNumber":6426,"author":{"gitId":"sopa301"},"content":" \"file-entry-cache\": \"^8.0.0\",","isFullCredit":false},{"lineNumber":6427,"author":{"gitId":"-"},"content":" \"global-modules\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":6428,"author":{"gitId":"-"},"content":" \"globby\": \"^11.1.0\",","isFullCredit":false},{"lineNumber":6429,"author":{"gitId":"-"},"content":" \"globjoin\": \"^0.1.4\",","isFullCredit":false},{"lineNumber":6430,"author":{"gitId":"sopa301"},"content":" \"html-tags\": \"^3.3.1\",","isFullCredit":false},{"lineNumber":6431,"author":{"gitId":"sopa301"},"content":" \"ignore\": \"^5.3.1\",","isFullCredit":false},{"lineNumber":6432,"author":{"gitId":"-"},"content":" \"imurmurhash\": \"^0.1.4\",","isFullCredit":false},{"lineNumber":6433,"author":{"gitId":"-"},"content":" \"is-plain-object\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":6434,"author":{"gitId":"sopa301"},"content":" \"known-css-properties\": \"^0.30.0\",","isFullCredit":false},{"lineNumber":6435,"author":{"gitId":"-"},"content":" \"mathml-tag-names\": \"^2.1.3\",","isFullCredit":false},{"lineNumber":6436,"author":{"gitId":"sopa301"},"content":" \"meow\": \"^13.2.0\",","isFullCredit":false},{"lineNumber":6437,"author":{"gitId":"-"},"content":" \"micromatch\": \"^4.0.5\",","isFullCredit":false},{"lineNumber":6438,"author":{"gitId":"-"},"content":" \"normalize-path\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":6439,"author":{"gitId":"-"},"content":" \"picocolors\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":6440,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.4.38\",","isFullCredit":false},{"lineNumber":6441,"author":{"gitId":"-"},"content":" \"postcss-resolve-nested-selector\": \"^0.1.1\",","isFullCredit":false},{"lineNumber":6442,"author":{"gitId":"sopa301"},"content":" \"postcss-safe-parser\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":6443,"author":{"gitId":"sopa301"},"content":" \"postcss-selector-parser\": \"^6.0.16\",","isFullCredit":false},{"lineNumber":6444,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":6445,"author":{"gitId":"-"},"content":" \"resolve-from\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":6446,"author":{"gitId":"-"},"content":" \"string-width\": \"^4.2.3\",","isFullCredit":false},{"lineNumber":6447,"author":{"gitId":"sopa301"},"content":" \"strip-ansi\": \"^7.1.0\",","isFullCredit":false},{"lineNumber":6448,"author":{"gitId":"sopa301"},"content":" \"supports-hyperlinks\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":6449,"author":{"gitId":"-"},"content":" \"svg-tags\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":6450,"author":{"gitId":"-"},"content":" \"table\": \"^6.8.1\",","isFullCredit":false},{"lineNumber":6451,"author":{"gitId":"sopa301"},"content":" \"write-file-atomic\": \"^5.0.1\"","isFullCredit":false},{"lineNumber":6452,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6453,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":6454,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"bin/stylelint.mjs\"","isFullCredit":false},{"lineNumber":6455,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6456,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6457,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18.12.0\"","isFullCredit":false},{"lineNumber":6458,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6459,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6460,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":6461,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/stylelint\"","isFullCredit":false},{"lineNumber":6462,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6463,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6464,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-config-html\": {","isFullCredit":false},{"lineNumber":6465,"author":{"gitId":"-"},"content":" \"version\": \"1.1.0\",","isFullCredit":false},{"lineNumber":6466,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6467,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6468,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6469,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12 || \u003e\u003d14\"","isFullCredit":false},{"lineNumber":6470,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6471,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6472,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ota-meshi\"","isFullCredit":false},{"lineNumber":6473,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6474,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6475,"author":{"gitId":"sopa301"},"content":" \"postcss-html\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":6476,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"\u003e\u003d14.0.0\"","isFullCredit":false},{"lineNumber":6477,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6478,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6479,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-config-recommended\": {","isFullCredit":false},{"lineNumber":6480,"author":{"gitId":"sopa301"},"content":" \"version\": \"14.0.0\",","isFullCredit":false},{"lineNumber":6481,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.0.tgz\",","isFullCredit":false},{"lineNumber":6482,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":6483,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6484,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6485,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18.12.0\"","isFullCredit":false},{"lineNumber":6486,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6487,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6488,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^16.0.0\"","isFullCredit":false},{"lineNumber":6489,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6490,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6491,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-config-recommended-scss\": {","isFullCredit":false},{"lineNumber":6492,"author":{"gitId":"sopa301"},"content":" \"version\": \"14.0.0\",","isFullCredit":false},{"lineNumber":6493,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-14.0.0.tgz\",","isFullCredit":false},{"lineNumber":6494,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-HDvpoOAQ1RpF+sPbDOT2Q2/YrBDEJDnUymmVmZ7mMCeNiFSdhRdyGEimBkz06wsN+HaFwUh249gDR+I9JR7Onw\u003d\u003d\",","isFullCredit":false},{"lineNumber":6495,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6496,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6497,"author":{"gitId":"sopa301"},"content":" \"postcss-scss\": \"^4.0.9\",","isFullCredit":false},{"lineNumber":6498,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-recommended\": \"^14.0.0\",","isFullCredit":false},{"lineNumber":6499,"author":{"gitId":"sopa301"},"content":" \"stylelint-scss\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":6500,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6501,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6502,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18.12.0\"","isFullCredit":false},{"lineNumber":6503,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6504,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6505,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.3.3\",","isFullCredit":false},{"lineNumber":6506,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^16.0.2\"","isFullCredit":false},{"lineNumber":6507,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6508,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":6509,"author":{"gitId":"sopa301"},"content":" \"postcss\": {","isFullCredit":false},{"lineNumber":6510,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":6511,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":6512,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6513,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6514,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-config-recommended-vue\": {","isFullCredit":false},{"lineNumber":6515,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.5.0\",","isFullCredit":false},{"lineNumber":6516,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6517,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6518,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6519,"author":{"gitId":"-"},"content":" \"semver\": \"^7.3.5\",","isFullCredit":false},{"lineNumber":6520,"author":{"gitId":"-"},"content":" \"stylelint-config-html\": \"\u003e\u003d1.0.0\",","isFullCredit":false},{"lineNumber":6521,"author":{"gitId":"-"},"content":" \"stylelint-config-recommended\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":6522,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6523,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6524,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12 || \u003e\u003d14\"","isFullCredit":false},{"lineNumber":6525,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6526,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6527,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ota-meshi\"","isFullCredit":false},{"lineNumber":6528,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6529,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6530,"author":{"gitId":"sopa301"},"content":" \"postcss-html\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":6531,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"\u003e\u003d14.0.0\"","isFullCredit":false},{"lineNumber":6532,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6533,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6534,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-config-recommended-vue/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":6535,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":6536,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6537,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":6538,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6539,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":6540,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6541,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6542,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":6543,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6544,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6545,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-config-recommended-vue/node_modules/semver\": {","isFullCredit":false},{"lineNumber":6546,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":6547,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6548,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":6549,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6550,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":6551,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6552,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":6553,"author":{"gitId":"sopa301"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":6554,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6555,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6556,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":6557,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6558,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6559,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-config-recommended-vue/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":6560,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":6561,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6562,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":6563,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6564,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-config-standard\": {","isFullCredit":false},{"lineNumber":6565,"author":{"gitId":"sopa301"},"content":" \"version\": \"36.0.0\",","isFullCredit":false},{"lineNumber":6566,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-36.0.0.tgz\",","isFullCredit":false},{"lineNumber":6567,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3Kjyq4d62bYFp/Aq8PMKDwlgUyPU4nacXsjDLWJdNPRUgpuxALu1KnlAHIj36cdtxViVhXexZij65yM0uNIHug\u003d\u003d\",","isFullCredit":false},{"lineNumber":6568,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6569,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6570,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-recommended\": \"^14.0.0\"","isFullCredit":false},{"lineNumber":6571,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6572,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6573,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18.12.0\"","isFullCredit":false},{"lineNumber":6574,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6575,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6576,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^16.1.0\"","isFullCredit":false},{"lineNumber":6577,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6578,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6579,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-config-standard-scss\": {","isFullCredit":false},{"lineNumber":6580,"author":{"gitId":"sopa301"},"content":" \"version\": \"13.1.0\",","isFullCredit":false},{"lineNumber":6581,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-13.1.0.tgz\",","isFullCredit":false},{"lineNumber":6582,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Eo5w7/XvwGHWkeGLtdm2FZLOMYoZl1omP2/jgFCXyl2x5yNz7/8vv4Tj6slHvMSSUNTaGoam/GAZ0ZhukvalfA\u003d\u003d\",","isFullCredit":false},{"lineNumber":6583,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6584,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6585,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-recommended-scss\": \"^14.0.0\",","isFullCredit":false},{"lineNumber":6586,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-standard\": \"^36.0.0\"","isFullCredit":false},{"lineNumber":6587,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6588,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6589,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18.12.0\"","isFullCredit":false},{"lineNumber":6590,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6591,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6592,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.3.3\",","isFullCredit":false},{"lineNumber":6593,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^16.3.1\"","isFullCredit":false},{"lineNumber":6594,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6595,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":6596,"author":{"gitId":"sopa301"},"content":" \"postcss\": {","isFullCredit":false},{"lineNumber":6597,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":6598,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":6599,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6600,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6601,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-order\": {","isFullCredit":false},{"lineNumber":6602,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.4\",","isFullCredit":false},{"lineNumber":6603,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.4.tgz\",","isFullCredit":false},{"lineNumber":6604,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA\u003d\u003d\",","isFullCredit":false},{"lineNumber":6605,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6606,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6607,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.4.32\",","isFullCredit":false},{"lineNumber":6608,"author":{"gitId":"sopa301"},"content":" \"postcss-sorting\": \"^8.0.2\"","isFullCredit":false},{"lineNumber":6609,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6610,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6611,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^14.0.0 || ^15.0.0 || ^16.0.1\"","isFullCredit":false},{"lineNumber":6612,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6613,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6614,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-scss\": {","isFullCredit":false},{"lineNumber":6615,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.2.1\",","isFullCredit":false},{"lineNumber":6616,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.2.1.tgz\",","isFullCredit":false},{"lineNumber":6617,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ZoGLbVb1keZYRVGQlhB8G6sZOoNqw61whzzzGFWp05N12ErqLFfBv3JPrXiMLZaW98sBS7K/vUQhRnvUj4vwdw\u003d\u003d\",","isFullCredit":false},{"lineNumber":6618,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6619,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6620,"author":{"gitId":"sopa301"},"content":" \"known-css-properties\": \"^0.29.0\",","isFullCredit":false},{"lineNumber":6621,"author":{"gitId":"-"},"content":" \"postcss-media-query-parser\": \"^0.2.3\",","isFullCredit":false},{"lineNumber":6622,"author":{"gitId":"-"},"content":" \"postcss-resolve-nested-selector\": \"^0.1.1\",","isFullCredit":false},{"lineNumber":6623,"author":{"gitId":"sopa301"},"content":" \"postcss-selector-parser\": \"^6.0.15\",","isFullCredit":false},{"lineNumber":6624,"author":{"gitId":"sopa301"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":6625,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6626,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6627,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18.12.0\"","isFullCredit":false},{"lineNumber":6628,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6629,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6630,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^16.0.2\"","isFullCredit":false},{"lineNumber":6631,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6632,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6633,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-scss/node_modules/known-css-properties\": {","isFullCredit":false},{"lineNumber":6634,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.29.0\",","isFullCredit":false},{"lineNumber":6635,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz\",","isFullCredit":false},{"lineNumber":6636,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":6637,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":6638,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6639,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-webpack-plugin\": {","isFullCredit":false},{"lineNumber":6640,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.0\",","isFullCredit":false},{"lineNumber":6641,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/stylelint-webpack-plugin/-/stylelint-webpack-plugin-5.0.0.tgz\",","isFullCredit":false},{"lineNumber":6642,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-f56OmfvIYfZpL5+TKg3LZ+Ehzoar5GAwytUtsdti+W6WhR3UpQC36vmXHsKxx9ibj7dKXCIKea6w0U+LdVSBmg\u003d\u003d\",","isFullCredit":false},{"lineNumber":6643,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6644,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6645,"author":{"gitId":"-"},"content":" \"globby\": \"^11.1.0\",","isFullCredit":false},{"lineNumber":6646,"author":{"gitId":"sopa301"},"content":" \"jest-worker\": \"^29.7.0\",","isFullCredit":false},{"lineNumber":6647,"author":{"gitId":"-"},"content":" \"micromatch\": \"^4.0.5\",","isFullCredit":false},{"lineNumber":6648,"author":{"gitId":"-"},"content":" \"normalize-path\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":6649,"author":{"gitId":"sopa301"},"content":" \"schema-utils\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":6650,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6651,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6652,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 18.12.0\"","isFullCredit":false},{"lineNumber":6653,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6654,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6655,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":6656,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":6657,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6658,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6659,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0\",","isFullCredit":false},{"lineNumber":6660,"author":{"gitId":"sopa301"},"content":" \"webpack\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":6661,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6662,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6663,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-webpack-plugin/node_modules/ajv\": {","isFullCredit":false},{"lineNumber":6664,"author":{"gitId":"-"},"content":" \"version\": \"8.12.0\",","isFullCredit":false},{"lineNumber":6665,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz\",","isFullCredit":false},{"lineNumber":6666,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA\u003d\u003d\",","isFullCredit":false},{"lineNumber":6667,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6668,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6669,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":6670,"author":{"gitId":"-"},"content":" \"json-schema-traverse\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":6671,"author":{"gitId":"-"},"content":" \"require-from-string\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":6672,"author":{"gitId":"-"},"content":" \"uri-js\": \"^4.2.2\"","isFullCredit":false},{"lineNumber":6673,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6674,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6675,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":6676,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/epoberezkin\"","isFullCredit":false},{"lineNumber":6677,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6678,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6679,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-webpack-plugin/node_modules/ajv-keywords\": {","isFullCredit":false},{"lineNumber":6680,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":6681,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz\",","isFullCredit":false},{"lineNumber":6682,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw\u003d\u003d\",","isFullCredit":false},{"lineNumber":6683,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6684,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6685,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.3\"","isFullCredit":false},{"lineNumber":6686,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6687,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6688,"author":{"gitId":"sopa301"},"content":" \"ajv\": \"^8.8.2\"","isFullCredit":false},{"lineNumber":6689,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6690,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6691,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-webpack-plugin/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":6692,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":6693,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":6694,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":6695,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6696,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6697,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6698,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6699,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6700,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-webpack-plugin/node_modules/jest-worker\": {","isFullCredit":false},{"lineNumber":6701,"author":{"gitId":"sopa301"},"content":" \"version\": \"29.7.0\",","isFullCredit":false},{"lineNumber":6702,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz\",","isFullCredit":false},{"lineNumber":6703,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw\u003d\u003d\",","isFullCredit":false},{"lineNumber":6704,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6705,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6706,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\",","isFullCredit":false},{"lineNumber":6707,"author":{"gitId":"sopa301"},"content":" \"jest-util\": \"^29.7.0\",","isFullCredit":false},{"lineNumber":6708,"author":{"gitId":"-"},"content":" \"merge-stream\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":6709,"author":{"gitId":"-"},"content":" \"supports-color\": \"^8.0.0\"","isFullCredit":false},{"lineNumber":6710,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6711,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6712,"author":{"gitId":"sopa301"},"content":" \"node\": \"^14.15.0 || ^16.10.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":6713,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6714,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6715,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-webpack-plugin/node_modules/json-schema-traverse\": {","isFullCredit":false},{"lineNumber":6716,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":6717,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":6718,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug\u003d\u003d\",","isFullCredit":false},{"lineNumber":6719,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":6720,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6721,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-webpack-plugin/node_modules/schema-utils\": {","isFullCredit":false},{"lineNumber":6722,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.2.0\",","isFullCredit":false},{"lineNumber":6723,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz\",","isFullCredit":false},{"lineNumber":6724,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw\u003d\u003d\",","isFullCredit":false},{"lineNumber":6725,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6726,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6727,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.9\",","isFullCredit":false},{"lineNumber":6728,"author":{"gitId":"sopa301"},"content":" \"ajv\": \"^8.9.0\",","isFullCredit":false},{"lineNumber":6729,"author":{"gitId":"-"},"content":" \"ajv-formats\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":6730,"author":{"gitId":"sopa301"},"content":" \"ajv-keywords\": \"^5.1.0\"","isFullCredit":false},{"lineNumber":6731,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6732,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6733,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 12.13.0\"","isFullCredit":false},{"lineNumber":6734,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6735,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6736,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":6737,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":6738,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6739,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6740,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-webpack-plugin/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":6741,"author":{"gitId":"-"},"content":" \"version\": \"8.1.1\",","isFullCredit":false},{"lineNumber":6742,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",","isFullCredit":false},{"lineNumber":6743,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":6744,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6745,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6746,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":6747,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6748,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6749,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":6750,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6751,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6752,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/supports-color?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":6753,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6754,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6755,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/ansi-regex\": {","isFullCredit":false},{"lineNumber":6756,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.1\",","isFullCredit":false},{"lineNumber":6757,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz\",","isFullCredit":false},{"lineNumber":6758,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA\u003d\u003d\",","isFullCredit":false},{"lineNumber":6759,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6760,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6761,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":6762,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6763,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6764,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/ansi-regex?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":6765,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6766,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6767,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/balanced-match\": {","isFullCredit":false},{"lineNumber":6768,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":6769,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6770,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6771,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6772,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/cosmiconfig\": {","isFullCredit":false},{"lineNumber":6773,"author":{"gitId":"sopa301"},"content":" \"version\": \"9.0.0\",","isFullCredit":false},{"lineNumber":6774,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz\",","isFullCredit":false},{"lineNumber":6775,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg\u003d\u003d\",","isFullCredit":false},{"lineNumber":6776,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6777,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6778,"author":{"gitId":"sopa301"},"content":" \"env-paths\": \"^2.2.1\",","isFullCredit":false},{"lineNumber":6779,"author":{"gitId":"sopa301"},"content":" \"import-fresh\": \"^3.3.0\",","isFullCredit":false},{"lineNumber":6780,"author":{"gitId":"sopa301"},"content":" \"js-yaml\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":6781,"author":{"gitId":"sopa301"},"content":" \"parse-json\": \"^5.2.0\"","isFullCredit":false},{"lineNumber":6782,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6783,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6784,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d14\"","isFullCredit":false},{"lineNumber":6785,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6786,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6787,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/d-fischer\"","isFullCredit":false},{"lineNumber":6788,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6789,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6790,"author":{"gitId":"sopa301"},"content":" \"typescript\": \"\u003e\u003d4.9.5\"","isFullCredit":false},{"lineNumber":6791,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6792,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":6793,"author":{"gitId":"sopa301"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":6794,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":6795,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6796,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6797,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6798,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/css-tree\": {","isFullCredit":false},{"lineNumber":6799,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.1\",","isFullCredit":false},{"lineNumber":6800,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz\",","isFullCredit":false},{"lineNumber":6801,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw\u003d\u003d\",","isFullCredit":false},{"lineNumber":6802,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6803,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6804,"author":{"gitId":"sopa301"},"content":" \"mdn-data\": \"2.0.30\",","isFullCredit":false},{"lineNumber":6805,"author":{"gitId":"sopa301"},"content":" \"source-map-js\": \"^1.0.1\"","isFullCredit":false},{"lineNumber":6806,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6807,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6808,"author":{"gitId":"sopa301"},"content":" \"node\": \"^10 || ^12.20.0 || ^14.13.0 || \u003e\u003d15.0.0\"","isFullCredit":false},{"lineNumber":6809,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6810,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6811,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/file-entry-cache\": {","isFullCredit":false},{"lineNumber":6812,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.0.0\",","isFullCredit":false},{"lineNumber":6813,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz\",","isFullCredit":false},{"lineNumber":6814,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":6815,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6816,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6817,"author":{"gitId":"sopa301"},"content":" \"flat-cache\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":6818,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6819,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6820,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":6821,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6822,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6823,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/flat-cache\": {","isFullCredit":false},{"lineNumber":6824,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.1\",","isFullCredit":false},{"lineNumber":6825,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz\",","isFullCredit":false},{"lineNumber":6826,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw\u003d\u003d\",","isFullCredit":false},{"lineNumber":6827,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6828,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6829,"author":{"gitId":"sopa301"},"content":" \"flatted\": \"^3.2.9\",","isFullCredit":false},{"lineNumber":6830,"author":{"gitId":"sopa301"},"content":" \"keyv\": \"^4.5.4\"","isFullCredit":false},{"lineNumber":6831,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6832,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6833,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d16\"","isFullCredit":false},{"lineNumber":6834,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6835,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6836,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/mdn-data\": {","isFullCredit":false},{"lineNumber":6837,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.30\",","isFullCredit":false},{"lineNumber":6838,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz\",","isFullCredit":false},{"lineNumber":6839,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA\u003d\u003d\",","isFullCredit":false},{"lineNumber":6840,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":6841,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6842,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/postcss-safe-parser\": {","isFullCredit":false},{"lineNumber":6843,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.0.0\",","isFullCredit":false},{"lineNumber":6844,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz\",","isFullCredit":false},{"lineNumber":6845,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg\u003d\u003d\",","isFullCredit":false},{"lineNumber":6846,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6847,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":6848,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":6849,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":6850,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/postcss/\"","isFullCredit":false},{"lineNumber":6851,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6852,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":6853,"author":{"gitId":"sopa301"},"content":" \"type\": \"tidelift\",","isFullCredit":false},{"lineNumber":6854,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://tidelift.com/funding/github/npm/postcss-safe-parser\"","isFullCredit":false},{"lineNumber":6855,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6856,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":6857,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":6858,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ai\"","isFullCredit":false},{"lineNumber":6859,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":6860,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":6861,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6862,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18.0\"","isFullCredit":false},{"lineNumber":6863,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6864,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6865,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.4.31\"","isFullCredit":false},{"lineNumber":6866,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6867,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6868,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/resolve-from\": {","isFullCredit":false},{"lineNumber":6869,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.0\",","isFullCredit":false},{"lineNumber":6870,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6871,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6872,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6873,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6874,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6875,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6876,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/strip-ansi\": {","isFullCredit":false},{"lineNumber":6877,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.1.0\",","isFullCredit":false},{"lineNumber":6878,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz\",","isFullCredit":false},{"lineNumber":6879,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":6880,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6881,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6882,"author":{"gitId":"sopa301"},"content":" \"ansi-regex\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":6883,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6884,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6885,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":6886,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6887,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6888,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/strip-ansi?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":6889,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6890,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6891,"author":{"gitId":"sopa301"},"content":" \"node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":6892,"author":{"gitId":"-"},"content":" \"version\": \"5.5.0\",","isFullCredit":false},{"lineNumber":6893,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6894,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6895,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6896,"author":{"gitId":"-"},"content":" \"has-flag\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":6897,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6898,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6899,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":6900,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6901,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6902,"author":{"gitId":"sopa301"},"content":" \"node_modules/supports-hyperlinks\": {","isFullCredit":false},{"lineNumber":6903,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":6904,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":6905,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA\u003d\u003d\",","isFullCredit":false},{"lineNumber":6906,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6907,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6908,"author":{"gitId":"sopa301"},"content":" \"has-flag\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":6909,"author":{"gitId":"sopa301"},"content":" \"supports-color\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":6910,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6911,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6912,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d14.18\"","isFullCredit":false},{"lineNumber":6913,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6914,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6915,"author":{"gitId":"sopa301"},"content":" \"node_modules/supports-hyperlinks/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":6916,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":6917,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":6918,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":6919,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6920,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6921,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6922,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6923,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6924,"author":{"gitId":"sopa301"},"content":" \"node_modules/supports-hyperlinks/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":6925,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":6926,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",","isFullCredit":false},{"lineNumber":6927,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw\u003d\u003d\",","isFullCredit":false},{"lineNumber":6928,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6929,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6930,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":6931,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6932,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6933,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6934,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6935,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6936,"author":{"gitId":"sopa301"},"content":" \"node_modules/supports-preserve-symlinks-flag\": {","isFullCredit":false},{"lineNumber":6937,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":6938,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6939,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6940,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":6941,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":6942,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6943,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":6944,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6945,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6946,"author":{"gitId":"sopa301"},"content":" \"node_modules/svg-tags\": {","isFullCredit":false},{"lineNumber":6947,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":6948,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":6949,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6950,"author":{"gitId":"sopa301"},"content":" \"node_modules/table\": {","isFullCredit":false},{"lineNumber":6951,"author":{"gitId":"-"},"content":" \"version\": \"6.8.1\",","isFullCredit":false},{"lineNumber":6952,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6953,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":6954,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6955,"author":{"gitId":"-"},"content":" \"ajv\": \"^8.0.1\",","isFullCredit":false},{"lineNumber":6956,"author":{"gitId":"-"},"content":" \"lodash.truncate\": \"^4.4.2\",","isFullCredit":false},{"lineNumber":6957,"author":{"gitId":"-"},"content":" \"slice-ansi\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":6958,"author":{"gitId":"-"},"content":" \"string-width\": \"^4.2.3\",","isFullCredit":false},{"lineNumber":6959,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":6960,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6961,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6962,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10.0.0\"","isFullCredit":false},{"lineNumber":6963,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6964,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6965,"author":{"gitId":"sopa301"},"content":" \"node_modules/table/node_modules/ajv\": {","isFullCredit":false},{"lineNumber":6966,"author":{"gitId":"-"},"content":" \"version\": \"8.12.0\",","isFullCredit":false},{"lineNumber":6967,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6968,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6969,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6970,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":6971,"author":{"gitId":"-"},"content":" \"json-schema-traverse\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":6972,"author":{"gitId":"-"},"content":" \"require-from-string\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":6973,"author":{"gitId":"-"},"content":" \"uri-js\": \"^4.2.2\"","isFullCredit":false},{"lineNumber":6974,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6975,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6976,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":6977,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/epoberezkin\"","isFullCredit":false},{"lineNumber":6978,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6979,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6980,"author":{"gitId":"sopa301"},"content":" \"node_modules/table/node_modules/json-schema-traverse\": {","isFullCredit":false},{"lineNumber":6981,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":6982,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6983,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6984,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6985,"author":{"gitId":"sopa301"},"content":" \"node_modules/terser\": {","isFullCredit":false},{"lineNumber":6986,"author":{"gitId":"-"},"content":" \"version\": \"5.16.1\",","isFullCredit":false},{"lineNumber":6987,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":6988,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":6989,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":6990,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6991,"author":{"gitId":"-"},"content":" \"@jridgewell/source-map\": \"^0.3.2\",","isFullCredit":false},{"lineNumber":6992,"author":{"gitId":"-"},"content":" \"acorn\": \"^8.5.0\",","isFullCredit":false},{"lineNumber":6993,"author":{"gitId":"-"},"content":" \"commander\": \"^2.20.0\",","isFullCredit":false},{"lineNumber":6994,"author":{"gitId":"-"},"content":" \"source-map-support\": \"~0.5.20\"","isFullCredit":false},{"lineNumber":6995,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6996,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":6997,"author":{"gitId":"sopa301"},"content":" \"terser\": \"bin/terser\"","isFullCredit":false},{"lineNumber":6998,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6999,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7000,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":7001,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7002,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7003,"author":{"gitId":"sopa301"},"content":" \"node_modules/terser-webpack-plugin\": {","isFullCredit":false},{"lineNumber":7004,"author":{"gitId":"-"},"content":" \"version\": \"5.3.6\",","isFullCredit":false},{"lineNumber":7005,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7006,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7007,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":7008,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7009,"author":{"gitId":"-"},"content":" \"@jridgewell/trace-mapping\": \"^0.3.14\",","isFullCredit":false},{"lineNumber":7010,"author":{"gitId":"-"},"content":" \"jest-worker\": \"^27.4.5\",","isFullCredit":false},{"lineNumber":7011,"author":{"gitId":"-"},"content":" \"schema-utils\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":7012,"author":{"gitId":"-"},"content":" \"serialize-javascript\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":7013,"author":{"gitId":"-"},"content":" \"terser\": \"^5.14.1\"","isFullCredit":false},{"lineNumber":7014,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7015,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7016,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 10.13.0\"","isFullCredit":false},{"lineNumber":7017,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7018,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7019,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":7020,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":7021,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7022,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":7023,"author":{"gitId":"sopa301"},"content":" \"webpack\": \"^5.1.0\"","isFullCredit":false},{"lineNumber":7024,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7025,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":7026,"author":{"gitId":"sopa301"},"content":" \"@swc/core\": {","isFullCredit":false},{"lineNumber":7027,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7028,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7029,"author":{"gitId":"sopa301"},"content":" \"esbuild\": {","isFullCredit":false},{"lineNumber":7030,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7031,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7032,"author":{"gitId":"sopa301"},"content":" \"uglify-js\": {","isFullCredit":false},{"lineNumber":7033,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7034,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":7035,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7036,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7037,"author":{"gitId":"sopa301"},"content":" \"node_modules/terser-webpack-plugin/node_modules/schema-utils\": {","isFullCredit":false},{"lineNumber":7038,"author":{"gitId":"-"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":7039,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7040,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7041,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":7042,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7043,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.8\",","isFullCredit":false},{"lineNumber":7044,"author":{"gitId":"-"},"content":" \"ajv\": \"^6.12.5\",","isFullCredit":false},{"lineNumber":7045,"author":{"gitId":"-"},"content":" \"ajv-keywords\": \"^3.5.2\"","isFullCredit":false},{"lineNumber":7046,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7047,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7048,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 10.13.0\"","isFullCredit":false},{"lineNumber":7049,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7050,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7051,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":7052,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":7053,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7054,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7055,"author":{"gitId":"sopa301"},"content":" \"node_modules/terser/node_modules/commander\": {","isFullCredit":false},{"lineNumber":7056,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.20.3\",","isFullCredit":false},{"lineNumber":7057,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":7058,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7059,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":7060,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7061,"author":{"gitId":"sopa301"},"content":" \"node_modules/text-table\": {","isFullCredit":false},{"lineNumber":7062,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.2.0\",","isFullCredit":false},{"lineNumber":7063,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7064,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7065,"author":{"gitId":"sopa301"},"content":" \"node_modules/to-fast-properties\": {","isFullCredit":false},{"lineNumber":7066,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":7067,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7068,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7069,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7070,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":7071,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7072,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7073,"author":{"gitId":"sopa301"},"content":" \"node_modules/to-regex-range\": {","isFullCredit":false},{"lineNumber":7074,"author":{"gitId":"-"},"content":" \"version\": \"5.0.1\",","isFullCredit":false},{"lineNumber":7075,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":7076,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7077,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7078,"author":{"gitId":"-"},"content":" \"is-number\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":7079,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7080,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7081,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8.0\"","isFullCredit":false},{"lineNumber":7082,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7083,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7084,"author":{"gitId":"sopa301"},"content":" \"node_modules/token-stream\": {","isFullCredit":false},{"lineNumber":7085,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":7086,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7087,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7088,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7089,"author":{"gitId":"sopa301"},"content":" \"node_modules/ts-api-utils\": {","isFullCredit":false},{"lineNumber":7090,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.3.0\",","isFullCredit":false},{"lineNumber":7091,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz\",","isFullCredit":false},{"lineNumber":7092,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":7093,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7094,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7095,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d16\"","isFullCredit":false},{"lineNumber":7096,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7097,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":7098,"author":{"gitId":"sopa301"},"content":" \"typescript\": \"\u003e\u003d4.2.0\"","isFullCredit":false},{"lineNumber":7099,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7100,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7101,"author":{"gitId":"sopa301"},"content":" \"node_modules/tsconfig-paths\": {","isFullCredit":false},{"lineNumber":7102,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.15.0\",","isFullCredit":false},{"lineNumber":7103,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7104,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7105,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7106,"author":{"gitId":"-"},"content":" \"@types/json5\": \"^0.0.29\",","isFullCredit":false},{"lineNumber":7107,"author":{"gitId":"sopa301"},"content":" \"json5\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":7108,"author":{"gitId":"-"},"content":" \"minimist\": \"^1.2.6\",","isFullCredit":false},{"lineNumber":7109,"author":{"gitId":"-"},"content":" \"strip-bom\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":7110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7111,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7112,"author":{"gitId":"sopa301"},"content":" \"node_modules/tsconfig-paths/node_modules/json5\": {","isFullCredit":false},{"lineNumber":7113,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":7114,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7115,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7116,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7117,"author":{"gitId":"-"},"content":" \"minimist\": \"^1.2.0\"","isFullCredit":false},{"lineNumber":7118,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7119,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":7120,"author":{"gitId":"sopa301"},"content":" \"json5\": \"lib/cli.js\"","isFullCredit":false},{"lineNumber":7121,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7122,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7123,"author":{"gitId":"sopa301"},"content":" \"node_modules/type-check\": {","isFullCredit":false},{"lineNumber":7124,"author":{"gitId":"-"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":7125,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7126,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7127,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7128,"author":{"gitId":"-"},"content":" \"prelude-ls\": \"^1.2.1\"","isFullCredit":false},{"lineNumber":7129,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7130,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7131,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.8.0\"","isFullCredit":false},{"lineNumber":7132,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7133,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7134,"author":{"gitId":"sopa301"},"content":" \"node_modules/type-fest\": {","isFullCredit":false},{"lineNumber":7135,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":7136,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":7137,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":7138,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7139,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7140,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":7141,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7142,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7143,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":7144,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7145,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7146,"author":{"gitId":"sopa301"},"content":" \"node_modules/typed-array-buffer\": {","isFullCredit":false},{"lineNumber":7147,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":7148,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7149,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7150,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7151,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":7152,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":7153,"author":{"gitId":"sopa301"},"content":" \"is-typed-array\": \"^1.1.13\"","isFullCredit":false},{"lineNumber":7154,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7155,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7156,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":7157,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7158,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7159,"author":{"gitId":"sopa301"},"content":" \"node_modules/typed-array-byte-length\": {","isFullCredit":false},{"lineNumber":7160,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":7161,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7162,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7163,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7164,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":7165,"author":{"gitId":"sopa301"},"content":" \"for-each\": \"^0.3.3\",","isFullCredit":false},{"lineNumber":7166,"author":{"gitId":"sopa301"},"content":" \"gopd\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":7167,"author":{"gitId":"sopa301"},"content":" \"has-proto\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":7168,"author":{"gitId":"sopa301"},"content":" \"is-typed-array\": \"^1.1.13\"","isFullCredit":false},{"lineNumber":7169,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7170,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7171,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":7172,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7173,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7174,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7175,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7176,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7177,"author":{"gitId":"sopa301"},"content":" \"node_modules/typed-array-byte-offset\": {","isFullCredit":false},{"lineNumber":7178,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":7179,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7180,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7181,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7182,"author":{"gitId":"sopa301"},"content":" \"available-typed-arrays\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":7183,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":7184,"author":{"gitId":"sopa301"},"content":" \"for-each\": \"^0.3.3\",","isFullCredit":false},{"lineNumber":7185,"author":{"gitId":"sopa301"},"content":" \"gopd\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":7186,"author":{"gitId":"sopa301"},"content":" \"has-proto\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":7187,"author":{"gitId":"sopa301"},"content":" \"is-typed-array\": \"^1.1.13\"","isFullCredit":false},{"lineNumber":7188,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7189,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7190,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":7191,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7192,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7193,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7194,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7195,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7196,"author":{"gitId":"sopa301"},"content":" \"node_modules/typed-array-length\": {","isFullCredit":false},{"lineNumber":7197,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":7198,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7199,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7200,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7201,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":7202,"author":{"gitId":"-"},"content":" \"for-each\": \"^0.3.3\",","isFullCredit":false},{"lineNumber":7203,"author":{"gitId":"sopa301"},"content":" \"gopd\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":7204,"author":{"gitId":"sopa301"},"content":" \"has-proto\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":7205,"author":{"gitId":"sopa301"},"content":" \"is-typed-array\": \"^1.1.13\",","isFullCredit":false},{"lineNumber":7206,"author":{"gitId":"sopa301"},"content":" \"possible-typed-array-names\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":7207,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7208,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7209,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":7210,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7211,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7212,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7213,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7214,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7215,"author":{"gitId":"sopa301"},"content":" \"node_modules/typescript\": {","isFullCredit":false},{"lineNumber":7216,"author":{"gitId":"-"},"content":" \"version\": \"4.9.5\",","isFullCredit":false},{"lineNumber":7217,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":7218,"author":{"gitId":"sopa301"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":7219,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":7220,"author":{"gitId":"sopa301"},"content":" \"tsc\": \"bin/tsc\",","isFullCredit":false},{"lineNumber":7221,"author":{"gitId":"sopa301"},"content":" \"tsserver\": \"bin/tsserver\"","isFullCredit":false},{"lineNumber":7222,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7223,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7224,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4.2.0\"","isFullCredit":false},{"lineNumber":7225,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7226,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7227,"author":{"gitId":"sopa301"},"content":" \"node_modules/typescript-eslint\": {","isFullCredit":false},{"lineNumber":7228,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":7229,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":7230,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-wZZ+7mTQJCn4mGAvzdERtL4vwKGM/mF9cMSMeKUllz3Hgbd1Mdd5L60Q+nJmCio9RB4OyMMr0EX4Ry2Q7jiAyw\u003d\u003d\",","isFullCredit":false},{"lineNumber":7231,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7232,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7233,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/eslint-plugin\": \"7.7.0\",","isFullCredit":false},{"lineNumber":7234,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/parser\": \"7.7.0\",","isFullCredit":false},{"lineNumber":7235,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/utils\": \"7.7.0\"","isFullCredit":false},{"lineNumber":7236,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7237,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7238,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":7239,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7240,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7241,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":7242,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":7243,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7244,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":7245,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^8.56.0\"","isFullCredit":false},{"lineNumber":7246,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7247,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":7248,"author":{"gitId":"sopa301"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":7249,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7250,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":7251,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7252,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7253,"author":{"gitId":"sopa301"},"content":" \"node_modules/typescript-eslint/node_modules/@typescript-eslint/utils\": {","isFullCredit":false},{"lineNumber":7254,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":7255,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":7256,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig\u003d\u003d\",","isFullCredit":false},{"lineNumber":7257,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7258,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7259,"author":{"gitId":"sopa301"},"content":" \"@eslint-community/eslint-utils\": \"^4.4.0\",","isFullCredit":false},{"lineNumber":7260,"author":{"gitId":"sopa301"},"content":" \"@types/json-schema\": \"^7.0.15\",","isFullCredit":false},{"lineNumber":7261,"author":{"gitId":"sopa301"},"content":" \"@types/semver\": \"^7.5.8\",","isFullCredit":false},{"lineNumber":7262,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/scope-manager\": \"7.7.0\",","isFullCredit":false},{"lineNumber":7263,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/types\": \"7.7.0\",","isFullCredit":false},{"lineNumber":7264,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/typescript-estree\": \"7.7.0\",","isFullCredit":false},{"lineNumber":7265,"author":{"gitId":"sopa301"},"content":" \"semver\": \"^7.6.0\"","isFullCredit":false},{"lineNumber":7266,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7267,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7268,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":7269,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7270,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7271,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":7272,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":7273,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7274,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":7275,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^8.56.0\"","isFullCredit":false},{"lineNumber":7276,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7277,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7278,"author":{"gitId":"sopa301"},"content":" \"node_modules/typescript-eslint/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":7279,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":7280,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":7281,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":7282,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7283,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7284,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":7285,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7286,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7287,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":7288,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7289,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7290,"author":{"gitId":"sopa301"},"content":" \"node_modules/typescript-eslint/node_modules/semver\": {","isFullCredit":false},{"lineNumber":7291,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":7292,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.6.0.tgz\",","isFullCredit":false},{"lineNumber":7293,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":7294,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7295,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7296,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":7297,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7298,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":7299,"author":{"gitId":"sopa301"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":7300,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7301,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7302,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":7303,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7304,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7305,"author":{"gitId":"sopa301"},"content":" \"node_modules/typescript-eslint/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":7306,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":7307,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":7308,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":7309,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":7310,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7311,"author":{"gitId":"sopa301"},"content":" \"node_modules/uc.micro\": {","isFullCredit":false},{"lineNumber":7312,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":7313,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7314,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7315,"author":{"gitId":"sopa301"},"content":" \"node_modules/unbox-primitive\": {","isFullCredit":false},{"lineNumber":7316,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":7317,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7318,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7319,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7320,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":7321,"author":{"gitId":"sopa301"},"content":" \"has-bigints\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":7322,"author":{"gitId":"sopa301"},"content":" \"has-symbols\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":7323,"author":{"gitId":"sopa301"},"content":" \"which-boxed-primitive\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":7324,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7325,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7326,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7327,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7328,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7329,"author":{"gitId":"sopa301"},"content":" \"node_modules/undici-types\": {","isFullCredit":false},{"lineNumber":7330,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.26.5\",","isFullCredit":false},{"lineNumber":7331,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz\",","isFullCredit":false},{"lineNumber":7332,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA\u003d\u003d\",","isFullCredit":false},{"lineNumber":7333,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true","isFullCredit":false},{"lineNumber":7334,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7335,"author":{"gitId":"sopa301"},"content":" \"node_modules/update-browserslist-db\": {","isFullCredit":false},{"lineNumber":7336,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.10\",","isFullCredit":false},{"lineNumber":7337,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7338,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":7339,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":7340,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":7341,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/browserslist\"","isFullCredit":false},{"lineNumber":7342,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7343,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":7344,"author":{"gitId":"sopa301"},"content":" \"type\": \"tidelift\",","isFullCredit":false},{"lineNumber":7345,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"","isFullCredit":false},{"lineNumber":7346,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7347,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":7348,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7349,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":7350,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7351,"author":{"gitId":"sopa301"},"content":" \"escalade\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":7352,"author":{"gitId":"sopa301"},"content":" \"picocolors\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":7353,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7354,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":7355,"author":{"gitId":"sopa301"},"content":" \"browserslist-lint\": \"cli.js\"","isFullCredit":false},{"lineNumber":7356,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7357,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":7358,"author":{"gitId":"sopa301"},"content":" \"browserslist\": \"\u003e\u003d 4.21.0\"","isFullCredit":false},{"lineNumber":7359,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7360,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7361,"author":{"gitId":"sopa301"},"content":" \"node_modules/uri-js\": {","isFullCredit":false},{"lineNumber":7362,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.4.1\",","isFullCredit":false},{"lineNumber":7363,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7364,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":7365,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7366,"author":{"gitId":"sopa301"},"content":" \"punycode\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":7367,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7368,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7369,"author":{"gitId":"sopa301"},"content":" \"node_modules/util-deprecate\": {","isFullCredit":false},{"lineNumber":7370,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":7371,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7372,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7373,"author":{"gitId":"sopa301"},"content":" \"node_modules/vite\": {","isFullCredit":false},{"lineNumber":7374,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.2.10\",","isFullCredit":false},{"lineNumber":7375,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.2.10.tgz\",","isFullCredit":false},{"lineNumber":7376,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw\u003d\u003d\",","isFullCredit":false},{"lineNumber":7377,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7378,"author":{"gitId":"sopa301"},"content":" \"esbuild\": \"^0.20.1\",","isFullCredit":false},{"lineNumber":7379,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.4.38\",","isFullCredit":false},{"lineNumber":7380,"author":{"gitId":"sopa301"},"content":" \"rollup\": \"^4.13.0\"","isFullCredit":false},{"lineNumber":7381,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7382,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":7383,"author":{"gitId":"sopa301"},"content":" \"vite\": \"bin/vite.js\"","isFullCredit":false},{"lineNumber":7384,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7385,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7386,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.0.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":7387,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7388,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7389,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/vitejs/vite?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":7390,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7391,"author":{"gitId":"sopa301"},"content":" \"optionalDependencies\": {","isFullCredit":false},{"lineNumber":7392,"author":{"gitId":"sopa301"},"content":" \"fsevents\": \"~2.3.3\"","isFullCredit":false},{"lineNumber":7393,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7394,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":7395,"author":{"gitId":"sopa301"},"content":" \"@types/node\": \"^18.0.0 || \u003e\u003d20.0.0\",","isFullCredit":false},{"lineNumber":7396,"author":{"gitId":"sopa301"},"content":" \"less\": \"*\",","isFullCredit":false},{"lineNumber":7397,"author":{"gitId":"sopa301"},"content":" \"lightningcss\": \"^1.21.0\",","isFullCredit":false},{"lineNumber":7398,"author":{"gitId":"sopa301"},"content":" \"sass\": \"*\",","isFullCredit":false},{"lineNumber":7399,"author":{"gitId":"sopa301"},"content":" \"stylus\": \"*\",","isFullCredit":false},{"lineNumber":7400,"author":{"gitId":"sopa301"},"content":" \"sugarss\": \"*\",","isFullCredit":false},{"lineNumber":7401,"author":{"gitId":"sopa301"},"content":" \"terser\": \"^5.4.0\"","isFullCredit":false},{"lineNumber":7402,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7403,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":7404,"author":{"gitId":"sopa301"},"content":" \"@types/node\": {","isFullCredit":false},{"lineNumber":7405,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7406,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7407,"author":{"gitId":"sopa301"},"content":" \"less\": {","isFullCredit":false},{"lineNumber":7408,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7409,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7410,"author":{"gitId":"sopa301"},"content":" \"lightningcss\": {","isFullCredit":false},{"lineNumber":7411,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7412,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7413,"author":{"gitId":"sopa301"},"content":" \"sass\": {","isFullCredit":false},{"lineNumber":7414,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7415,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7416,"author":{"gitId":"sopa301"},"content":" \"stylus\": {","isFullCredit":false},{"lineNumber":7417,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7418,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7419,"author":{"gitId":"sopa301"},"content":" \"sugarss\": {","isFullCredit":false},{"lineNumber":7420,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7421,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7422,"author":{"gitId":"sopa301"},"content":" \"terser\": {","isFullCredit":false},{"lineNumber":7423,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7424,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7425,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7426,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7427,"author":{"gitId":"sopa301"},"content":" \"node_modules/vite-plugin-eslint2\": {","isFullCredit":false},{"lineNumber":7428,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.4.0\",","isFullCredit":false},{"lineNumber":7429,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/vite-plugin-eslint2/-/vite-plugin-eslint2-4.4.0.tgz\",","isFullCredit":false},{"lineNumber":7430,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-xy5G4Gj18ke1bO5OS0zgyunkPvPy/vSLJFTyMpGmKGKTlYuuhPad3Xy1PWLuqRMoWnuCoFMf2ST1EGhz89uqrA\u003d\u003d\",","isFullCredit":false},{"lineNumber":7431,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7432,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7433,"author":{"gitId":"sopa301"},"content":" \"@rollup/pluginutils\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":7434,"author":{"gitId":"sopa301"},"content":" \"chokidar\": \"^3.6.0\",","isFullCredit":false},{"lineNumber":7435,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^4.3.4\"","isFullCredit":false},{"lineNumber":7436,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7437,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7438,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18\"","isFullCredit":false},{"lineNumber":7439,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7440,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":7441,"author":{"gitId":"sopa301"},"content":" \"@types/eslint\": \"^7.0.0 || ^8.0.0 || ^9.0.0-0\",","isFullCredit":false},{"lineNumber":7442,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^7.0.0 || ^8.0.0 || ^9.0.0-0\",","isFullCredit":false},{"lineNumber":7443,"author":{"gitId":"sopa301"},"content":" \"rollup\": \"^2.0.0 || ^3.0.0 || ^4.0.0\",","isFullCredit":false},{"lineNumber":7444,"author":{"gitId":"sopa301"},"content":" \"vite\": \"^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0\"","isFullCredit":false},{"lineNumber":7445,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7446,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":7447,"author":{"gitId":"sopa301"},"content":" \"rollup\": {","isFullCredit":false},{"lineNumber":7448,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7449,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":7450,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7451,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7452,"author":{"gitId":"sopa301"},"content":" \"node_modules/vite-plugin-stylelint\": {","isFullCredit":false},{"lineNumber":7453,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.3.1\",","isFullCredit":false},{"lineNumber":7454,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/vite-plugin-stylelint/-/vite-plugin-stylelint-5.3.1.tgz\",","isFullCredit":false},{"lineNumber":7455,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-M/hSdfOwnOVghbJDeuuYIU2xO/MMukYR8QcEyNKFPG8ro1L+DlTdViix2B2d/FvAw14WPX88ckA5A7NvUjJz8w\u003d\u003d\",","isFullCredit":false},{"lineNumber":7456,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7457,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7458,"author":{"gitId":"sopa301"},"content":" \"@rollup/pluginutils\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":7459,"author":{"gitId":"sopa301"},"content":" \"chokidar\": \"^3.5.3\",","isFullCredit":false},{"lineNumber":7460,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^4.3.4\"","isFullCredit":false},{"lineNumber":7461,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7462,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7463,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d14.18\"","isFullCredit":false},{"lineNumber":7464,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7465,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":7466,"author":{"gitId":"sopa301"},"content":" \"@types/stylelint\": \"^13.0.0\",","isFullCredit":false},{"lineNumber":7467,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^7.0.0 || ^8.0.0\",","isFullCredit":false},{"lineNumber":7468,"author":{"gitId":"sopa301"},"content":" \"rollup\": \"^2.0.0 || ^3.0.0 || ^4.0.0\",","isFullCredit":false},{"lineNumber":7469,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0\",","isFullCredit":false},{"lineNumber":7470,"author":{"gitId":"sopa301"},"content":" \"vite\": \"^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0\"","isFullCredit":false},{"lineNumber":7471,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7472,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":7473,"author":{"gitId":"sopa301"},"content":" \"@types/stylelint\": {","isFullCredit":false},{"lineNumber":7474,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7475,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7476,"author":{"gitId":"sopa301"},"content":" \"postcss\": {","isFullCredit":false},{"lineNumber":7477,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7478,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7479,"author":{"gitId":"sopa301"},"content":" \"rollup\": {","isFullCredit":false},{"lineNumber":7480,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7481,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":7482,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7483,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7484,"author":{"gitId":"sopa301"},"content":" \"node_modules/void-elements\": {","isFullCredit":false},{"lineNumber":7485,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":7486,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7487,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7488,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7489,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":7490,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7491,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7492,"author":{"gitId":"sopa301"},"content":" \"node_modules/vue\": {","isFullCredit":false},{"lineNumber":7493,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":7494,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7495,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7496,"author":{"gitId":"sopa301"},"content":" \"@vue/compiler-dom\": \"3.4.21\",","isFullCredit":false},{"lineNumber":7497,"author":{"gitId":"sopa301"},"content":" \"@vue/compiler-sfc\": \"3.4.21\",","isFullCredit":false},{"lineNumber":7498,"author":{"gitId":"sopa301"},"content":" \"@vue/runtime-dom\": \"3.4.21\",","isFullCredit":false},{"lineNumber":7499,"author":{"gitId":"sopa301"},"content":" \"@vue/server-renderer\": \"3.4.21\",","isFullCredit":false},{"lineNumber":7500,"author":{"gitId":"sopa301"},"content":" \"@vue/shared\": \"3.4.21\"","isFullCredit":false},{"lineNumber":7501,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7502,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":7503,"author":{"gitId":"sopa301"},"content":" \"typescript\": \"*\"","isFullCredit":false},{"lineNumber":7504,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7505,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":7506,"author":{"gitId":"sopa301"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":7507,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7508,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7509,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7510,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7511,"author":{"gitId":"sopa301"},"content":" \"node_modules/vue-eslint-parser\": {","isFullCredit":false},{"lineNumber":7512,"author":{"gitId":"sopa301"},"content":" \"version\": \"9.4.2\",","isFullCredit":false},{"lineNumber":7513,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz\",","isFullCredit":false},{"lineNumber":7514,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":7515,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7516,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7517,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^4.3.4\",","isFullCredit":false},{"lineNumber":7518,"author":{"gitId":"sopa301"},"content":" \"eslint-scope\": \"^7.1.1\",","isFullCredit":false},{"lineNumber":7519,"author":{"gitId":"sopa301"},"content":" \"eslint-visitor-keys\": \"^3.3.0\",","isFullCredit":false},{"lineNumber":7520,"author":{"gitId":"sopa301"},"content":" \"espree\": \"^9.3.1\",","isFullCredit":false},{"lineNumber":7521,"author":{"gitId":"sopa301"},"content":" \"esquery\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":7522,"author":{"gitId":"sopa301"},"content":" \"lodash\": \"^4.17.21\",","isFullCredit":false},{"lineNumber":7523,"author":{"gitId":"sopa301"},"content":" \"semver\": \"^7.3.6\"","isFullCredit":false},{"lineNumber":7524,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7525,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7526,"author":{"gitId":"sopa301"},"content":" \"node\": \"^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":7527,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7528,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7529,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/mysticatea\"","isFullCredit":false},{"lineNumber":7530,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7531,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":7532,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":7533,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7534,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7535,"author":{"gitId":"sopa301"},"content":" \"node_modules/vue-eslint-parser/node_modules/eslint-scope\": {","isFullCredit":false},{"lineNumber":7536,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.2.2\",","isFullCredit":false},{"lineNumber":7537,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz\",","isFullCredit":false},{"lineNumber":7538,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg\u003d\u003d\",","isFullCredit":false},{"lineNumber":7539,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7540,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7541,"author":{"gitId":"sopa301"},"content":" \"esrecurse\": \"^4.3.0\",","isFullCredit":false},{"lineNumber":7542,"author":{"gitId":"sopa301"},"content":" \"estraverse\": \"^5.2.0\"","isFullCredit":false},{"lineNumber":7543,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7544,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7545,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":7546,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7547,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7548,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":7549,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7550,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7551,"author":{"gitId":"sopa301"},"content":" \"node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys\": {","isFullCredit":false},{"lineNumber":7552,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.3\",","isFullCredit":false},{"lineNumber":7553,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz\",","isFullCredit":false},{"lineNumber":7554,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag\u003d\u003d\",","isFullCredit":false},{"lineNumber":7555,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7556,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7557,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":7558,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7559,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7560,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":7561,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7562,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7563,"author":{"gitId":"sopa301"},"content":" \"node_modules/vue-eslint-parser/node_modules/estraverse\": {","isFullCredit":false},{"lineNumber":7564,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.3.0\",","isFullCredit":false},{"lineNumber":7565,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz\",","isFullCredit":false},{"lineNumber":7566,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA\u003d\u003d\",","isFullCredit":false},{"lineNumber":7567,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7568,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7569,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4.0\"","isFullCredit":false},{"lineNumber":7570,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7571,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7572,"author":{"gitId":"sopa301"},"content":" \"node_modules/vue-eslint-parser/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":7573,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":7574,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":7575,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":7576,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7577,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7578,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":7579,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7580,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7581,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":7582,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7583,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7584,"author":{"gitId":"sopa301"},"content":" \"node_modules/vue-eslint-parser/node_modules/semver\": {","isFullCredit":false},{"lineNumber":7585,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":7586,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.6.0.tgz\",","isFullCredit":false},{"lineNumber":7587,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":7588,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7589,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7590,"author":{"gitId":"sopa301"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":7591,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7592,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":7593,"author":{"gitId":"sopa301"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":7594,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7595,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7596,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":7597,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7598,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7599,"author":{"gitId":"sopa301"},"content":" \"node_modules/vue-eslint-parser/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":7600,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":7601,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":7602,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":7603,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":7604,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7605,"author":{"gitId":"sopa301"},"content":" \"node_modules/vue-loading-overlay\": {","isFullCredit":false},{"lineNumber":7606,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.4\",","isFullCredit":false},{"lineNumber":7607,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7608,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7609,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12.13.0\"","isFullCredit":false},{"lineNumber":7610,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7611,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":7612,"author":{"gitId":"sopa301"},"content":" \"vue\": \"^3.2.0\"","isFullCredit":false},{"lineNumber":7613,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7614,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7615,"author":{"gitId":"sopa301"},"content":" \"node_modules/vue-observe-visibility\": {","isFullCredit":false},{"lineNumber":7616,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":7617,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7618,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7619,"author":{"gitId":"sopa301"},"content":" \"node_modules/vue-router\": {","isFullCredit":false},{"lineNumber":7620,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":7621,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7622,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7623,"author":{"gitId":"sopa301"},"content":" \"@vue/devtools-api\": \"^6.5.1\"","isFullCredit":false},{"lineNumber":7624,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7625,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7626,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/posva\"","isFullCredit":false},{"lineNumber":7627,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7628,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":7629,"author":{"gitId":"sopa301"},"content":" \"vue\": \"^3.2.0\"","isFullCredit":false},{"lineNumber":7630,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7631,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7632,"author":{"gitId":"sopa301"},"content":" \"node_modules/vuex\": {","isFullCredit":false},{"lineNumber":7633,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":7634,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7635,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7636,"author":{"gitId":"-"},"content":" \"@vue/devtools-api\": \"^6.0.0-beta.11\"","isFullCredit":false},{"lineNumber":7637,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7638,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":7639,"author":{"gitId":"sopa301"},"content":" \"vue\": \"^3.2.0\"","isFullCredit":false},{"lineNumber":7640,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7641,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7642,"author":{"gitId":"sopa301"},"content":" \"node_modules/walk\": {","isFullCredit":false},{"lineNumber":7643,"author":{"gitId":"-"},"content":" \"version\": \"2.3.15\",","isFullCredit":false},{"lineNumber":7644,"author":{"gitId":"sopa301"},"content":" \"license\": \"(MIT OR Apache-2.0)\",","isFullCredit":false},{"lineNumber":7645,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7646,"author":{"gitId":"-"},"content":" \"foreachasync\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":7647,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7648,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7649,"author":{"gitId":"sopa301"},"content":" \"node_modules/watchpack\": {","isFullCredit":false},{"lineNumber":7650,"author":{"gitId":"-"},"content":" \"version\": \"2.4.0\",","isFullCredit":false},{"lineNumber":7651,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7652,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7653,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":7654,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7655,"author":{"gitId":"-"},"content":" \"glob-to-regexp\": \"^0.4.1\",","isFullCredit":false},{"lineNumber":7656,"author":{"gitId":"-"},"content":" \"graceful-fs\": \"^4.1.2\"","isFullCredit":false},{"lineNumber":7657,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7658,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7659,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10.13.0\"","isFullCredit":false},{"lineNumber":7660,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7661,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7662,"author":{"gitId":"sopa301"},"content":" \"node_modules/webpack\": {","isFullCredit":false},{"lineNumber":7663,"author":{"gitId":"-"},"content":" \"version\": \"5.76.2\",","isFullCredit":false},{"lineNumber":7664,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7665,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7666,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":7667,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7668,"author":{"gitId":"-"},"content":" \"@types/eslint-scope\": \"^3.7.3\",","isFullCredit":false},{"lineNumber":7669,"author":{"gitId":"-"},"content":" \"@types/estree\": \"^0.0.51\",","isFullCredit":false},{"lineNumber":7670,"author":{"gitId":"-"},"content":" \"@webassemblyjs/ast\": \"1.11.1\",","isFullCredit":false},{"lineNumber":7671,"author":{"gitId":"-"},"content":" \"@webassemblyjs/wasm-edit\": \"1.11.1\",","isFullCredit":false},{"lineNumber":7672,"author":{"gitId":"-"},"content":" \"@webassemblyjs/wasm-parser\": \"1.11.1\",","isFullCredit":false},{"lineNumber":7673,"author":{"gitId":"-"},"content":" \"acorn\": \"^8.7.1\",","isFullCredit":false},{"lineNumber":7674,"author":{"gitId":"-"},"content":" \"acorn-import-assertions\": \"^1.7.6\",","isFullCredit":false},{"lineNumber":7675,"author":{"gitId":"-"},"content":" \"browserslist\": \"^4.14.5\",","isFullCredit":false},{"lineNumber":7676,"author":{"gitId":"-"},"content":" \"chrome-trace-event\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":7677,"author":{"gitId":"-"},"content":" \"enhanced-resolve\": \"^5.10.0\",","isFullCredit":false},{"lineNumber":7678,"author":{"gitId":"-"},"content":" \"es-module-lexer\": \"^0.9.0\",","isFullCredit":false},{"lineNumber":7679,"author":{"gitId":"-"},"content":" \"eslint-scope\": \"5.1.1\",","isFullCredit":false},{"lineNumber":7680,"author":{"gitId":"-"},"content":" \"events\": \"^3.2.0\",","isFullCredit":false},{"lineNumber":7681,"author":{"gitId":"-"},"content":" \"glob-to-regexp\": \"^0.4.1\",","isFullCredit":false},{"lineNumber":7682,"author":{"gitId":"-"},"content":" \"graceful-fs\": \"^4.2.9\",","isFullCredit":false},{"lineNumber":7683,"author":{"gitId":"-"},"content":" \"json-parse-even-better-errors\": \"^2.3.1\",","isFullCredit":false},{"lineNumber":7684,"author":{"gitId":"-"},"content":" \"loader-runner\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":7685,"author":{"gitId":"-"},"content":" \"mime-types\": \"^2.1.27\",","isFullCredit":false},{"lineNumber":7686,"author":{"gitId":"-"},"content":" \"neo-async\": \"^2.6.2\",","isFullCredit":false},{"lineNumber":7687,"author":{"gitId":"-"},"content":" \"schema-utils\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":7688,"author":{"gitId":"-"},"content":" \"tapable\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":7689,"author":{"gitId":"-"},"content":" \"terser-webpack-plugin\": \"^5.1.3\",","isFullCredit":false},{"lineNumber":7690,"author":{"gitId":"-"},"content":" \"watchpack\": \"^2.4.0\",","isFullCredit":false},{"lineNumber":7691,"author":{"gitId":"-"},"content":" \"webpack-sources\": \"^3.2.3\"","isFullCredit":false},{"lineNumber":7692,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7693,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":7694,"author":{"gitId":"sopa301"},"content":" \"webpack\": \"bin/webpack.js\"","isFullCredit":false},{"lineNumber":7695,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7696,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7697,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10.13.0\"","isFullCredit":false},{"lineNumber":7698,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7699,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7700,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":7701,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":7702,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7703,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":7704,"author":{"gitId":"sopa301"},"content":" \"webpack-cli\": {","isFullCredit":false},{"lineNumber":7705,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7706,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7707,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7708,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7709,"author":{"gitId":"sopa301"},"content":" \"node_modules/webpack-sources\": {","isFullCredit":false},{"lineNumber":7710,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.2.3\",","isFullCredit":false},{"lineNumber":7711,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7712,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7713,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":7714,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7715,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10.13.0\"","isFullCredit":false},{"lineNumber":7716,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7717,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7718,"author":{"gitId":"sopa301"},"content":" \"node_modules/webpack/node_modules/@types/estree\": {","isFullCredit":false},{"lineNumber":7719,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.0.51\",","isFullCredit":false},{"lineNumber":7720,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7721,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7722,"author":{"gitId":"sopa301"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":7723,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7724,"author":{"gitId":"sopa301"},"content":" \"node_modules/webpack/node_modules/schema-utils\": {","isFullCredit":false},{"lineNumber":7725,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":7726,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7727,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7728,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":7729,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7730,"author":{"gitId":"sopa301"},"content":" \"@types/json-schema\": \"^7.0.8\",","isFullCredit":false},{"lineNumber":7731,"author":{"gitId":"sopa301"},"content":" \"ajv\": \"^6.12.5\",","isFullCredit":false},{"lineNumber":7732,"author":{"gitId":"sopa301"},"content":" \"ajv-keywords\": \"^3.5.2\"","isFullCredit":false},{"lineNumber":7733,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7734,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7735,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 10.13.0\"","isFullCredit":false},{"lineNumber":7736,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7737,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7738,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":7739,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":7740,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7741,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7742,"author":{"gitId":"sopa301"},"content":" \"node_modules/webpack/node_modules/tapable\": {","isFullCredit":false},{"lineNumber":7743,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.2.1\",","isFullCredit":false},{"lineNumber":7744,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7745,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7746,"author":{"gitId":"sopa301"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":7747,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7748,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":7749,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7750,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7751,"author":{"gitId":"sopa301"},"content":" \"node_modules/which\": {","isFullCredit":false},{"lineNumber":7752,"author":{"gitId":"-"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":7753,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7754,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":7755,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7756,"author":{"gitId":"-"},"content":" \"isexe\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":7757,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7758,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":7759,"author":{"gitId":"sopa301"},"content":" \"node-which\": \"bin/node-which\"","isFullCredit":false},{"lineNumber":7760,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7761,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7762,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":7763,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7764,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7765,"author":{"gitId":"sopa301"},"content":" \"node_modules/which-boxed-primitive\": {","isFullCredit":false},{"lineNumber":7766,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":7767,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7768,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7769,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7770,"author":{"gitId":"-"},"content":" \"is-bigint\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":7771,"author":{"gitId":"-"},"content":" \"is-boolean-object\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":7772,"author":{"gitId":"-"},"content":" \"is-number-object\": \"^1.0.4\",","isFullCredit":false},{"lineNumber":7773,"author":{"gitId":"-"},"content":" \"is-string\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":7774,"author":{"gitId":"-"},"content":" \"is-symbol\": \"^1.0.3\"","isFullCredit":false},{"lineNumber":7775,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7776,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7777,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7778,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7779,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7780,"author":{"gitId":"sopa301"},"content":" \"node_modules/which-typed-array\": {","isFullCredit":false},{"lineNumber":7781,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.15\",","isFullCredit":false},{"lineNumber":7782,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7783,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7784,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7785,"author":{"gitId":"sopa301"},"content":" \"available-typed-arrays\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":7786,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":7787,"author":{"gitId":"-"},"content":" \"for-each\": \"^0.3.3\",","isFullCredit":false},{"lineNumber":7788,"author":{"gitId":"-"},"content":" \"gopd\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":7789,"author":{"gitId":"sopa301"},"content":" \"has-tostringtag\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":7790,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7791,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7792,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":7793,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7794,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7795,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7796,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7797,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7798,"author":{"gitId":"sopa301"},"content":" \"node_modules/with\": {","isFullCredit":false},{"lineNumber":7799,"author":{"gitId":"-"},"content":" \"version\": \"7.0.2\",","isFullCredit":false},{"lineNumber":7800,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7801,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7802,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7803,"author":{"gitId":"-"},"content":" \"@babel/parser\": \"^7.9.6\",","isFullCredit":false},{"lineNumber":7804,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.9.6\",","isFullCredit":false},{"lineNumber":7805,"author":{"gitId":"-"},"content":" \"assert-never\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":7806,"author":{"gitId":"-"},"content":" \"babel-walk\": \"3.0.0-canary-5\"","isFullCredit":false},{"lineNumber":7807,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7808,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7809,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 10.0.0\"","isFullCredit":false},{"lineNumber":7810,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7811,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7812,"author":{"gitId":"sopa301"},"content":" \"node_modules/wrappy\": {","isFullCredit":false},{"lineNumber":7813,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":7814,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":7815,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7816,"author":{"gitId":"sopa301"},"content":" \"node_modules/write-file-atomic\": {","isFullCredit":false},{"lineNumber":7817,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.1\",","isFullCredit":false},{"lineNumber":7818,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz\",","isFullCredit":false},{"lineNumber":7819,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw\u003d\u003d\",","isFullCredit":false},{"lineNumber":7820,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7821,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7822,"author":{"gitId":"-"},"content":" \"imurmurhash\": \"^0.1.4\",","isFullCredit":false},{"lineNumber":7823,"author":{"gitId":"sopa301"},"content":" \"signal-exit\": \"^4.0.1\"","isFullCredit":false},{"lineNumber":7824,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7825,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7826,"author":{"gitId":"sopa301"},"content":" \"node\": \"^14.17.0 || ^16.13.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":7827,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7828,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7829,"author":{"gitId":"sopa301"},"content":" \"node_modules/write-file-atomic/node_modules/signal-exit\": {","isFullCredit":false},{"lineNumber":7830,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":7831,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz\",","isFullCredit":false},{"lineNumber":7832,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw\u003d\u003d\",","isFullCredit":false},{"lineNumber":7833,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7834,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7835,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d14\"","isFullCredit":false},{"lineNumber":7836,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7837,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7838,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/isaacs\"","isFullCredit":false},{"lineNumber":7839,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7840,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7841,"author":{"gitId":"sopa301"},"content":" \"node_modules/xml-name-validator\": {","isFullCredit":false},{"lineNumber":7842,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":7843,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":7844,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw\u003d\u003d\",","isFullCredit":false},{"lineNumber":7845,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7846,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7847,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":7848,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7849,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7850,"author":{"gitId":"sopa301"},"content":" \"node_modules/yocto-queue\": {","isFullCredit":false},{"lineNumber":7851,"author":{"gitId":"-"},"content":" \"version\": \"0.1.0\",","isFullCredit":false},{"lineNumber":7852,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7853,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7854,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7855,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":7856,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":7857,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7858,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":7859,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7860,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7861,"author":{"gitId":"sopa301"},"content":" \"node_modules/zod\": {","isFullCredit":false},{"lineNumber":7862,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.22.4\",","isFullCredit":false},{"lineNumber":7863,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7864,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7865,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/colinhacks\"","isFullCredit":false},{"lineNumber":7866,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":7867,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7868,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7869,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"sopa301":4924,"-":2945}},{"path":"frontend/package.json","fileType":"json","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" \"name\": \"reposense\",","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" \"description\": \"[![Build Status](https://travis-ci.org/reposense/RepoSense.svg?branch\u003dmaster)](https://travis-ci.org/reposense/RepoSense) [![Build status](https://ci.appveyor.com/api/projects/status/gsbkj5qby3pjd6nw/branch/master?svg\u003dtrue)](https://ci.appveyor.com/project/eugenepeh/reposense/branch/master)\",","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" \"author\": \"\",","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" \"scripts\": {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"sopa301"},"content":" \"serve\": \"vite\",","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"sopa301"},"content":" \"build\": \"vite build\",","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" \"lint\": \"eslint src/**/*.{ts,vue} cypress/tests/**/*.js cypress/support.js \u0026\u0026 stylelint ./src/**/*.{vue,scss} \u0026\u0026 npm run puglint\",","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"sopa301"},"content":" \"devbuild\": \"vite build --mode development\",","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" \"lintfix\": \"eslint --fix src/**/*.{ts,vue} cypress/tests/**/*.js cypress/support.js \u0026\u0026 stylelint --fix ./src/**/*.{vue,scss}\",","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" \"puglint\": \"pug-lint-vue src\",","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"sopa301"},"content":" \"serveOpen\": \"vite --open\"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" \"main\": \"index.js\",","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"sopa301"},"content":" \"@fontsource/titillium-web\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/fontawesome-svg-core\": \"^6.5.1\",","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/free-brands-svg-icons\": \"^6.5.1\",","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/free-solid-svg-icons\": \"^6.5.1\",","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/vue-fontawesome\": \"^3.0.6\",","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"sopa301"},"content":" \"@types/markdown-it\": \"^13.0.7\",","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" \"@types/minimatch\": \"^5.1.2\",","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"sopa301"},"content":" \"@types/seedrandom\": \"^3.0.8\",","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"sopa301"},"content":" \"@vitejs/plugin-vue\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" \"highlight.js\": \"^10.5.0\",","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" \"jszip\": \"^3.5.0\",","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"sopa301"},"content":" \"markdown-it\": \"^14.1.0\",","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"sopa301"},"content":" \"minimatch\": \"^9.0.0\",","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" \"muicss\": \"^0.10.3\",","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" \"normalize.css\": \"^8.0.1\",","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.4.38\",","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" \"pug-lint-vue\": \"^0.4.0\",","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" \"seedrandom\": \"^3.0.5\",","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"sopa301"},"content":" \"vite\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"sopa301"},"content":" \"vue\": \"~3.4.0\",","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"sopa301"},"content":" \"vue-loading-overlay\": \"^6.0.4\",","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" \"vue-observe-visibility\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"sopa301"},"content":" \"vue-router\": \"^4.3.0\",","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" \"vuex\": \"^4.0.2\",","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"sopa301"},"content":" \"zod\": \"^3.22.4\"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" \"devDependencies\": {","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"sopa301"},"content":" \"@stylistic/stylelint-plugin\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"sopa301"},"content":" \"@stylistic/eslint-plugin\": \"^1.7.0\",","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"sopa301"},"content":" \"@types/node\": \"^20.12.4\",","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"sopa301"},"content":" \"@vue/eslint-config-typescript\": \"^13.0.0\",","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^8.57.0\",","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" \"eslint-config-airbnb-base\": \"^15.0.0\",","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"sopa301"},"content":" \"eslint-config-airbnb-typescript\": \"^18.0.0\",","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"sopa301"},"content":" \"eslint-plugin-import\": \"^2.29.1\",","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"sopa301"},"content":" \"eslint-plugin-vue\": \"^9.0.0\",","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"sopa301"},"content":" \"postcss-html\": \"^1.6.0\",","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" \"pug\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"sopa301"},"content":" \"sass\": \"^1.71.0\",","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^16.1.0\",","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-recommended-vue\": \"^1.5.0\",","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-standard\": \"^36.0.0\",","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-standard-scss\": \"^13.0.0\",","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"sopa301"},"content":" \"stylelint-order\": \"^6.0.4\",","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"sopa301"},"content":" \"stylelint-webpack-plugin\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"sopa301"},"content":" \"typescript\": \"~4.9.5\",","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"sopa301"},"content":" \"typescript-eslint\": \"^7.3.1\",","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"sopa301"},"content":" \"vite-plugin-eslint2\": \"^4.4.0\",","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"sopa301"},"content":" \"vite-plugin-stylelint\": \"^5.3.1\"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" \"bugs\": {","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/reposense/RepoSense/issues\"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" \"directories\": {","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" \"doc\": \"docs\"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" \"homepage\": \"https://github.com/reposense/RepoSense#readme\",","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" \"repository\": {","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" \"type\": \"git\",","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" \"url\": \"git+https://github.com/reposense/RepoSense.git\"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"sopa301":40,"-":39}},{"path":"frontend/public/title.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"sopa301"},"content":"# RepoSense","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"sopa301"},"content":"RepoSense is a powerful tool for analyzing repositories. It provides valuable insights into your codebase, helping you understand the development patterns, identify areas for improvement, and track the contributions of individual team members.","isFullCredit":false}],"authorContributionMap":{"sopa301":3}},{"path":"frontend/src/styles/summary-chart.scss","fileType":"scss","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"@import \u0027colors\u0027;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"@import \u0027z-indices\u0027;","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"/* Summary */","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"#summary {","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .summary-status {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" text-align: center;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" @mixin icon-button-config {","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" color: mui-color(\u0027grey\u0027);","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" padding: 0 1.2px 0 1.2px;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" text-decoration: none;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" .icon-button {","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" @include icon-button-config;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" cursor: pointer;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .broken-link {","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .icon-button {","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" cursor: default;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .summary-picker {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" align-items: center;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" display: flex;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" flex-flow: row wrap;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" justify-content: center;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" margin-bottom: 2rem;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" \u0026__section {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" align-items: inherit;","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" display: flex;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" flex: 0 1 auto;","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" flex-flow: inherit;","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" justify-content: inherit;","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" \u0026__checkboxes {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" label {","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" margin-left: .5rem;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" span {","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" margin-left: .25rem;","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" .mui-textfield,","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" .mui-select {","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" @include small-font;","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" margin: .5rem;","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" padding-right: 10px;","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" .mui-btn {","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" @include small-font;","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" background: transparent;","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" box-shadow: none;","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" color: mui-color(\u0027grey\u0027);","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" font-weight: bold;","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" left: -8px;","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" margin: 0;","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" padding: 0;","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" vertical-align: middle;","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" .search_box {","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" align-items: center;","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" display: flex;","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" input {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" @include small-font;","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" padding-right: 10px;","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" label {","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" @include small-font;","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" overflow-y: hidden;","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" text-align: left;","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" width: fit-content;","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" input,","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" select {","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" @include small-font;","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" .summary-charts {","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" margin-bottom: 1.4rem;","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" \u0026__title {","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" align-items: center;","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" display: flex;","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"jonasongg"},"content":" flex-wrap: wrap;","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" font-weight: bold;","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" text-align: left;","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" \u0026 \u003e * {","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" padding-right: .5rem;","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" \u0026--index {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" background: mui-color(\u0027black\u0027);","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" color: mui-color(\u0027white\u0027);","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" overflow: hidden;","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" padding: .1em .25em;","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" vertical-align: middle;","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"sopa301"},"content":" @include medium-font;","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" \u0026--groupname {","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" @include medium-font;","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" padding: .5rem;","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" \u0026--percentile {","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" @include mini-font;","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" color: mui-color(\u0027grey\u0027);","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" margin-left: auto;","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" \u0026--contribution {","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" @include mini-font;","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" display: inline;","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"jonasongg"},"content":" \u0026--tags {","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"jonasongg"},"content":" margin: .25rem 0;","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"jonasongg"},"content":" }","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" \u0026__fileType--breakdown {","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" overflow-y: hidden;","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" \u0026__legend {","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" @include small-font;","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" display: inline;","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" float: left;","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" .summary-chart {","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" display: inline-block;","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" margin-bottom: 1rem;","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" position: relative;","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" text-align: left;","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" width: 100%;","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" \u0026__title {","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" align-items: center;","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" clear: left;","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" display: flex;","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" \u0026 \u003e * {","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" padding-right: .5rem;","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" \u0026--index {","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" margin-left: 3px;","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" \u0026--repo {","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" font-weight: bold;","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" \u0026--index::after {","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" content: \u0027.\u0027;","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" \u0026--repo {","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" padding-right: .25rem;","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" \u0026--contribution {","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" @include mini-font;","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" \u0026--percentile {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" @include mini-font;","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" color: mui-color(\u0027grey\u0027);","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" margin-left: auto;","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" padding-right: 0;","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" \u0026__ramp {","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" position: relative;","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" .overlay {","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" height: 100%;","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" position: absolute;","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" top: 0;","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" \u0026.show {","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" background-color: rgba(mui-color(\u0027white\u0027), .5);","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" border: 1px dashed mui-color(\u0027black\u0027);","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" \u0026.edge {","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" border-right: 1px dashed mui-color(\u0027black\u0027);","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" .active-icon {","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" background-color: mui-color(\u0027green\u0027);","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" border-radius: 2px;","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" color: mui-color(\u0027white\u0027);","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" .active-background {","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" background-color: mui-color(\u0027yellow\u0027, \u0027200\u0027);","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"sopa301":1,"-":216,"jonasongg":5}},{"path":"frontend/src/styles/tags.scss","fileType":"scss","lines":[{"lineNumber":1,"author":{"gitId":"jonasongg"},"content":"@import \u0027colors\u0027;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"jonasongg"},"content":"/* Tags in commits */","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"jonasongg"},"content":".tag {","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" @include mini-font;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"jonasongg"},"content":" background: mui-color(\u0027grey\u0027, \u0027600\u0027);","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"jonasongg"},"content":" border-radius: 5px;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"jonasongg"},"content":" color: mui-color(\u0027white\u0027);","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"jonasongg"},"content":" display: inline-block;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"jonasongg"},"content":" margin: .2rem .2rem .2rem 0;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"jonasongg"},"content":" padding: 0 3px 0 3px;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"jonasongg"},"content":" .fa-tags {","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"jonasongg"},"content":" width: .65rem;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"jonasongg"},"content":" }","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"jonasongg"},"content":"}","isFullCredit":false}],"authorContributionMap":{"jonasongg":16}},{"path":"src/main/java/reposense/RepoSense.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.time.ZonedDateTime;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.time.format.DateTimeFormatter;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.logging.Level;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.helper.HelpScreenException;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.git.GitConfig;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.model.BlurbMap;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.model.CliArguments;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import reposense.model.ReportConfiguration;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.model.RunConfigurationDecider;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.parser.ArgsParser;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidCsvException;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidHeaderException;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidMarkdownException;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.ParseException;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import reposense.report.ReportGenerator;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import reposense.system.ReportServer;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"import reposense.util.TimeUtil;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" * The main RepoSense class.","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"public class RepoSense {","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(RepoSense.class);","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private static final int SERVER_PORT_NUMBER \u003d 9000;","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private static final DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(\"E MMM d HH:mm:ss yyyy z\");","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final String VERSION_UNSPECIFIED \u003d \"unspecified\";","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" * The entry point of the program.","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" * Additional flags are provided by the user in {@code args}.","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" public static void main(String[] args) {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" TimeUtil.startTimer();","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(args);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d null;","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" ReportConfiguration reportConfig \u003d new ReportConfiguration();","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap blurbMap \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" if (cliArguments.isViewModeOnly()) {","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" ReportServer.startServer(SERVER_PORT_NUMBER, cliArguments.getReportDirectoryPath().toAbsolutePath());","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" return;","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" configs \u003d RunConfigurationDecider.getRunConfiguration(cliArguments).getRepoConfigurations();","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" reportConfig \u003d cliArguments.getReportConfiguration();","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"asdfghjkxd"},"content":" blurbMap \u003d cliArguments.getBlurbMap();","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" RepoConfiguration.setFormatsToRepoConfigs(configs, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" RepoConfiguration.setDatesToRepoConfigs(configs, cliArguments.getSinceDate(), cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" RepoConfiguration.setZoneIdToRepoConfigs(configs, cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(configs,","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" cliArguments.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" RepoConfiguration.setFileSizeLimitIgnoredToRepoConfigs(configs,","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" cliArguments.isFileSizeLimitIgnored());","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsLastModifiedDateIncludedToRepoConfigs(configs,","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" cliArguments.isLastModifiedDateIncluded());","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsShallowCloningPerformedToRepoConfigs(configs,","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" cliArguments.isShallowCloningPerformed());","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsFindingPreviousAuthorsPerformedToRepoConfigs(configs,","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" cliArguments.isFindingPreviousAuthorsPerformed());","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" List\u003cString[]\u003e globalGitConfig \u003d GitConfig.getGlobalGitLfsConfig();","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" if (globalGitConfig.size() !\u003d 0) {","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" GitConfig.setGlobalGitLfsConfig(GitConfig.SKIP_SMUDGE_CONFIG_SETTINGS);","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" ReportGenerator reportGenerator \u003d new ReportGenerator();","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" List\u003cPath\u003e reportFoldersAndFiles \u003d reportGenerator.generateReposReport(configs,","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" cliArguments.getOutputFilePath().toAbsolutePath().toString(),","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" cliArguments.getAssetsFilePath().toAbsolutePath().toString(), reportConfig,","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" formatter.format(ZonedDateTime.now(cliArguments.getZoneId())),","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" cliArguments.getSinceDate(), cliArguments.getUntilDate(),","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" cliArguments.isSinceDateProvided(), cliArguments.isUntilDateProvided(),","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" cliArguments.getNumCloningThreads(), cliArguments.getNumAnalysisThreads(),","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" TimeUtil::getElapsedTime, cliArguments.getZoneId(), cliArguments.isFreshClonePerformed(),","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"asdfghjkxd"},"content":" cliArguments.isAuthorshipAnalyzed(), cliArguments.getOriginalityThreshold(),","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"asdfghjkxd"},"content":" blurbMap","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" FileUtil.zipFoldersAndFiles(reportFoldersAndFiles, cliArguments.getOutputFilePath().toAbsolutePath(),","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" \".json\");","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" // Set back to user\u0027s initial global git lfs config","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" GitConfig.setGlobalGitLfsConfig(globalGitConfig);","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" logger.info(TimeUtil.getElapsedTimeMessage());","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" if (cliArguments.isAutomaticallyLaunching()) {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" ReportServer.startServer(SERVER_PORT_NUMBER, cliArguments.getOutputFilePath().toAbsolutePath());","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" } catch (IOException | ParseException | InvalidCsvException | InvalidHeaderException e) {","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, e.getMessage(), e);","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" } catch (HelpScreenException e) {","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" // help message was printed by the ArgumentParser; it is safe to exit.","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"asdfghjkxd"},"content":" } catch (InvalidMarkdownException ex) {","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"asdfghjkxd"},"content":" logger.log(Level.SEVERE, ex.getMessage(), ex);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" LogsManager.moveLogFileToOutputFolder();","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" public static String getVersion() {","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" String version \u003d RepoSense.class.getPackage().getImplementationVersion();","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" if (version \u003d\u003d null || version.equals(VERSION_UNSPECIFIED)) {","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" version \u003d System.getProperty(\"version\");","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" return version;","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":12,"-":110}},{"path":"src/main/java/reposense/authorship/FileInfoAnalyzer.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.authorship;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.time.Instant;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.HashMap;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.HashSet;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.Set;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.authorship.analyzer.AnnotatorAnalyzer;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.authorship.analyzer.AuthorshipAnalyzer;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import reposense.authorship.model.FileInfo;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.authorship.model.FileResult;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.authorship.model.LineInfo;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.git.GitBlame;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import reposense.git.GitLog;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import reposense.model.CommitHash;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" * Analyzes the target and information given in the {@link FileInfo}.","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"public class FileInfoAnalyzer {","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(FileInfoAnalyzer.class);","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private static final int AUTHOR_NAME_OFFSET \u003d \"author \".length();","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private static final int AUTHOR_EMAIL_OFFSET \u003d \"author-mail \".length();","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final int AUTHOR_TIME_OFFSET \u003d \"author-time \".length();","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private static final int AUTHOR_TIMEZONE_OFFSET \u003d \"author-tz \".length();","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private static final int FULL_COMMIT_HASH_LENGTH \u003d 40;","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private static final String MESSAGE_FILE_MISSING \u003d \"Unable to analyze the file located at \\\"%s\\\" \"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" + \"as the file is missing from your system. Skipping this file.\";","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" private static final String MESSAGE_SHALLOW_CLONING_LAST_MODIFIED_DATE_CONFLICT \u003d \"Repo %s was cloned using \"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" + \"shallow cloning. As such, the \\\"last modified date\\\" values may be incorrect.\";","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" * Analyzes the lines of the file, given in the {@code fileInfo}, that has changed in the time period provided","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" * by {@code config}.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" * Further analyzes the authorship of each line in the commit if {@code shouldAnalyzeAuthorship} is true, based on","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" * {@code originalityThreshold}.","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" * Returns null if the file is missing from the local system, or none of the","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" * {@link Author} specified in {@code config} contributed to the file in {@code fileInfo}.","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" public FileResult analyzeTextFile(RepoConfiguration config, FileInfo fileInfo, boolean shouldAnalyzeAuthorship,","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" double originalityThreshold) {","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" String relativePath \u003d fileInfo.getPath();","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" if (Files.notExists(Paths.get(config.getRepoRoot(), relativePath))) {","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" logger.severe(String.format(MESSAGE_FILE_MISSING, relativePath));","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" return null;","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" if (FileUtil.isEmptyFile(config.getRepoRoot(), relativePath)) {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" return null;","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" aggregateBlameAuthorModifiedAndDateInfo(config, fileInfo, shouldAnalyzeAuthorship, originalityThreshold);","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" fileInfo.setFileType(config.getFileType(fileInfo.getPath()));","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" AnnotatorAnalyzer.aggregateAnnotationAuthorInfo(fileInfo, config.getAuthorConfig(), shouldAnalyzeAuthorship);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" if (!config.getAuthorList().isEmpty() \u0026\u0026 fileInfo.isAllAuthorsIgnored(config.getAuthorList())) {","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" return null;","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" return generateTextFileResult(fileInfo);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" * Analyzes the binary file, given in the {@code fileInfo}, that has changed in the time period provided","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" * by {@code config}.","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" * Returns null if the file is missing from the local system, or none of the","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" * {@link Author} specified in {@code config} contributed to the file in {@code fileInfo}.","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" public FileResult analyzeBinaryFile(RepoConfiguration config, FileInfo fileInfo) {","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" String relativePath \u003d fileInfo.getPath();","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" if (Files.notExists(Paths.get(config.getRepoRoot(), relativePath))) {","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" logger.severe(String.format(MESSAGE_FILE_MISSING, relativePath));","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" return null;","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" fileInfo.setFileType(config.getFileType(fileInfo.getPath()));","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" return generateBinaryFileResult(config, fileInfo);","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" * Generates and returns a {@link FileResult} with the authorship results from {@code fileInfo} consolidated.","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" private FileResult generateTextFileResult(FileInfo fileInfo) {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" HashMap\u003cAuthor, Integer\u003e authorContributionMap \u003d new HashMap\u003c\u003e();","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" for (LineInfo line : fileInfo.getLines()) {","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" Author author \u003d line.getAuthor();","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" authorContributionMap.put(author, authorContributionMap.getOrDefault(author, 0) + 1);","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" return FileResult.createTextFileResult(fileInfo.getPath(), fileInfo.getFileType(), fileInfo.getLines(),","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" authorContributionMap, fileInfo.exceedsFileLimit());","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" * Generates and returns a {@link FileResult} with the authorship results from binary {@code fileInfo} consolidated.","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" * Authorship results are indicated in the {@code authorContributionMap} as contributions with zero line counts.","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" * Returns {@code null} if none of the {@link Author} specified in {@code config} contributed to the file in","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" * {@code fileInfo}.","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" private FileResult generateBinaryFileResult(RepoConfiguration config, FileInfo fileInfo) {","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" List\u003cString[]\u003e authorsString \u003d GitLog.getFileAuthors(config, fileInfo.getPath());","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" if (authorsString.size() \u003d\u003d 0) {","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" return null;","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" Set\u003cAuthor\u003e authors \u003d new HashSet\u003c\u003e();","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" HashMap\u003cAuthor, Integer\u003e authorContributionMap \u003d new HashMap\u003c\u003e();","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" for (String[] lineDetails : authorsString) {","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" String authorName \u003d lineDetails[0];","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" String authorEmail \u003d lineDetails[1];","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" authors.add(config.getAuthor(authorName, authorEmail));","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" for (Author author : authors) {","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" authorContributionMap.put(author, 0);","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" return FileResult.createBinaryFileResult(fileInfo.getPath(), fileInfo.getFileType(), authorContributionMap);","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" * Sets the {@link Author} and {@link LocalDateTime} for each line in {@code fileInfo} based on the git blame","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" * analysis of the file.","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" * The {@code config} is used to obtain the root directory for running git blame as well as other parameters used","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" * in determining which author to assign to each line and whether to set the last modified date for a","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" * {@code lineInfo}.","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" * Further analyzes the authorship of each line in the commit if {@code shouldAnalyzeAuthorship} is true, based on","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" * {@code originalityThreshold}.","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" private void aggregateBlameAuthorModifiedAndDateInfo(RepoConfiguration config, FileInfo fileInfo,","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" boolean shouldAnalyzeAuthorship, double originalityThreshold) {","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" String blameResults;","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" if (!config.isFindingPreviousAuthorsPerformed()) {","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" blameResults \u003d getGitBlameResult(config, fileInfo.getPath());","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" blameResults \u003d getGitBlameWithPreviousAuthorsResult(config, fileInfo.getPath());","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"asdfghjkxd"},"content":" String[] blameResultLines \u003d StringsUtil.NEWLINE.split(blameResults);","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" Path filePath \u003d Paths.get(fileInfo.getPath());","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" LocalDateTime sinceDate \u003d config.getSinceDate();","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" LocalDateTime untilDate \u003d config.getUntilDate();","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" for (int lineCount \u003d 0; lineCount \u003c blameResultLines.length; lineCount +\u003d 5) {","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" String commitHash \u003d blameResultLines[lineCount].substring(0, FULL_COMMIT_HASH_LENGTH);","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" String authorName \u003d blameResultLines[lineCount + 1].substring(AUTHOR_NAME_OFFSET);","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" String authorEmail \u003d blameResultLines[lineCount + 2]","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" .substring(AUTHOR_EMAIL_OFFSET).replaceAll(\"\u003c|\u003e\", \"\");","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" long commitDateInMs \u003d Long.parseLong(blameResultLines[lineCount + 3].substring(AUTHOR_TIME_OFFSET)) * 1000;","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" LocalDateTime commitDate \u003d LocalDateTime.ofInstant(Instant.ofEpochMilli(commitDateInMs),","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" config.getZoneId());","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" Author author \u003d config.getAuthor(authorName, authorEmail);","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" int lineNumber \u003d lineCount / 5;","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" if (!fileInfo.isFileLineTracked(lineNumber) || author.isIgnoringFile(filePath)","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" || CommitHash.isInsideCommitList(commitHash, config.getIgnoreCommitList())","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" || commitDate.isBefore(sinceDate) || commitDate.isAfter(untilDate)) {","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" author \u003d Author.UNKNOWN_AUTHOR;","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" if (config.isLastModifiedDateIncluded()) {","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" if (config.isShallowCloningPerformed()) {","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" logger.warning(String.format(","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" MESSAGE_SHALLOW_CLONING_LAST_MODIFIED_DATE_CONFLICT, config.getRepoName()));","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" fileInfo.setLineLastModifiedDate(lineNumber, commitDate);","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" fileInfo.setLineAuthor(lineNumber, author);","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" if (shouldAnalyzeAuthorship \u0026\u0026 !author.equals(Author.UNKNOWN_AUTHOR)) {","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" String lineContent \u003d fileInfo.getLine(lineNumber + 1).getContent();","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" boolean isFullCredit \u003d AuthorshipAnalyzer.analyzeAuthorship(config, fileInfo.getPath(), lineContent,","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" commitHash, author, originalityThreshold);","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" fileInfo.setIsFullCredit(lineNumber, isFullCredit);","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" * Returns the analysis result from running git blame on {@code filePath} with reference to the root directory","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" * given in {@code config}.","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" private String getGitBlameResult(RepoConfiguration config, String filePath) {","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" return GitBlame.blame(config.getRepoRoot(), filePath);","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" * Returns the analysis result from running git blame with finding previous authors enabled on {@code filePath}","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" * with reference to the root directory given in {@code config}.","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" private String getGitBlameWithPreviousAuthorsResult(RepoConfiguration config, String filePath) {","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" return GitBlame.blameWithPreviousAuthors(config.getRepoRoot(), filePath);","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":213}},{"path":"src/main/java/reposense/authorship/FileInfoExtractor.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.authorship;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.BufferedReader;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.io.FileReader;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.InvalidPathException;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.Comparator;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.HashSet;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import java.util.Set;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import java.util.logging.Level;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import java.util.regex.Matcher;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import reposense.authorship.model.FileInfo;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import reposense.authorship.model.LineInfo;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import reposense.git.GitCheckout;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import reposense.git.GitDiff;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import reposense.git.GitRevList;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"import reposense.git.exception.CommitNotFoundException;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" * Extracts out all the relevant {@code FileInfo} from the repository.","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"public class FileInfoExtractor {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(FileInfoExtractor.class);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private static final String MESSAGE_START_EXTRACTING_FILE_INFO \u003d \"Extracting relevant file info from %s (%s)...\";","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private static final String MESSAGE_INVALID_FILE_PATH \u003d \"\\\"%s\\\" is an invalid file path for current OS or \"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" + \"indicates a possible regex match issue. Skipping this directory.\";","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private static final String MESSAGE_FILE_SIZE_LIMIT_EXCEEDED \u003d \"File \\\"%s\\\" has %dB size. The file size \"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" + \"limit is set at %dB. %s\";","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" private static final String MESSAGE_FILE_ANALYSIS_SKIPPED \u003d \"Skipping analysis of this file...\";","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" private static final String MESSAGE_FILE_EXCLUDED_FROM_REPORT \u003d \"Exact line diffs will be excluded from report...\";","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" private static final String DIFF_FILE_CHUNK_SEPARATOR \u003d \"\\ndiff --git \\\"?\\\u0027?a/.*\\n\";","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" private static final String LINE_CHUNKS_SEPARATOR \u003d \"\\n@@ \";","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" private static final String LINE_INSERTED_SYMBOL \u003d \"+\";","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" private static final String STARTING_LINE_NUMBER_GROUP_NAME \u003d \"startingLineNumber\";","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" private static final String FILE_CHANGED_GROUP_NAME \u003d \"filePath\";","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" private static final String FILE_DELETED_SYMBOL \u003d \"dev/null\";","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" private static final String MATCH_GROUP_FAIL_MESSAGE_FORMAT \u003d \"Failed to match the %s group for:\\n%s\";","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" private static final String BINARY_FILE_LINE_DIFF_RESULT \u003d \"-\\t-\\t\";","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" private static final int LINE_CHANGED_HEADER_INDEX \u003d 0;","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" private static final Pattern STARTING_LINE_NUMBER_PATTERN \u003d Pattern.compile(","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" \"-(\\\\d)+(,)?(\\\\d)* \\\\+(?\u003cstartingLineNumber\u003e\\\\d+)(,)?(\\\\d)* @@\");","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" private static final Pattern FILE_CHANGED_PATTERN \u003d Pattern.compile(\"\\n(\\\\+){3} b?/(?\u003cfilePath\u003e.*?)\\t?\\n\");","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" * Extracts a list of relevant non-binary files given in {@code config}.","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" public List\u003cFileInfo\u003e extractTextFileInfos(RepoConfiguration config) {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" logger.info(String.format(MESSAGE_START_EXTRACTING_FILE_INFO, config.getLocation(), config.getBranch()));","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" List\u003cFileInfo\u003e fileInfos \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" // checks out to the latest commit of the date range to ensure the FileInfo generated correspond to the","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" // git blame file analyze output","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" GitCheckout.checkoutDate(config.getRepoRoot(), config.getBranch(), config.getUntilDate(),","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" config.getZoneId());","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" } catch (CommitNotFoundException cnfe) {","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" return fileInfos;","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" String lastCommitHash \u003d GitRevList.getCommitHashUntilDate(","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" config.getRepoRoot(), config.getBranch(), config.getSinceDate(), config.getZoneId());","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" fileInfos \u003d (lastCommitHash.isEmpty())","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" ? getAllFileInfo(config, false)","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" : getEditedFileInfos(config, lastCommitHash);","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" fileInfos.sort(Comparator.comparing(FileInfo::getPath));","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" return fileInfos;","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" * Extracts a list of relevant binary files given in {@code config}.","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" public List\u003cFileInfo\u003e extractBinaryFileInfos(RepoConfiguration config) {","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" List\u003cFileInfo\u003e binaryFileInfos \u003d getAllFileInfo(config, true);","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" binaryFileInfos.sort(Comparator.comparing(FileInfo::getPath));","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" return binaryFileInfos;","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" * Returns a list of {@link FileInfo}s for all files in the repo with lines marked indicating if they were edited","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" * in between the current commit and the commit given by {@code lastCommitHash}.","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" * The repo is given by {@code config}.","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" public List\u003cFileInfo\u003e getEditedFileInfos(RepoConfiguration config, String lastCommitHash) {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" List\u003cFileInfo\u003e fileInfos \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" String fullDiffResult \u003d GitDiff.diffCommit(config.getRepoRoot(), lastCommitHash);","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" // no diff between the 2 commits, return an empty list","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" if (fullDiffResult.isEmpty()) {","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" return fileInfos;","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" String[] fileDiffResultList \u003d fullDiffResult.split(DIFF_FILE_CHUNK_SEPARATOR);","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" Set\u003cPath\u003e textFilesSet \u003d getFiles(config, false);","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" for (String fileDiffResult : fileDiffResultList) {","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" Matcher filePathMatcher \u003d FILE_CHANGED_PATTERN.matcher(fileDiffResult);","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" // diff result does not have the markers to indicate that file has any line changes, skip it","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" if (!filePathMatcher.find()) {","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" String filePath \u003d filePathMatcher.group(FILE_CHANGED_GROUP_NAME);","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" if (filePath.equals(FILE_DELETED_SYMBOL) // file is deleted, skip it as well","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" || !isValidTextFile(filePath, textFilesSet)","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" || !config.getFileTypeManager().isInsideWhitelistedFormats(filePath)","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" || FileUtil.isFileIgnoredByGlob(config, Paths.get(filePath))) {","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" FileInfo currentFileInfo \u003d generateFileInfo(config, filePath);","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" setLinesToTrack(currentFileInfo, fileDiffResult);","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" if (currentFileInfo.isFileAnalyzed()) {","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" fileInfos.add(currentFileInfo);","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" return fileInfos;","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" * Returns a {@link Set} of non-binary files for the repo {@code repoConfig}","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" * if {@code isBinaryFiles} is set to `false`.","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" * Otherwise, returns a {@link Set} of binary files for the repo {@code repoConfig}.","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" public Set\u003cPath\u003e getFiles(RepoConfiguration repoConfig, boolean isBinaryFile) {","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" List\u003cString\u003e modifiedFileList \u003d GitDiff.getModifiedFilesList(Paths.get(repoConfig.getRepoRoot()));","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" // Gets rid of files with invalid directory name and filters by the {@code isBinaryFile} flag","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" return modifiedFileList.stream()","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" .filter(file -\u003e isBinaryFile \u003d\u003d file.startsWith(BINARY_FILE_LINE_DIFF_RESULT))","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"asdfghjkxd"},"content":" .map(file -\u003e StringsUtil.TAB.split(file)[2])","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" .filter(FileUtil::isValidPathWithLogging)","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"asdfghjkxd"},"content":" .map(Paths::get)","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" .collect(Collectors.toCollection(HashSet::new));","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" * Analyzes the {@code fileDiffResult} and marks each {@link LineInfo} in {@code fileInfo} on whether they were","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" * inserted in between the commit range.","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" private void setLinesToTrack(FileInfo fileInfo, String fileDiffResult) {","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" String[] linesChangedChunk \u003d fileDiffResult.split(LINE_CHUNKS_SEPARATOR);","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" List\u003cLineInfo\u003e lineInfos \u003d fileInfo.getLines();","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" int fileLinePointer \u003d 0;","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" // skips the header, index starts from 1","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" for (int sectionIndex \u003d 1; sectionIndex \u003c linesChangedChunk.length; sectionIndex++) {","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" String linesChangedInSection \u003d linesChangedChunk[sectionIndex];","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"asdfghjkxd"},"content":" String[] linesChanged \u003d StringsUtil.NEWLINE.split(linesChangedInSection);","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" int startingLineNumber \u003d getStartingLineNumber(linesChanged[LINE_CHANGED_HEADER_INDEX]);","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" // mark all untouched lines between sections as untracked","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" while (fileLinePointer \u003c startingLineNumber - 1) {","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" lineInfos.get(fileLinePointer++).setTracked(false);","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" // skips the header, index starts from 1","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" for (int lineIndex \u003d 1; lineIndex \u003c linesChanged.length; lineIndex++) {","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" String lineChanged \u003d linesChanged[lineIndex];","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" // set line added to be tracked","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" if (lineChanged.startsWith(LINE_INSERTED_SYMBOL)) {","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" lineInfos.get(fileLinePointer++).setTracked(true);","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" // set all remaining lines in file that were untouched to be untracked","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" while (fileLinePointer \u003c lineInfos.size()) {","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" lineInfos.get(fileLinePointer++).setTracked(false);","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" * Traverses each file from the repo root directory, generates the {@link FileInfo} for each relevant file found","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" * based on {@code config} and inserts it into {@code fileInfos}.","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" * Adds binary files to {@link List} if {@code isBinaryFiles} is true. Otherwise, adds non-binary files","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" * to {@link List}.","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" private List\u003cFileInfo\u003e getAllFileInfo(RepoConfiguration config, boolean isBinaryFiles) {","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" List\u003cFileInfo\u003e fileInfos \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" Set\u003cPath\u003e files \u003d getFiles(config, isBinaryFiles);","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" for (Path relativePath : files) {","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" if (!config.getFileTypeManager().isInsideWhitelistedFormats(relativePath.toString())","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" || FileUtil.isFileIgnoredByGlob(config, relativePath)) {","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" FileInfo fileInfo \u003d (isBinaryFiles)","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" ? new FileInfo(relativePath.toString())","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" : generateFileInfo(config, relativePath.toString());","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" if (fileInfo.isFileAnalyzed()) {","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" fileInfos.add(fileInfo);","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" return fileInfos;","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" * Returns a {@link FileInfo} with a list of {@link LineInfo} for each line content in the","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" * file located in the repository given by {@code config}/{@code relativePath}.","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" public FileInfo generateFileInfo(RepoConfiguration config, String relativePath) {","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" return generateFileInfo(config.getRepoRoot(), relativePath, config.getFileSizeLimit(),","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" config.isFileSizeLimitIgnored(), config.isIgnoredFileAnalysisSkipped());","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" * Returns a {@link FileInfo} with a list of {@link LineInfo} for each line content in the","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" * file located at the {@link Path} given by {@code repoRoot}/{@code relativePath}. {@code fileSizeLimit} and","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" * {@code ignoreFileSizeLimit} are used to set whether the file size limit is exceeding. {@link LineInfo}s are","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" * not included in {@link FileInfo} if {@code skipIgnoredFileAnalysis} is true and file size limit is exceeding.","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" public FileInfo generateFileInfo(String repoRoot, String relativePath, long fileSizeLimit,","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" boolean ignoreFileSizeLimit, boolean skipIgnoredFileAnalysis) {","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" FileInfo fileInfo \u003d new FileInfo(relativePath);","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" Path path \u003d Paths.get(repoRoot, fileInfo.getPath());","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" try (BufferedReader br \u003d new BufferedReader(new FileReader(path.toFile()))) {","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" long fileSize \u003d Files.size(path);","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" fileInfo.setFileSize(fileSize);","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" if (!ignoreFileSizeLimit \u0026\u0026 fileSize \u003e fileSizeLimit) {","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" fileInfo.setExceedsSizeLimit(true);","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" if (skipIgnoredFileAnalysis) {","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, String.format(MESSAGE_FILE_SIZE_LIMIT_EXCEEDED,","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" fileInfo.getPath(), fileSize, fileSizeLimit, MESSAGE_FILE_ANALYSIS_SKIPPED));","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" fileInfo.setFileAnalyzed(false);","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" return fileInfo;","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, String.format(MESSAGE_FILE_SIZE_LIMIT_EXCEEDED,","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" fileInfo.getPath(), fileSize, fileSizeLimit, MESSAGE_FILE_EXCLUDED_FROM_REPORT));","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" String line;","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" int lineNum \u003d 1;","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" while ((line \u003d br.readLine()) !\u003d null) {","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" fileInfo.addLine(new LineInfo(lineNum++, line));","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" } catch (IOException ioe) {","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" logger.log(Level.SEVERE, ioe.getMessage(), ioe);","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" return fileInfo;","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" * Returns the starting line changed number, within the file diff result, by matching the pattern inside","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" * {@code linesChanged}.","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" * @throws AssertionError if matching line number pattern in chunk header fails.","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" private int getStartingLineNumber(String linesChanged) throws AssertionError {","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" Matcher chunkHeaderMatcher \u003d STARTING_LINE_NUMBER_PATTERN.matcher(linesChanged);","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" if (!chunkHeaderMatcher.find()) {","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" logger.severe(String.format(MATCH_GROUP_FAIL_MESSAGE_FORMAT, \"line changed\", linesChanged));","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" throw new AssertionError(\"Should not have error matching line number pattern inside chunk header!\");","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" return Integer.parseInt(chunkHeaderMatcher.group(STARTING_LINE_NUMBER_GROUP_NAME));","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" * Returns true if {@code filePath} is valid and the file is not in binary (i.e. part of {@code textFilesSet}).","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" private boolean isValidTextFile(String filePath, Set\u003cPath\u003e textFilesSet) {","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" boolean isValidFilePath;","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" isValidFilePath \u003d FileUtil.isValidPathWithLogging(filePath);","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" } catch (InvalidPathException ipe) {","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, String.format(MESSAGE_INVALID_FILE_PATH, filePath));","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":" isValidFilePath \u003d false;","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" return isValidFilePath \u0026\u0026 textFilesSet.contains(Paths.get(filePath));","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":4,"-":291}},{"path":"src/main/java/reposense/git/GitCatFile.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.system.CommandRunner.runCommand;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.git.exception.CommitNotFoundException;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" * Contains git cat file related functionalities.","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Git cat file provides content or type and size information for repository objects.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"public class GitCatFile {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(GitCatFile.class);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" * Returns parent commits for the commit associated with the input {@code commitHash}.","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" * The {@link Path} given by {@code root} is the working directory.","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" * @throws CommitNotFoundException if there is no commit associated with {@code commitHash}.","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" public static List\u003cString\u003e getParentCommits(String root, String commitHash) throws CommitNotFoundException {","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" String catFileCommand \u003d \"git cat-file -p \" + commitHash;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" String output \u003d runCommand(rootPath, catFileCommand);","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" List\u003cString\u003e parentCommits \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":" for (String line : StringsUtil.NEWLINE.split(output)) {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" if (line.startsWith(\"parent\")) {","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" parentCommits.add(line.substring(7).trim());","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" return parentCommits;","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" } catch (RuntimeException e) {","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" throw new CommitNotFoundException(\"Commit not found: \" + commitHash);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" * Given the input list of {@code commitHashes}, return a list of commit hashes for the parent","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" * commits of all the commits.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" * The {@link Path} given by {@code root} is the working directory.","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" public static List\u003cString\u003e getParentsOfCommits(String root, List\u003cString\u003e commitHashes) {","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" List\u003cString\u003e parentCommits \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" for (String commitHash : commitHashes) {","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" parentCommits.addAll(getParentCommits(root, commitHash));","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" } catch (CommitNotFoundException e) {","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" logger.warning(\"Invalid commit hash ignored: \" + commitHash);","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" return parentCommits;","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":60}},{"path":"src/main/java/reposense/git/GitConfig.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.logging.Level;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.system.CommandRunner;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Contains git config related functionalities.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" * Git config is used to set Git configuration values on a global or local","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" * project level.","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"public class GitConfig {","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" public static final String FILTER_LFS_SMUDGE_KEY \u003d \"filter.lfs.smudge\";","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" public static final String FILTER_LFS_SMUDGE_VALUE \u003d \"git-lfs smudge --skip -- %f\";","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" public static final String FILTER_LFS_PROCESS_KEY \u003d \"filter.lfs.process\";","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" public static final String FILTER_LFS_PROCESS_VALUE \u003d \"git-lfs filter-process --skip\";","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final String LIST_GLOBAL_CONFIG_COMMAND \u003d \"git config --global --list\";","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" public static final List\u003cString[]\u003e SKIP_SMUDGE_CONFIG_SETTINGS \u003d Arrays.asList(","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" new String[] {FILTER_LFS_SMUDGE_KEY, FILTER_LFS_SMUDGE_VALUE},","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" new String[] {FILTER_LFS_PROCESS_KEY, FILTER_LFS_PROCESS_VALUE});","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(GitConfig.class);","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" * Returns the configuration values for lfs smudge and process within global git config.","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" * @return a list of string arrays where 0-index is key and 1-index is value.","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" public static List\u003cString[]\u003e getGlobalGitLfsConfig() {","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"asdfghjkxd"},"content":" Pattern equals \u003d Pattern.compile(\"\u003d\");","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" String gitConfig \u003d getGitGlobalConfig();","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"asdfghjkxd"},"content":" return Arrays.stream(StringsUtil.NEWLINE.split(gitConfig))","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"asdfghjkxd"},"content":" .map(equals::split)","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" .filter(line -\u003e line[0].equals(FILTER_LFS_SMUDGE_KEY) || line[0].equals((FILTER_LFS_PROCESS_KEY)))","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" } catch (RuntimeException re) {","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, \"Could not get global git lfs config\", re);","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" return new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" * Set the global git lfs configuration values. Does not run command if the configuration","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" * values are already set to skip.","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" * @param lfsConfigs a list of string arrays where 0-index is key and 1-index is value.","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" public static void setGlobalGitLfsConfig(List\u003cString[]\u003e lfsConfigs) {","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" String command \u003d setGitLfsConfigCommand(lfsConfigs);","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" if (!command.equals(\"\")) {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" CommandRunner.runCommand(Paths.get(\".\"), command);","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" * Delete the global git lfs configuration values.","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" public static void deleteGlobalGitLfsConfig() {","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" String command \u003d String.format(\"git config --global --unset %s \u0026\u0026 git config --global --unset %s\",","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" FILTER_LFS_SMUDGE_KEY, FILTER_LFS_PROCESS_KEY);","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" CommandRunner.runCommand(Paths.get(\".\"), command);","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" private static String setGitLfsConfigCommand(List\u003cString[]\u003e lfsConfigs) {","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" List\u003cString\u003e commands \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" for (String[] config : lfsConfigs) {","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" String key \u003d config[0];","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" String value \u003d config.length \u003e 1 ? config[1] : \"\";","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" commands.add(String.format(\"git config --global %s \\\"%s\\\"\", key, value));","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" return String.join(\" \u0026\u0026 \", commands);","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" private static String getGitGlobalConfig() {","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" return CommandRunner.runCommand(Paths.get(\".\"), LIST_GLOBAL_CONFIG_COMMAND);","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":6,"-":86}},{"path":"src/main/java/reposense/git/GitDiff.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.system.CommandRunner.runCommand;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" * Contains git diff related functionalities.","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" * Git diff is responsible for obtaining the changes between commits, commit and working tree, etc.","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"public class GitDiff {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" private static final String EMPTY_TREE_HASH \u003d \"4b825dc642cb6eb9a060e54bf8d69288fbee4904\";","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" private static final String CHECKED_OUT_COMMIT_REFERENCE \u003d \"HEAD\";","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" * Returns the git diff result of the current commit compared to {@code lastCommitHash}, without any context.","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" * The {@link Path} given by {@code root} is the working directory.","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" public static String diffCommit(String root, String lastCommitHash) {","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" return runCommand(rootPath, \"git diff -U0 --ignore-submodules\u003dall \" + lastCommitHash);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" * Returns a list of committed files with the corresponding number of lines added and deleted in the repo","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" * {@code repoRoot}.","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" public static List\u003cString\u003e getModifiedFilesList(Path repoRoot) {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" String diffCommand \u003d String.format(\"git diff --ignore-submodules\u003dall --numstat %s %s\",","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" EMPTY_TREE_HASH, CHECKED_OUT_COMMIT_REFERENCE);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" String diffResult \u003d runCommand(repoRoot.toAbsolutePath(), diffCommand);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":" return Arrays.asList(StringsUtil.NEWLINE.split(diffResult));","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" * Returns the git diff result of {@code currentCommitHash} compared to {@code baseCommitHash}.","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" public static String diffCommits(String root, String baseCommitHash, String currentCommitHash) {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" return runCommand(rootPath, String.format(\"git diff %s...%s\", baseCommitHash, currentCommitHash));","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":4,"-":44}},{"path":"src/main/java/reposense/git/GitLog.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.system.CommandRunner.runCommand;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import static reposense.util.StringsUtil.addQuotesForFilePath;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Contains git log related functionalities.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" * Git log is responsible to obtain the commit logs and the authors\u0027 info.","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"public class GitLog {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" public static final String COMMIT_INFO_DELIMITER \u003d \"(?m)^\u003e\u003e\u003eCOMMIT INFO\u003c\u003c\u003c\\\\n\";","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private static final String PRETTY_FORMAT_STRING \u003d","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" \"\\\"\u003e\u003e\u003eCOMMIT INFO\u003c\u003c\u003c%n%H|%n|%p|%n|%aN|%n|%aE|%n|%cI|%n|%s|%n|%w(0,4,4)%b%w(0,0,0)|%n|%D|\\\"\";","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final String DEFAULT_EMAIL_IF_MISSING \u003d \"\";","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" * Returns the git commit log info of {@code author}, in the repository specified in {@code config}.","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" public static String get(RepoConfiguration config, Author author) {","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(config.getRepoRoot());","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" String command \u003d \"git log --full-history -i --extended-regexp \";","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToGitDateRangeArgs(config.getSinceDate(), config.getUntilDate(), config.getZoneId());","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" command +\u003d \" --pretty\u003dformat:\" + PRETTY_FORMAT_STRING + \" --shortstat\";","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToFilterAuthorArgs(author);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToGitFormatsArgs(config.getFileTypeManager().getFormats());","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToGitExcludeGlobArgs(rootPath.toFile(), author.getIgnoreGlobList());","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" return runCommand(rootPath, command);","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" * Returns the git commit log info of {@code author}, with the files changed, in the repository specified in","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" * {@code config}. Merge commits are included.","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" public static String getWithFiles(RepoConfiguration config, Author author) {","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(config.getRepoRoot());","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" String command \u003d \"git log --full-history -i --extended-regexp \";","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToGitDateRangeArgs(config.getSinceDate(), config.getUntilDate(), config.getZoneId());","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" command +\u003d \" --pretty\u003dformat:\" + PRETTY_FORMAT_STRING + \" --numstat --shortstat\";","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToFilterAuthorArgs(author);","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToGitFormatsArgs(config.getFileTypeManager().getFormats());","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToGitExcludeGlobArgs(rootPath.toFile(), author.getIgnoreGlobList());","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" return runCommand(rootPath, command);","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" * Returns the authors who modified the file at {@code filePath}, in the repository specified in {@code config}.","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" * The output is a list of length-2 arrays containing the author\u0027s name and email.","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" public static List\u003cString[]\u003e getFileAuthors(RepoConfiguration config, String filePath) {","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(config.getRepoRoot());","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" String command \u003d \"git log --pretty\u003dformat:\\\"%an\\t%ae\\\" \";","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToGitDateRangeArgs(config.getSinceDate(), config.getUntilDate(), config.getZoneId());","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" command +\u003d \" \" + addQuotesForFilePath(filePath);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" String result \u003d runCommand(rootPath, command);","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"asdfghjkxd"},"content":" return Arrays.stream(StringsUtil.NEWLINE.split(result))","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"asdfghjkxd"},"content":" .map(StringsUtil.TAB::split)","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" .map(authorAndEmailArray -\u003e authorAndEmailArray.length \u003d\u003d 1","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" ? new String[] {authorAndEmailArray[0], DEFAULT_EMAIL_IF_MISSING}","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" : authorAndEmailArray)","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" * Returns the git log result containing the parents of {@code commitHash}.","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" public static String getParentCommits(String root, String commitHash) {","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" String command \u003d \"git log --pretty\u003d%P -1 \";","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" command +\u003d commitHash;","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" return runCommand(rootPath, command).trim();","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":3,"-":89}},{"path":"src/main/java/reposense/git/GitRemote.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.util.HashMap;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.system.CommandRunner;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" * Contains git remote related functionality.","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Git remote is responsible for getting remote repository information.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"public class GitRemote {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" public static final String DEFAULT_FETCH_REMOTE \u003d \"origin(fetch)\";","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" public static final String DEFAULT_PUSH_REMOTE \u003d \"origin(push)\";","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(GitRemote.class);","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" * Extracts remote repository information at {@code repoRoot}.","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" * @return Map of keys of the form REMOTE_NAME(fetch) or REMOTE_NAME(push) to their corresponding remote URLs.","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" public static Map\u003cString, String\u003e getRemotes(String repoRoot) {","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":" Pattern anyTabPattern \u003d Pattern.compile(\"[ \\\\t]+\");","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" Map\u003cString, String\u003e remotes \u003d new HashMap\u003c\u003e();","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" String result;","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" result \u003d CommandRunner.runCommand(Paths.get(repoRoot), \"git remote -v\");","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" } catch (RuntimeException re) {","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" logger.warning(String.format(\"Unable to run git remote command in directory: %s\", repoRoot));","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" return remotes;","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"asdfghjkxd"},"content":" Arrays.stream(StringsUtil.NEWLINE.split(result))","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":" .map(anyTabPattern::split)","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" .forEach(l -\u003e {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" if (l.length \u003d\u003d 3) {","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" // l[0]: remote name","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" // l[1]: remote URL","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" // l[2]: \u0027(fetch)\u0027 | \u0027(push)\u0027","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" remotes.put(l[0] + l[2], l[1]);","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" return remotes;","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" * Finds an available fetch remote location in a given {@code remoteMap}, checking first for the default fetch","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" * remote (origin).","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" * @return an {@code Optional} of an available remote location.","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" public static Optional\u003cString\u003e getAvailableRemoteLocation(Map\u003cString, String\u003e remoteMap) {","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" if (remoteMap.size() \u003d\u003d 0) {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" return Optional.empty();","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" String remoteLocation \u003d remoteMap.containsKey(DEFAULT_FETCH_REMOTE)","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" // Get default fetch remote if possible","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" ? remoteMap.get(DEFAULT_FETCH_REMOTE)","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" // Get any available remote otherwise","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" : remoteMap.values().iterator().next();","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" return Optional.of(remoteLocation);","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":5,"-":70}},{"path":"src/main/java/reposense/git/GitRevList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.system.CommandRunner.runCommand;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.time.ZonedDateTime;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Contains git rev list related functionalities.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" * Git rev list is responsible for showing commit objects in reverse chronological order.","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"public class GitRevList {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" private static final String REVISION_PATH_SEPARATOR \u003d \" -- \";","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" * Returns the latest commit hash at {@code branchName} before {@code date}.","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" * Returns an empty {@code String} if {@code date} is null, or there is no such commit.","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" * @param root The name of the working directory.","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" * @param branchName The name of the branch to find the commit hash in.","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" * @param date The cut-off date before which the commit hash must be found.","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" * @param zoneId The timezone of the date.","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" public static String getCommitHashUntilDate(String root, String branchName, LocalDateTime date, ZoneId zoneId) {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" if (date \u003d\u003d null) {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" return \"\";","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" String revListCommand \u003d \"git rev-list -1 --until\u003d\"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" + GitUtil.GIT_LOG_UNTIL_DATE_FORMAT.format(ZonedDateTime.of(date, zoneId))","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" + \" \" + branchName + REVISION_PATH_SEPARATOR;","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" return runCommand(rootPath, revListCommand);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" * Returns a list of commit hashes at the branch given by {@code branchName}, separated by newlines,","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" * that are within the range of {@code startHash} and {@code endHash}.","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" * The {@code root} is the name of the working directory.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" * Both the {@code startHash} and {@code endHash} are guaranteed to be in the list.","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" public static String getCommitHashInRange(String root, String branchName, String startHash, String endHash) {","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" if (startHash \u003d\u003d null \u0026\u0026 endHash \u003d\u003d null) {","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" return \"\";","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" } else if (startHash \u003d\u003d null) {","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" return endHash;","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" } else if (endHash \u003d\u003d null) {","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" return startHash;","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" String fromStartHash \u003d getAllCommitHashSince(root, branchName, startHash);","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" String fromEndHash \u003d getAllCommitHashSince(root, branchName, endHash);","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" StringBuilder output \u003d new StringBuilder();","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" // If invalid hashes were given, do not use the results obtained from rev-list","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" if (fromStartHash.equals(\"\") \u0026\u0026 fromEndHash.equals(\"\")) {","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" return \"\";","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" } else if (fromStartHash.equals(\"\")) {","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" return endHash;","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" } else if (fromEndHash.equals(\"\")) {","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" return startHash;","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" // Perform a set difference in the list of commits to get the commits within the given range, since both lists","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" // will have the list of commits starting from the given commit to HEAD, hence this removes the overlap part.","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" // Also ensure that both hashes are present in the final output","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" if (fromStartHash.length() \u003e fromEndHash.length()) {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" output.append(endHash);","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" output.append(fromStartHash.substring(fromEndHash.length()));","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" output.append(startHash);","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" output.append(fromEndHash.substring(fromStartHash.length()));","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" return output.toString();","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" * Returns a list of commit hashes at the branch given by {@code branchName} separated by newlines that exist","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" * since {@code hash} until HEAD.","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" * The {@code root} is the name of the working directory.","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" private static String getAllCommitHashSince(String root, String branchName, String hash) {","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" String revListCommand \u003d \"git rev-list \" + hash + \"..HEAD \" + branchName + REVISION_PATH_SEPARATOR;","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" return runCommand(rootPath, revListCommand) + hash;","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" } catch (RuntimeException rte) {","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" // An invalid commit hash was provided","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" return \"\";","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" * Returns a list of commit hashes for the root commits in the tree, with the {@link Path} given by {@code root}","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" * as working directory.","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" public static List\u003cString\u003e getRootCommits(String root) {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" String revListCommand \u003d \"git rev-list --max-parents\u003d0 HEAD\";","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" String output \u003d runCommand(rootPath, revListCommand);","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"asdfghjkxd"},"content":" return Arrays.asList(StringsUtil.NEWLINE.split(output));","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" * Returns true if the repository is empty, with the {@link Path} given by {@code root} as working directory.","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" public static boolean checkIsEmptyRepo(String root) {","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" String revListCommand \u003d \"git rev-list -n 1 --all\";","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" String output \u003d runCommand(rootPath, revListCommand);","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" return output \u003d\u003d null || output.trim().isEmpty();","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":4,"-":120}},{"path":"src/main/java/reposense/git/GitShortlog.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.system.CommandRunner.runCommand;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" * Contains git shortlog related functionalities.","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" * Git shortlog provides a summary of git log output.","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"public class GitShortlog {","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" * Extracts all the author identities from the repository and date range given in {@code config},","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" * with the timezone taken into account.","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" public static List\u003cAuthor\u003e getAuthors(RepoConfiguration config) {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" String summary \u003d getShortlogSummary(","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" config.getRepoRoot(), config.getSinceDate(), config.getUntilDate(), config.getZoneId());","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" if (summary.isEmpty()) {","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" return Collections.emptyList();","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":" String[] lines \u003d StringsUtil.NEWLINE.split(summary);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" return Arrays.stream(lines)","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":" .map(line -\u003e new Author(StringsUtil.TAB.split(line)[1]))","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" * Obtains summarized version of git log from the repository at {@code root} for the date range","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" * given by {@code sinceDate} and {@code untilDate}, with {@code zoneId} taken into account for both dates.","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" private static String getShortlogSummary(String root, LocalDateTime sinceDate, LocalDateTime untilDate,","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" ZoneId zoneId) {","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" String command \u003d \"git log --pretty\u003dshort\";","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToGitDateRangeArgs(sinceDate, untilDate, zoneId);","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" command +\u003d \" | git shortlog --summary\";","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" return runCommand(rootPath, command);","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":3,"-":52}},{"path":"src/main/java/reposense/git/GitShow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.system.CommandRunner.runCommand;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.text.ParseException;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.time.format.DateTimeFormatter;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.git.exception.CommitNotFoundException;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import reposense.model.CommitHash;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" * Contains git show related functionalities.","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" * Git show shows various types of objects.","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"public class GitShow {","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(GitShow.class);","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" * Returns expanded form of the {@link CommitHash} associated with the {@code shortCommitHash}, with","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" * the {@link Path} given by {@code root} as the working directory.","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" * @throws CommitNotFoundException if there is no commit associated with {@code shortCommitHash}.","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" public static CommitHash getExpandedCommitHash(String root, String shortCommitHash) throws CommitNotFoundException {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" String showCommand \u003d \"git show -s --format\u003d%H \" + shortCommitHash;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" String output \u003d runCommand(rootPath, showCommand);","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"asdfghjkxd"},"content":" List\u003cCommitHash\u003e commitHashes \u003d Arrays.stream(StringsUtil.NEWLINE.split(output))","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .map(CommitHash::new).collect(Collectors.toList());","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" if (commitHashes.size() \u003e 1) {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" logger.warning(String.format(\"%s can be expanded to %d different commits, \"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" + \"assuming %s refers to commit hash %s\",","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" shortCommitHash, commitHashes.size(), shortCommitHash, commitHashes.get(0)));","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" return commitHashes.get(0);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" } catch (RuntimeException re) {","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" throw new CommitNotFoundException(\"Commit not found: \" + shortCommitHash);","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" * Returns {@link LocalDateTime} of the commit associated with commit hash, with {@link Path} given by {@code root}","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" * as the working directory.","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" * @throws CommitNotFoundException if no commit exists for the given {@code commitHash}.","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" * @throws ParseException if the date string for the given {@code commitHash} could not be parsed into","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" * a {@link LocalDateTime} object.","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" public static LocalDateTime getCommitDate(String root, String commitHash)","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" throws CommitNotFoundException, ParseException {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" String showCommand \u003d \"git show -s --format\u003d%ci \" + commitHash;","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" String output \u003d runCommand(rootPath, showCommand);","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" DateTimeFormatter format \u003d DateTimeFormatter.ofPattern(\"yyyy-MM-dd HH:mm:ss Z\u0027\\n\u0027\");","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" return LocalDateTime.parse(output, format);","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" } catch (RuntimeException re) {","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" throw new CommitNotFoundException(\"Commit not found: \" + commitHash);","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" * Returns {@link LocalDateTime} of the earliest commit out of the input list of commits in {@code commitHashes},","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" * with the {@code root} string denoting the working directory.","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" * @throws CommitNotFoundException if no commit exists for a given hash in {@code commitHashes}","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" * or if no date string was successfully parsed to a {@link LocalDateTime} for earliest date.","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" public static LocalDateTime getEarliestCommitDate(String root, List\u003cString\u003e commitHashes)","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" throws CommitNotFoundException {","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" LocalDateTime earliest \u003d null;","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" for (String hash : commitHashes) {","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" LocalDateTime date \u003d getCommitDate(root, hash);","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" if (earliest \u003d\u003d null || date.compareTo(earliest) \u003c 0) {","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" earliest \u003d date;","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" } catch (CommitNotFoundException e) {","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" logger.warning(\"Commit not found: \" + hash);","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" } catch (ParseException pe) {","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" logger.warning(\"Could not parse date for commit: \" + hash);","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" if (earliest \u003d\u003d null) {","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" throw new CommitNotFoundException(\"Date could not be retrieved for all input commits\");","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" return earliest;","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":101}},{"path":"src/main/java/reposense/model/Author.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.FileSystems;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.PathMatcher;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" * Represents a Git Author.","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"public class Author {","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" public static final String NAME_NO_AUTHOR_WITH_COMMITS_FOUND \u003d","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" \"NO AUTHOR WITH COMMITS FOUND WITHIN THIS PERIOD OF TIME\";","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" private static final String UNKNOWN_AUTHOR_GIT_ID \u003d \"-\";","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" private static final String STANDARD_GITHUB_EMAIL_DOMAIN \u003d \"@users.noreply.github.com\";","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" private static final String STANDARD_GITLAB_EMAIL_DOMAIN \u003d \"@users.noreply.gitlab.com\";","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" private static final String MESSAGE_UNCOMMON_EMAIL_PATTERN \u003d \"The provided email, %s, uses uncommon pattern.\";","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" private static final String MESSAGE_UNCOMMON_GLOB_PATTERN \u003d \"The provided ignore glob, %s, uses uncommon pattern.\";","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private static final String COMMON_EMAIL_REGEX \u003d","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" \"^([a-zA-Z0-9_\\\\-\\\\.\\\\+]+)@([a-zA-Z0-9_\\\\-\\\\.]+)\\\\.([a-zA-Z]{2,5})$\";","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private static final String COMMON_GLOB_REGEX \u003d \"^[-a-zA-Z0-9 _/\\\\\\\\*!{}\\\\[\\\\]!(),:.]*$\";","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" public static final Author UNKNOWN_AUTHOR \u003d new Author(UNKNOWN_AUTHOR_GIT_ID);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private final String gitId;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private transient List\u003cString\u003e emails;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private transient String displayName;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" private transient List\u003cString\u003e authorAliases;","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private transient List\u003cString\u003e ignoreGlobList;","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private transient PathMatcher ignoreGlobMatcher;","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" public Author(String gitId) {","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" this.gitId \u003d gitId;","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" this.emails \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" this.displayName \u003d gitId;","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" this.authorAliases \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" this.ignoreGlobList \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" addStandardGitHostEmails(this.emails);","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" updateIgnoreGlobMatcher();","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" public Author(StandaloneAuthor sa) {","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" String gitId \u003d sa.getGitId();","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" List\u003cString\u003e emails \u003d new ArrayList\u003c\u003e(sa.getEmails());","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" String displayName \u003d !sa.getDisplayName().isEmpty() ? sa.getDisplayName() : sa.getGitId();","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" List\u003cString\u003e authorAliases \u003d sa.getAuthorNames();","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" List\u003cString\u003e ignoreGlobList \u003d sa.getIgnoreGlobList();","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" this.gitId \u003d gitId;","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" this.displayName \u003d displayName;","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" this.authorAliases \u003d authorAliases;","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" setEmails(emails);","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" setIgnoreGlobList(ignoreGlobList);","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" public Author(Author another) {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" this.gitId \u003d another.gitId;","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" this.emails \u003d another.emails;","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" this.displayName \u003d another.gitId;","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" this.authorAliases \u003d another.authorAliases;","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" this.ignoreGlobList \u003d another.ignoreGlobList;","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" this.ignoreGlobMatcher \u003d another.ignoreGlobMatcher;","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" * Checks that all the strings in the {@code emails} only contains commonly used email patterns.","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" * @throws IllegalArgumentException if any of the values do not meet the criteria.","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" private static void validateEmails(List\u003cString\u003e emails) throws IllegalArgumentException {","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"asdfghjkxd"},"content":" Pattern emailPattern \u003d Pattern.compile(COMMON_EMAIL_REGEX);","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" for (String email : emails) {","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"asdfghjkxd"},"content":" if (!emailPattern.matcher(email).matches()) {","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" throw new IllegalArgumentException(String.format(MESSAGE_UNCOMMON_EMAIL_PATTERN, email));","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" * Checks that all the strings in the {@code ignoreGlobList} only contains commonly used glob patterns.","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" * @throws IllegalArgumentException if any of the values do not meet the criteria.","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" private static void validateIgnoreGlobs(List\u003cString\u003e ignoreGlobList) throws IllegalArgumentException {","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"asdfghjkxd"},"content":" Pattern globPattern \u003d Pattern.compile(COMMON_GLOB_REGEX);","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" for (String glob : ignoreGlobList) {","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"asdfghjkxd"},"content":" if (!globPattern.matcher(glob).matches()) {","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" throw new IllegalArgumentException(String.format(MESSAGE_UNCOMMON_GLOB_PATTERN, glob));","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" public String getGitId() {","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" return gitId;","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" public List\u003cString\u003e getEmails() {","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" return emails;","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" public void setEmails(List\u003cString\u003e emails) {","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" validateEmails(emails);","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" this.emails \u003d new ArrayList\u003c\u003e(emails);","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" addStandardGitHostEmails(this.emails);","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" public String getDisplayName() {","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" return displayName;","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" public void setDisplayName(String displayName) {","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" this.displayName \u003d displayName;","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" public List\u003cString\u003e getAuthorAliases() {","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" return authorAliases;","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" public void setAuthorAliases(List\u003cString\u003e authorAliases) {","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" this.authorAliases \u003d authorAliases;","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" public List\u003cString\u003e getIgnoreGlobList() {","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" return ignoreGlobList;","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" public void setIgnoreGlobList(List\u003cString\u003e ignoreGlobList) {","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" validateIgnoreGlobs(ignoreGlobList);","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" this.ignoreGlobList \u003d new ArrayList\u003c\u003e(ignoreGlobList);","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" updateIgnoreGlobMatcher();","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" * Validates and adds {@code ignoreGlobList} into the {@link Author} class instance variable without duplicates","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" * and updates the ignore glob matcher.","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" public void importIgnoreGlobList(List\u003cString\u003e ignoreGlobList) {","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" validateIgnoreGlobs(ignoreGlobList);","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" ignoreGlobList.forEach(ignoreGlob -\u003e {","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" if (!this.ignoreGlobList.contains(ignoreGlob)) {","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" this.ignoreGlobList.add(ignoreGlob);","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" updateIgnoreGlobMatcher();","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" * Returns true if this author is ignoring the {@code filePath} based on its ignore glob matcher.","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" public boolean isIgnoringFile(Path filePath) {","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" return ignoreGlobMatcher.matches(filePath);","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" public boolean equals(Object other) {","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" // short circuit if same object","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" if (this \u003d\u003d other) {","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" // instanceof handles null","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" if (!(other instanceof Author)) {","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" Author otherAuthor \u003d (Author) other;","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" return this.gitId.equalsIgnoreCase(otherAuthor.gitId);","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" public int hashCode() {","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" return gitId !\u003d null ? gitId.toLowerCase().hashCode() : 0;","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" public String toString() {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" return gitId;","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" * Updates the {@link PathMatcher} to the new ignore glob list set.","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" * Called after a new ignore glob list is set.","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" private void updateIgnoreGlobMatcher() {","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" String globString \u003d \"glob:{\" + String.join(\",\", ignoreGlobList) + \"}\";","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" ignoreGlobMatcher \u003d FileSystems.getDefault().getPathMatcher(globString);","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" * Adds the standard github and gitlab emails to {@code emails} if not present.","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" private void addStandardGitHostEmails(List\u003cString\u003e emails) {","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" String standardGitHubEmail \u003d getGitId() + STANDARD_GITHUB_EMAIL_DOMAIN;","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" String standardGitLabEmail \u003d getGitId() + STANDARD_GITLAB_EMAIL_DOMAIN;","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" if (!emails.contains(standardGitHubEmail)) {","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" emails.add(standardGitHubEmail);","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" if (!emails.contains(standardGitLabEmail)) {","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" emails.add(standardGitLabEmail);","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":"","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":7,"-":205}},{"path":"src/main/java/reposense/model/BlurbMap.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.HashMap;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"import com.fasterxml.jackson.annotation.JsonProperty;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"/**","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":" * Represents the mapping between the repo URL to the associated blurb.","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"public class BlurbMap {","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":" @JsonProperty(\"urlBlurbMap\")","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":" private final Map\u003cString, String\u003e urlBlurbMap;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":" public BlurbMap() {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":" this.urlBlurbMap \u003d new HashMap\u003c\u003e();","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"asdfghjkxd"},"content":" public Map\u003cString, String\u003e getAllMappings() {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":" return new HashMap\u003c\u003e(this.urlBlurbMap);","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":" * Adds a key-value record into the {@code BlurbMap}.","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":" * @param key Key value.","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":" * @param value Blurb value.","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":" public void withRecord(String key, String value) {","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":" this.urlBlurbMap.put(key, value);","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":" @Override","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":" public boolean equals(Object obj) {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":" if (obj \u003d\u003d this) {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":" return true;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"asdfghjkxd"},"content":" if (obj instanceof BlurbMap) {","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap bm \u003d (BlurbMap) obj;","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"asdfghjkxd"},"content":" return bm.urlBlurbMap.equals(this.urlBlurbMap);","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":" return false;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"asdfghjkxd"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":46}},{"path":"src/main/java/reposense/model/CliArguments.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.Objects;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.parser.ArgsParser;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.parser.AuthorConfigCsvParser;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.parser.GroupConfigCsvParser;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import reposense.parser.RepoConfigCsvParser;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.parser.ReportConfigJsonParser;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Represents command line arguments user supplied when running the program.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"public class CliArguments {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" private static final Path EMPTY_PATH \u003d Paths.get(\"\");","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":" private Path outputFilePath;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":" private Path assetsFilePath;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":" private LocalDateTime sinceDate;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":" private LocalDateTime untilDate;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":" private boolean isSinceDateProvided;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":" private boolean isUntilDateProvided;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":" private List\u003cFileType\u003e formats;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":" private boolean isLastModifiedDateIncluded;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":" private boolean isShallowCloningPerformed;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":" private boolean isAutomaticallyLaunching;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":" private boolean isStandaloneConfigIgnored;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":" private boolean isFileSizeLimitIgnored;","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":" private int numCloningThreads;","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":" private int numAnalysisThreads;","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":" private ZoneId zoneId;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":" private boolean isFindingPreviousAuthorsPerformed;","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private boolean isAuthorshipAnalyzed;","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" private double originalityThreshold;","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private boolean isTestMode \u003d ArgsParser.DEFAULT_IS_TEST_MODE;","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" private boolean isFreshClonePerformed \u003d ArgsParser.DEFAULT_SHOULD_FRESH_CLONE;","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" private List\u003cString\u003e locations;","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" private boolean isViewModeOnly;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" private Path reportDirectoryPath;","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" private Path configFolderPath;","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" private Path repoConfigFilePath;","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" private Path authorConfigFilePath;","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" private Path groupConfigFilePath;","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" private Path reportConfigFilePath;","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" private ReportConfiguration reportConfiguration;","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"asdfghjkxd"},"content":" private BlurbMap blurbMap;","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"asdfghjkxd"},"content":" * Constructs a {@code CliArguments} object without any parameters.","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"asdfghjkxd"},"content":" private CliArguments() {}","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" public ZoneId getZoneId() {","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" return zoneId;","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" public Path getOutputFilePath() {","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" return outputFilePath;","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" public Path getAssetsFilePath() {","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" return assetsFilePath;","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" public LocalDateTime getSinceDate() {","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" return sinceDate;","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" public LocalDateTime getUntilDate() {","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" return untilDate;","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" public boolean isSinceDateProvided() {","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" return isSinceDateProvided;","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" public boolean isUntilDateProvided() {","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" return isUntilDateProvided;","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" public boolean isLastModifiedDateIncluded() {","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" return isLastModifiedDateIncluded;","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" public boolean isShallowCloningPerformed() {","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" return isShallowCloningPerformed;","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" public List\u003cFileType\u003e getFormats() {","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" return formats;","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" public boolean isAutomaticallyLaunching() {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" return isAutomaticallyLaunching;","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" public boolean isStandaloneConfigIgnored() {","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" return isStandaloneConfigIgnored;","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" public boolean isFileSizeLimitIgnored() {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" return isFileSizeLimitIgnored;","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" public int getNumCloningThreads() {","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" return numCloningThreads;","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" public int getNumAnalysisThreads() {","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" return numAnalysisThreads;","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" public boolean isFindingPreviousAuthorsPerformed() {","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" return isFindingPreviousAuthorsPerformed;","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" public boolean isTestMode() {","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" return isTestMode;","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" public boolean isFreshClonePerformed() {","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" return isFreshClonePerformed;","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" public List\u003cString\u003e getLocations() {","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" return locations;","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" public Path getReportDirectoryPath() {","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" return reportDirectoryPath;","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" public Path getConfigFolderPath() {","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" return configFolderPath;","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" public Path getRepoConfigFilePath() {","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" return repoConfigFilePath;","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" public Path getAuthorConfigFilePath() {","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" return authorConfigFilePath;","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" public Path getGroupConfigFilePath() {","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" return groupConfigFilePath;","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" public Path getReportConfigFilePath() {","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" return reportConfigFilePath;","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" public ReportConfiguration getReportConfiguration() {","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" return reportConfiguration;","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"asdfghjkxd"},"content":" public BlurbMap getBlurbMap() {","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"asdfghjkxd"},"content":" return blurbMap;","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" public boolean isViewModeOnly() {","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" return isViewModeOnly;","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" public boolean isAuthorshipAnalyzed() {","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" return isAuthorshipAnalyzed;","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" public double getOriginalityThreshold() {","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" return originalityThreshold;","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" public boolean equals(Object other) {","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" // short circuit if same object","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" if (this \u003d\u003d other) {","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" // instanceof handles null","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" if (!(other instanceof CliArguments)) {","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" CliArguments otherCliArguments \u003d (CliArguments) other;","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" return Objects.equals(this.outputFilePath, otherCliArguments.outputFilePath)","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.sinceDate, otherCliArguments.sinceDate)","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.untilDate, otherCliArguments.untilDate)","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isSinceDateProvided \u003d\u003d otherCliArguments.isSinceDateProvided","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isUntilDateProvided \u003d\u003d otherCliArguments.isUntilDateProvided","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.formats, otherCliArguments.formats)","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isLastModifiedDateIncluded \u003d\u003d otherCliArguments.isLastModifiedDateIncluded","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isShallowCloningPerformed \u003d\u003d otherCliArguments.isShallowCloningPerformed","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isAutomaticallyLaunching \u003d\u003d otherCliArguments.isAutomaticallyLaunching","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isStandaloneConfigIgnored \u003d\u003d otherCliArguments.isStandaloneConfigIgnored","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" \u0026\u0026 this.numCloningThreads \u003d\u003d otherCliArguments.numCloningThreads","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" \u0026\u0026 this.numAnalysisThreads \u003d\u003d otherCliArguments.numAnalysisThreads","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.zoneId, otherCliArguments.zoneId)","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isFindingPreviousAuthorsPerformed \u003d\u003d otherCliArguments.isFindingPreviousAuthorsPerformed","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isFileSizeLimitIgnored \u003d\u003d otherCliArguments.isFileSizeLimitIgnored","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isTestMode \u003d\u003d otherCliArguments.isTestMode","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isFreshClonePerformed \u003d\u003d otherCliArguments.isFreshClonePerformed","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.locations, otherCliArguments.locations)","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isViewModeOnly \u003d\u003d otherCliArguments.isViewModeOnly","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.reportDirectoryPath, otherCliArguments.reportDirectoryPath)","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.repoConfigFilePath, otherCliArguments.repoConfigFilePath)","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.authorConfigFilePath, otherCliArguments.authorConfigFilePath)","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.groupConfigFilePath, otherCliArguments.groupConfigFilePath)","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.reportConfigFilePath, otherCliArguments.reportConfigFilePath)","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"asdfghjkxd"},"content":" \u0026\u0026 Objects.equals(this.blurbMap, otherCliArguments.blurbMap)","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isAuthorshipAnalyzed \u003d\u003d otherCliArguments.isAuthorshipAnalyzed","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.originalityThreshold, otherCliArguments.originalityThreshold);","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" * Builder used to build CliArguments.","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" public static final class Builder {","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"asdfghjkxd"},"content":" private CliArguments cliArguments;","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" public Builder() {","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments \u003d new CliArguments();","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" * Adds the {@code outputFilePath} to CliArguments.","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" * @param outputFilePath The output file path.","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" public Builder outputFilePath(Path outputFilePath) {","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.outputFilePath \u003d outputFilePath;","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" * Adds the {@code assetsFilePath} to CliArguments.","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" * @param assetsFilePath The assets file path.","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" public Builder assetsFilePath(Path assetsFilePath) {","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.assetsFilePath \u003d assetsFilePath;","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" * Adds the {@code sinceDate} to CliArguments.","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" * @param sinceDate The since date.","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" public Builder sinceDate(LocalDateTime sinceDate) {","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.sinceDate \u003d sinceDate;","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" * Adds the {@code untilDate} to CliArguments.","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" * @param untilDate The until date.","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" public Builder untilDate(LocalDateTime untilDate) {","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.untilDate \u003d untilDate;","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" * Adds the {@code isSinceDateProvided} to CliArguments.","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" * @param isSinceDateProvided Is the since date provided.","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" public Builder isSinceDateProvided(boolean isSinceDateProvided) {","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isSinceDateProvided \u003d isSinceDateProvided;","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" * Adds the {@code isUntilDateProvided} to CliArguments.","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" * @param isUntilDateProvided Is the until date provided.","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" public Builder isUntilDateProvided(boolean isUntilDateProvided) {","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isUntilDateProvided \u003d isUntilDateProvided;","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" * Adds the {@code formats} to CliArguments.","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" * @param formats The list of {@link FileType}.","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" public Builder formats(List\u003cFileType\u003e formats) {","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.formats \u003d formats;","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" * Adds the {@code isLastModifiedDateIncluded} to CliArguments.","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" * @param isLastModifiedDateIncluded Is the last modified date included.","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":" public Builder isLastModifiedDateIncluded(boolean isLastModifiedDateIncluded) {","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isLastModifiedDateIncluded \u003d isLastModifiedDateIncluded;","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" * Adds the {@code isShallowCloningPerformed} to CliArguments.","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":" * @param isShallowCloningPerformed Is shallow cloning performed.","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":" public Builder isShallowCloningPerformed(boolean isShallowCloningPerformed) {","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isShallowCloningPerformed \u003d isShallowCloningPerformed;","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":" * Adds the {@code isAutomaticallyLaunching} to CliArguments.","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" * @param isAutomaticallyLaunching Is automatically launching.","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":" public Builder isAutomaticallyLaunching(boolean isAutomaticallyLaunching) {","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isAutomaticallyLaunching \u003d isAutomaticallyLaunching;","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" * Adds the {@code isStandaloneConfigIgnored} to CliArguments.","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" * @param isStandaloneConfigIgnored Is standalone config ignored.","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" public Builder isStandaloneConfigIgnored(boolean isStandaloneConfigIgnored) {","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isStandaloneConfigIgnored \u003d isStandaloneConfigIgnored;","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" * Adds the {@code isFileSizeLimitIgnored} to CliArguments.","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":" * @param isFileSizeLimitIgnored Is file size limit ignored.","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":" public Builder isFileSizeLimitIgnored(boolean isFileSizeLimitIgnored) {","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isFileSizeLimitIgnored \u003d isFileSizeLimitIgnored;","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" * Adds the {@code numCloningThreads} to CliArguments.","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":" * @param numCloningThreads The number of cloning threads.","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":" public Builder numCloningThreads(int numCloningThreads) {","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.numCloningThreads \u003d numCloningThreads;","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":" * Adds the {@code numAnalysisThreads} to CliArguments.","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"-"},"content":" * @param numAnalysisThreads The number of analysis threads.","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" public Builder numAnalysisThreads(int numAnalysisThreads) {","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.numAnalysisThreads \u003d numAnalysisThreads;","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":" * Adds the {@code zoneId} to CliArguments.","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":" * @param zoneId The timezone Id.","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":" public Builder zoneId(ZoneId zoneId) {","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.zoneId \u003d zoneId;","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":" * Adds the {@code isFindingPreviousAuthorsPerformed} to CliArguments.","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"-"},"content":" * @param isFindingPreviousAuthorsPerformed Is finding previous authors performed.","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"-"},"content":" public Builder isFindingPreviousAuthorsPerformed(boolean isFindingPreviousAuthorsPerformed) {","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isFindingPreviousAuthorsPerformed \u003d isFindingPreviousAuthorsPerformed;","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"-"},"content":" * Adds the {@code isTestMode} to CliArguments.","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"-"},"content":" * @param isTestMode Is test mode.","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"-"},"content":" public Builder isTestMode(boolean isTestMode) {","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isTestMode \u003d isTestMode;","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"-"},"content":" * Adds the {@code isFreshClonePerformed} to CliArguments.","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"-"},"content":" * @param isFreshClonePerformed Is fresh clone performed.","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"-"},"content":" public Builder isFreshClonePerformed(boolean isFreshClonePerformed) {","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isFreshClonePerformed \u003d isFreshClonePerformed;","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"-"},"content":" * Adds the {@code locations} to CliArguments.","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"-"},"content":" * @param locations The list of locations.","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"-"},"content":" public Builder locations(List\u003cString\u003e locations) {","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.locations \u003d locations;","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"-"},"content":" * Adds the {@code isViewModeOnly} to CliArguments.","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"-"},"content":" * @param isViewModeOnly Is view mode only.","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"-"},"content":" public Builder isViewModeOnly(boolean isViewModeOnly) {","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isViewModeOnly \u003d isViewModeOnly;","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"-"},"content":" * Adds the {@code reportDirectoryPath} to CliArguments.","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"-"},"content":" * @param reportDirectoryPath The report directory path.","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"-"},"content":" public Builder reportDirectoryPath(Path reportDirectoryPath) {","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.reportDirectoryPath \u003d reportDirectoryPath;","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"-"},"content":" * Adds the {@code configFolderPath} to CliArguments. {@code configFolderPath} is utilised to configure the","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"-"},"content":" * {@code repoConfigFilePath}, {@code authorConfigFilePath}, {@code groupConfigFilePath} and","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"-"},"content":" * {@code reportConfigFilePath}.","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"-"},"content":" * @param configFolderPath The config folder path.","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"-"},"content":" public Builder configFolderPath(Path configFolderPath) {","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.configFolderPath \u003d configFolderPath.equals(EMPTY_PATH)","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"-"},"content":" ? configFolderPath.toAbsolutePath()","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"-"},"content":" : configFolderPath;","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.repoConfigFilePath \u003d configFolderPath.resolve(","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfigCsvParser.REPO_CONFIG_FILENAME);","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.authorConfigFilePath \u003d configFolderPath.resolve(","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"asdfghjkxd"},"content":" AuthorConfigCsvParser.AUTHOR_CONFIG_FILENAME);","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.groupConfigFilePath \u003d configFolderPath.resolve(","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"asdfghjkxd"},"content":" GroupConfigCsvParser.GROUP_CONFIG_FILENAME);","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.reportConfigFilePath \u003d configFolderPath.resolve(","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"asdfghjkxd"},"content":" ReportConfigJsonParser.REPORT_CONFIG_FILENAME);","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"-"},"content":" * Adds the {@code reportConfiguration} to CliArguments.","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"-"},"content":" * @param reportConfiguration The report configuration.","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"-"},"content":" public Builder reportConfiguration(ReportConfiguration reportConfiguration) {","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.reportConfiguration \u003d reportConfiguration;","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"-"},"content":" * Adds the {@code isAuthorshipAnalyzed} to CliArguments.","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"-"},"content":" * @param isAuthorshipAnalyzed Is authorship analyzed.","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"-"},"content":" public Builder isAuthorshipAnalyzed(boolean isAuthorshipAnalyzed) {","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"-"},"content":" this.cliArguments.isAuthorshipAnalyzed \u003d isAuthorshipAnalyzed;","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"-"},"content":" * Adds the {@code originalityThreshold} to CliArguments.","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"-"},"content":" * @param originalityThreshold the originality threshold.","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"-"},"content":" public Builder originalityThreshold(double originalityThreshold) {","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"-"},"content":" this.cliArguments.originalityThreshold \u003d originalityThreshold;","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"asdfghjkxd"},"content":" * Adds the {@code blurbMap} to CliArguments.","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"asdfghjkxd"},"content":" * @param blurbMap The blurb map.","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"asdfghjkxd"},"content":" public Builder blurbMap(BlurbMap blurbMap) {","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.blurbMap \u003d blurbMap;","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":504,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":505,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":506,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":507,"author":{"gitId":"-"},"content":" * Builds CliArguments.","isFullCredit":false},{"lineNumber":508,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":509,"author":{"gitId":"-"},"content":" * @return CliArguments","isFullCredit":false},{"lineNumber":510,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":511,"author":{"gitId":"-"},"content":" public CliArguments build() {","isFullCredit":false},{"lineNumber":512,"author":{"gitId":"asdfghjkxd"},"content":" CliArguments built \u003d this.cliArguments;","isFullCredit":false},{"lineNumber":513,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments \u003d new CliArguments();","isFullCredit":false},{"lineNumber":514,"author":{"gitId":"asdfghjkxd"},"content":" return built;","isFullCredit":false},{"lineNumber":515,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":516,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":517,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":69,"-":448}},{"path":"src/main/java/reposense/model/CliRunConfiguration.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.util.logging.Level;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidLocationException;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.ParseException;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" * Represents RepoSense run configured by CLI.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"public class CliRunConfiguration implements RunConfiguration {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(CliRunConfiguration.class);","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" private final CliArguments cliArguments;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" public CliRunConfiguration(CliArguments cliArguments) {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" this.cliArguments \u003d cliArguments;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" * Constructs a list of {@link RepoConfiguration}.","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" * @throws ParseException if all repo locations are invalid.","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" public List\u003cRepoConfiguration\u003e getRepoConfigurations() throws ParseException {","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" for (String locationString : cliArguments.getLocations()) {","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":" configs.add(","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(locationString))","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":" .build()","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" } catch (InvalidLocationException ile) {","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, ile.getMessage(), ile);","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" if (configs.isEmpty()) {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" throw new ParseException(\"All repository locations are invalid.\");","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" return configs;","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":7,"-":43}},{"path":"src/main/java/reposense/model/CommitHash.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.stream.Stream;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import reposense.git.GitRevList;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" * Represents a git commit hash in {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"public class CommitHash {","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" private static final String COMMIT_HASH_REGEX \u003d \"^[0-9a-f]+$\";","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" private static final String COMMIT_RANGED_HASH_REGEX \u003d \"^[0-9a-f]+\\\\.\\\\.[0-9a-f]+$\";","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" private static final String INVALID_COMMIT_HASH_MESSAGE \u003d","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" \"The provided commit hash, %s, contains illegal characters.\";","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" private String commit;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" public CommitHash(String commit) {","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" validateCommit(commit);","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" this.commit \u003d commit;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" public String toString() {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" return commit;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" public boolean equals(Object other) {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" // short circuit if same object","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" if (this \u003d\u003d other) {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" // instanceof handles null","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" if (!(other instanceof CommitHash)) {","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" CommitHash otherCommit \u003d (CommitHash) other;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" return this.commit.equals(otherCommit.commit);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" public int hashCode() {","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" return commit.hashCode();","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" * Converts all the strings in {@code commits} into {@link CommitHash} objects.","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" * Returns null if {@code commits} is null.","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" * @throws IllegalArgumentException if any of the strings are in invalid formats.","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" public static List\u003cCommitHash\u003e convertStringsToCommits(List\u003cString\u003e commits) throws IllegalArgumentException {","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" if (commits \u003d\u003d null) {","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" return null;","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" return commits.stream()","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" .map(CommitHash::new)","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" * Converts a commit {@code entry} into either itself, or a stream of {@link CommitHash} objects if a range was","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" * provided.","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" * Uses {@code root} as the working directory and {@code branchName} as the branch from which to obtain the hashes.","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" public static Stream\u003cCommitHash\u003e getHashes(String root, String branchName, CommitHash entry) {","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" if (entry.toString().matches(COMMIT_HASH_REGEX)) {","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" return Stream.of(entry);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" String[] startAndEnd \u003d entry.toString().split(\"\\\\.\\\\.\");","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" String revList \u003d GitRevList.getCommitHashInRange(root, branchName, startAndEnd[0], startAndEnd[1]);","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"asdfghjkxd"},"content":" return Arrays.stream(StringsUtil.NEWLINE.split(revList))","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" .map(CommitHash::new);","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" * Checks if {@code commitList} contains {@code commitHash}.","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" public static boolean isInsideCommitList(String commitHash, List\u003cCommitHash\u003e commitList) {","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" return commitList.stream().map(CommitHash::toString).anyMatch(commitHash::startsWith);","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" * Checks that all the strings in the {@code ignoreCommitList} are in valid formats.","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" * @throws IllegalArgumentException if any of the values do not meet the criteria.","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" public static void validateCommits(List\u003cString\u003e commits) throws IllegalArgumentException {","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" for (String commitHash : commits) {","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" validateCommit(commitHash);","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" * Checks that {@code commitHash} is in a valid format.","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" * @throws IllegalArgumentException if {@code commitHash} does not meet the criteria.","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" private static void validateCommit(String commitHash) throws IllegalArgumentException {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" if (!commitHash.matches(COMMIT_HASH_REGEX) \u0026\u0026 !commitHash.matches(COMMIT_RANGED_HASH_REGEX)) {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" throw new IllegalArgumentException(String.format(INVALID_COMMIT_HASH_MESSAGE, commitHash));","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":112}},{"path":"src/main/java/reposense/model/ConfigRunConfiguration.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.logging.Level;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.parser.AuthorConfigCsvParser;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.parser.GroupConfigCsvParser;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.parser.RepoConfigCsvParser;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidCsvException;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidHeaderException;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" * Represents RepoSense run configured by config files.","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"public class ConfigRunConfiguration implements RunConfiguration {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(ConfigRunConfiguration.class);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private final CliArguments cliArguments;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" public ConfigRunConfiguration(CliArguments cliArguments) {","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" this.cliArguments \u003d cliArguments;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" * Constructs a list of {@link RepoConfiguration}.","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" * @throws IOException if user-supplied csv file does not exist or is not readable.","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" * @throws InvalidCsvException if user-supplied repo-config csv is malformed.","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" * @throws InvalidHeaderException if user-supplied csv file has header that cannot be parsed.","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" public List\u003cRepoConfiguration\u003e getRepoConfigurations()","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" throws IOException, InvalidCsvException, InvalidHeaderException {","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e repoConfigs \u003d new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e authorConfigs;","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" List\u003cGroupConfiguration\u003e groupConfigs;","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" Path authorConfigFilePath \u003d cliArguments.getAuthorConfigFilePath();","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" Path groupConfigFilePath \u003d cliArguments.getGroupConfigFilePath();","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" if (authorConfigFilePath !\u003d null \u0026\u0026 Files.exists(authorConfigFilePath)) {","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" authorConfigs \u003d new AuthorConfigCsvParser(cliArguments.getAuthorConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" RepoConfiguration.merge(repoConfigs, authorConfigs);","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" RepoConfiguration.setHasAuthorConfigFileToRepoConfigs(repoConfigs, true);","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" } catch (IOException | InvalidCsvException e) {","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" // for all IO and invalid csv exceptions, log the error and continue","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, e.getMessage(), e);","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" if (groupConfigFilePath !\u003d null \u0026\u0026 Files.exists(groupConfigFilePath)) {","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" groupConfigs \u003d new GroupConfigCsvParser(cliArguments.getGroupConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" RepoConfiguration.setGroupConfigsToRepos(repoConfigs, groupConfigs);","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" } catch (IOException | InvalidCsvException e) {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" // for all IO and invalid csv exceptions, log the error and continue","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, e.getMessage(), e);","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" return repoConfigs;","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":69}},{"path":"src/main/java/reposense/model/RepoConfiguration.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.File;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.git.GitBranch;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.git.exception.GitBranchException;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.ConfigurationBuildException;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" * Represents configuration information from CSV config file for a single repository.","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"public class RepoConfiguration {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" public static final String DEFAULT_BRANCH \u003d \"HEAD\";","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" public static final String DEFAULT_EXTRA_OUTPUT_FOLDER_NAME \u003d \"\";","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" public static final long DEFAULT_FILE_SIZE_LIMIT \u003d 500000;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(RepoConfiguration.class);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private RepoLocation location;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":" private String branch \u003d DEFAULT_BRANCH;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private String displayName;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private String outputFolderName;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":" private transient String extraOutputFolderName \u003d DEFAULT_EXTRA_OUTPUT_FOLDER_NAME;","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private transient ZoneId zoneId;","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private transient LocalDateTime sinceDate;","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private transient LocalDateTime untilDate;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private transient String repoFolderName;","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"asdfghjkxd"},"content":" private transient FileTypeManager fileTypeManager \u003d new FileTypeManager(Collections.emptyList());","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private transient List\u003cString\u003e ignoreGlobList \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" private transient List\u003cString\u003e ignoredAuthorsList \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" private transient AuthorConfiguration authorConfig;","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":" private transient boolean isStandaloneConfigIgnored \u003d false;","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":" private transient boolean isFileSizeLimitIgnored \u003d false;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"asdfghjkxd"},"content":" private transient List\u003cCommitHash\u003e ignoreCommitList \u003d Collections.emptyList();","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" private transient boolean isLastModifiedDateIncluded;","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"asdfghjkxd"},"content":" private transient boolean isShallowCloningPerformed \u003d false;","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"asdfghjkxd"},"content":" private transient boolean isFindingPreviousAuthorsPerformed \u003d false;","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"asdfghjkxd"},"content":" private transient boolean isFormatsOverriding \u003d false;","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" private transient boolean isIgnoreGlobListOverriding;","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"asdfghjkxd"},"content":" private transient boolean isIgnoreCommitListOverriding \u003d false;","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" private transient boolean isIgnoredAuthorsListOverriding;","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"asdfghjkxd"},"content":" private transient long fileSizeLimit \u003d DEFAULT_FILE_SIZE_LIMIT;","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"asdfghjkxd"},"content":" private transient boolean isFileSizeLimitOverriding \u003d false;","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"asdfghjkxd"},"content":" private transient boolean isIgnoredFileAnalysisSkipped \u003d false;","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"asdfghjkxd"},"content":" * Constructs an empty instance of {@code RepoConfiguration}, which is used by the {@code Builder}","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"asdfghjkxd"},"content":" * to construct new {@code RepoConfiguration} instances.","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"asdfghjkxd"},"content":" private RepoConfiguration() {}","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"asdfghjkxd"},"content":" * Builds the necessary configurations for RepoConfiguration.","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"asdfghjkxd"},"content":" * Obeys the Builder pattern as described in {@link CliArguments}.","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"asdfghjkxd"},"content":" public static class Builder {","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"asdfghjkxd"},"content":" private String displayName;","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"asdfghjkxd"},"content":" private String outputFolderName;","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"asdfghjkxd"},"content":" private String repoFolderName;","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"asdfghjkxd"},"content":" private RepoConfiguration repoConfiguration;","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"asdfghjkxd"},"content":" * Returns an empty instance of the RepoConfiguration Builder.","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"asdfghjkxd"},"content":" public Builder() {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration \u003d new RepoConfiguration();","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"asdfghjkxd"},"content":" * Processes the author configuration of the repository.","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"asdfghjkxd"},"content":" private void processAuthor() {","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.authorConfig \u003d new AuthorConfiguration(","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.location,","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.branch);","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"asdfghjkxd"},"content":" * Processes the branch of the repository.","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"asdfghjkxd"},"content":" private void processBranch() {","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.branch \u003d this.repoConfiguration.location.isEmpty()","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"asdfghjkxd"},"content":" ? DEFAULT_BRANCH","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"asdfghjkxd"},"content":" : this.repoConfiguration.branch;","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"asdfghjkxd"},"content":" * Processes the relevant names of the repository configs.","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"asdfghjkxd"},"content":" private void processNames() {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"asdfghjkxd"},"content":" String repoName \u003d this.repoConfiguration.location.getRepoName();","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"asdfghjkxd"},"content":" String org \u003d this.repoConfiguration.location.getOrganization();","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"asdfghjkxd"},"content":" String defaultDisplayName \u003d repoName + \"[\" + this.repoConfiguration.branch + \"]\";","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"asdfghjkxd"},"content":" String defaultOutputFolderName \u003d repoName + \"_\" + this.repoConfiguration.branch;","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"asdfghjkxd"},"content":" String defaultRepoFolderName \u003d repoName;","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"asdfghjkxd"},"content":" if (!org.isEmpty()) {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"asdfghjkxd"},"content":" defaultDisplayName \u003d org + \"/\" + defaultDisplayName;","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"asdfghjkxd"},"content":" defaultRepoFolderName \u003d org + \"_\" + defaultRepoFolderName;","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"asdfghjkxd"},"content":" defaultOutputFolderName \u003d org + \"_\" + defaultOutputFolderName;","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.displayName \u003d Optional.ofNullable(this.displayName)","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"asdfghjkxd"},"content":" .orElse(defaultDisplayName);","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.outputFolderName \u003d Optional.ofNullable(this.outputFolderName)","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"asdfghjkxd"},"content":" .orElse(defaultOutputFolderName);","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.repoFolderName \u003d Optional.ofNullable(this.repoFolderName)","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"asdfghjkxd"},"content":" .orElse(defaultRepoFolderName);","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code location} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"asdfghjkxd"},"content":" * @param location A repository location.","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"asdfghjkxd"},"content":" public Builder location(RepoLocation location) {","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.location \u003d location;","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code branch} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"asdfghjkxd"},"content":" * @param branch Branch of the repository of interest.","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"asdfghjkxd"},"content":" public Builder branch(String branch) {","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.branch \u003d branch;","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code displayName} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"asdfghjkxd"},"content":" * @param displayName Display name of the repository.","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"asdfghjkxd"},"content":" public Builder displayName(String displayName) {","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"asdfghjkxd"},"content":" this.displayName \u003d displayName;","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.displayName \u003d displayName;","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code outputFolderName} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"asdfghjkxd"},"content":" * @param outputFolderName Output folder name of the repository.","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"asdfghjkxd"},"content":" public Builder outputFolderName(String outputFolderName) {","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"asdfghjkxd"},"content":" this.outputFolderName \u003d outputFolderName;","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.outputFolderName \u003d outputFolderName;","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code extraOutputFolderName} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"asdfghjkxd"},"content":" * @param extraOutputFolderName Extra output folder name of the repository.","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"asdfghjkxd"},"content":" public Builder extraOutputFolderName(String extraOutputFolderName) {","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.extraOutputFolderName \u003d extraOutputFolderName;","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code zoneId} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"asdfghjkxd"},"content":" * @param zoneId Time-zone of the repository.","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"asdfghjkxd"},"content":" public Builder zoneId(ZoneId zoneId) {","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.zoneId \u003d zoneId;","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code sinceDate} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"asdfghjkxd"},"content":" * @param sinceDate Starting date of analysis.","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"asdfghjkxd"},"content":" public Builder sinceDate(LocalDateTime sinceDate) {","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.sinceDate \u003d sinceDate;","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code untilDate} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"asdfghjkxd"},"content":" * @param untilDate Ending date of analysis.","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"asdfghjkxd"},"content":" public Builder untilDate(LocalDateTime untilDate) {","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.untilDate \u003d untilDate;","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code repoFolderName} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"asdfghjkxd"},"content":" * @param repoFolderName Folder name of the repository.","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"asdfghjkxd"},"content":" public Builder repoFolderName(String repoFolderName) {","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"asdfghjkxd"},"content":" this.repoFolderName \u003d repoFolderName;","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.repoFolderName \u003d repoFolderName;","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code fileTypeManager} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"asdfghjkxd"},"content":" * @param fileTypes List of file types and groupings permitted.","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"asdfghjkxd"},"content":" public Builder fileTypeManager(List\u003cFileType\u003e fileTypes) {","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.fileTypeManager \u003d new FileTypeManager(fileTypes);","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code ignoreGlobList} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"asdfghjkxd"},"content":" * @param ignoredGlobList List of glob patterns to ignore.","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"asdfghjkxd"},"content":" public Builder ignoreGlobList(List\u003cString\u003e ignoredGlobList) {","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.ignoreGlobList \u003d ignoredGlobList;","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code ignoredAuthorsList} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"asdfghjkxd"},"content":" * @param ignoredAuthorsList List of authors to ignore.","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"asdfghjkxd"},"content":" public Builder ignoredAuthorsList(List\u003cString\u003e ignoredAuthorsList) {","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.ignoredAuthorsList \u003d ignoredAuthorsList;","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code authorConfig} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"asdfghjkxd"},"content":" * @param authorConfig Author configuration information of the repository.","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"asdfghjkxd"},"content":" public Builder authorConfig(AuthorConfiguration authorConfig) {","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.authorConfig \u003d authorConfig;","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isStandaloneConfigIgnored} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"asdfghjkxd"},"content":" * @param isStandaloneConfigIgnored Checks if standalone config is ignored.","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isStandaloneConfigIgnored(boolean isStandaloneConfigIgnored) {","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isStandaloneConfigIgnored \u003d isStandaloneConfigIgnored;","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isFileSizeLimitIgnored} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"asdfghjkxd"},"content":" * @param isFileSizeLimitIgnored Checks if file size limit is ignored.","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isFileSizeLimitIgnored(boolean isFileSizeLimitIgnored) {","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isFileSizeLimitIgnored \u003d isFileSizeLimitIgnored;","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code ignoreCommitList} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"asdfghjkxd"},"content":" * @param ignoreCommitList List of commits to ignore.","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"asdfghjkxd"},"content":" public Builder ignoreCommitList(List\u003cCommitHash\u003e ignoreCommitList) {","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.ignoreCommitList \u003d ignoreCommitList;","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isLastModifiedDateIncluded} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"asdfghjkxd"},"content":" * @param isLastModifiedDateIncluded Checks if last modified date is included.","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isLastModifiedDateIncluded(boolean isLastModifiedDateIncluded) {","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isLastModifiedDateIncluded \u003d isLastModifiedDateIncluded;","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isShallowCloningPerformed} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"asdfghjkxd"},"content":" * @param isShallowCloningPerformed Checks if shallow cloning is performed.","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isShallowCloningPerformed(boolean isShallowCloningPerformed) {","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isShallowCloningPerformed \u003d isShallowCloningPerformed;","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isFindingPreviousAuthorsPerformed} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"asdfghjkxd"},"content":" * @param isFindingPreviousAuthorsPerformed Checks if finding previous authors is performed.","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isFindingPreviousAuthorsPerformed(boolean isFindingPreviousAuthorsPerformed) {","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isFindingPreviousAuthorsPerformed \u003d isFindingPreviousAuthorsPerformed;","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isFormatsOverriding} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"asdfghjkxd"},"content":" * @param isFormatsOverriding Checks if file formats are overridden.","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isFormatsOverriding(boolean isFormatsOverriding) {","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isFormatsOverriding \u003d isFormatsOverriding;","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isIgnoreGlobListOverriding} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"asdfghjkxd"},"content":" * @param isIgnoreGlobListOverriding Checks if the list of ignored glob is overridden.","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isIgnoreGlobListOverriding(boolean isIgnoreGlobListOverriding) {","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isIgnoreGlobListOverriding \u003d isIgnoreGlobListOverriding;","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isIgnoreCommitListOverriding} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"asdfghjkxd"},"content":" * @param isIgnoreCommitListOverriding Checks if the list of ignored commits is overridden.","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isIgnoreCommitListOverriding(boolean isIgnoreCommitListOverriding) {","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isIgnoreCommitListOverriding \u003d isIgnoreCommitListOverriding;","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isFileSizeLimitOverriding} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"asdfghjkxd"},"content":" * @param isIgnoredAuthorsListOverriding Checks if the list of ignored authors is overridden.","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isIgnoredAuthorsListOverriding(boolean isIgnoredAuthorsListOverriding) {","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isIgnoredAuthorsListOverriding \u003d isIgnoredAuthorsListOverriding;","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code fileSizeLimit} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"asdfghjkxd"},"content":" * @param fileSizeLimit File size limit of the repository.","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"asdfghjkxd"},"content":" public Builder fileSizeLimit(long fileSizeLimit) {","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.fileSizeLimit \u003d fileSizeLimit;","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isFileSizeLimitOverriding} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"asdfghjkxd"},"content":" * @param isFileSizeLimitOverriding Checks if the file size limit is overridden.","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isFileSizeLimitOverriding(boolean isFileSizeLimitOverriding) {","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isFileSizeLimitOverriding \u003d isFileSizeLimitOverriding;","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isIgnoredFileAnalysisSkipped} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"asdfghjkxd"},"content":" * @param isIgnoredFileAnalysisSkipped Checks if the analysis of ignored files is skipped.","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isIgnoredFileAnalysisSkipped(boolean isIgnoredFileAnalysisSkipped) {","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isIgnoredFileAnalysisSkipped \u003d isIgnoredFileAnalysisSkipped;","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"asdfghjkxd"},"content":" * Builds the {@code RepoConfiguration} object with the necessary configurations.","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"asdfghjkxd"},"content":" * @return {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"asdfghjkxd"},"content":" * @throws ConfigurationBuildException if there was an issue building the {@code RepoConfiguration}","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"asdfghjkxd"},"content":" * object.","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"asdfghjkxd"},"content":" public RepoConfiguration build() {","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"asdfghjkxd"},"content":" if (!validate()) {","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"asdfghjkxd"},"content":" throw new ConfigurationBuildException();","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"asdfghjkxd"},"content":" this.processAuthor();","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"asdfghjkxd"},"content":" this.processBranch();","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"asdfghjkxd"},"content":" this.processNames();","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"asdfghjkxd"},"content":" // save a reference to the current built object","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration toReturn \u003d this.repoConfiguration;","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"asdfghjkxd"},"content":" // reset the internal reference to avoid aliasing","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration \u003d new RepoConfiguration();","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"asdfghjkxd"},"content":" // return the reference to the built RepoConfiguration object","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"asdfghjkxd"},"content":" return toReturn;","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"asdfghjkxd"},"content":" * Checks if the current {@code RepoConfiguration} object contains all the necessary parameters","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"asdfghjkxd"},"content":" * needed to build successfully.","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"asdfghjkxd"},"content":" * @return true if the {@code RepoConfiguration} object contains all the necessary parameters else false","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"asdfghjkxd"},"content":" private boolean validate() {","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"asdfghjkxd"},"content":" return Optional.ofNullable(this.repoConfiguration.location).isPresent();","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"-"},"content":" public static void setDatesToRepoConfigs(List\u003cRepoConfiguration\u003e configs,","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"-"},"content":" LocalDateTime sinceDate, LocalDateTime untilDate) {","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"-"},"content":" for (RepoConfiguration config : configs) {","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"-"},"content":" config.setSinceDate(sinceDate);","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"-"},"content":" config.setUntilDate(untilDate);","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"-"},"content":" public static void setZoneIdToRepoConfigs(List\u003cRepoConfiguration\u003e configs, ZoneId zoneId) {","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"-"},"content":" for (RepoConfiguration config : configs) {","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"-"},"content":" config.setZoneId(zoneId);","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"-"},"content":" public static void setIsLastModifiedDateIncludedToRepoConfigs(List\u003cRepoConfiguration\u003e configs,","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"-"},"content":" boolean isLastModifiedDateIncluded) {","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"-"},"content":" for (RepoConfiguration config : configs) {","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"-"},"content":" config.setIsLastModifiedDateIncluded(isLastModifiedDateIncluded);","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"-"},"content":" public static void setIsShallowCloningPerformedToRepoConfigs(List\u003cRepoConfiguration\u003e configs,","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"-"},"content":" boolean isShallowCloningPerformed) {","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"-"},"content":" if (isShallowCloningPerformed) {","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"-"},"content":" configs.stream().forEach(config -\u003e config.setIsShallowCloningPerformed(true));","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"-"},"content":" public static void setIsFindingPreviousAuthorsPerformedToRepoConfigs(List\u003cRepoConfiguration\u003e configs,","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"-"},"content":" boolean isFindingPreviousAuthorsPerformed) {","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"-"},"content":" if (isFindingPreviousAuthorsPerformed) {","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"-"},"content":" configs.stream().forEach(config -\u003e config.setIsFindingPreviousAuthorsPerformed(true));","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"-"},"content":" public static void setHasAuthorConfigFileToRepoConfigs(List\u003cRepoConfiguration\u003e configs,","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"-"},"content":" boolean setHasAuthorConfigFile) {","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"-"},"content":" configs.stream().forEach(config -\u003e config.setHasAuthorConfigFile(setHasAuthorConfigFile));","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"-"},"content":" * Merges a {@link RepoConfiguration} from {@code repoConfigs} with an {@link AuthorConfiguration} from","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"-"},"content":" * {@code authorConfigs} if their {@link RepoLocation} and branch matches.","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"-"},"content":" public static void merge(List\u003cRepoConfiguration\u003e repoConfigs, List\u003cAuthorConfiguration\u003e authorConfigs) {","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"-"},"content":" for (AuthorConfiguration authorConfig : authorConfigs) {","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"-"},"content":" if (authorConfig.getLocation().isEmpty()) {","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"-"},"content":" for (RepoConfiguration repoConfig : repoConfigs) {","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"-"},"content":" repoConfig.addAuthors(authorConfig.getAuthorList());","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e locationMatchingRepoConfigs \u003d","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"-"},"content":" getMatchingRepoConfigsByLocation(repoConfigs, authorConfig.getLocation());","isFullCredit":false},{"lineNumber":504,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":505,"author":{"gitId":"-"},"content":" if (locationMatchingRepoConfigs.isEmpty()) {","isFullCredit":false},{"lineNumber":506,"author":{"gitId":"-"},"content":" logger.warning(String.format(","isFullCredit":false},{"lineNumber":507,"author":{"gitId":"-"},"content":" \"Repository %s is not found in repo-config.csv.\",","isFullCredit":false},{"lineNumber":508,"author":{"gitId":"-"},"content":" authorConfig.getLocation()));","isFullCredit":false},{"lineNumber":509,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":510,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":511,"author":{"gitId":"-"},"content":" if (authorConfig.isDefaultBranch()) {","isFullCredit":false},{"lineNumber":512,"author":{"gitId":"-"},"content":" locationMatchingRepoConfigs.forEach(matchingRepoConfig -\u003e {","isFullCredit":false},{"lineNumber":513,"author":{"gitId":"-"},"content":" matchingRepoConfig.addAuthors(authorConfig.getAuthorList());","isFullCredit":false},{"lineNumber":514,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":515,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":516,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":517,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":518,"author":{"gitId":"-"},"content":" RepoConfiguration branchMatchingRepoConfig \u003d getMatchingRepoConfig(repoConfigs, authorConfig);","isFullCredit":false},{"lineNumber":519,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":520,"author":{"gitId":"-"},"content":" if (branchMatchingRepoConfig \u003d\u003d null) {","isFullCredit":false},{"lineNumber":521,"author":{"gitId":"-"},"content":" if (!authorConfig.isDefaultBranch()) {","isFullCredit":false},{"lineNumber":522,"author":{"gitId":"-"},"content":" logger.warning(String.format(","isFullCredit":false},{"lineNumber":523,"author":{"gitId":"-"},"content":" \"Repository %s (branch %s) is not found in repo-config.csv.\",","isFullCredit":false},{"lineNumber":524,"author":{"gitId":"-"},"content":" authorConfig.getLocation(), authorConfig.getBranch()));","isFullCredit":false},{"lineNumber":525,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":526,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":527,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":528,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":529,"author":{"gitId":"-"},"content":" branchMatchingRepoConfig.addAuthors(authorConfig.getAuthorList());","isFullCredit":false},{"lineNumber":530,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":531,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":532,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":533,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":534,"author":{"gitId":"-"},"content":" * Sets the list of groups in {@code groupConfigs} to the respective {@code repoConfigs}.","isFullCredit":false},{"lineNumber":535,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":536,"author":{"gitId":"-"},"content":" public static void setGroupConfigsToRepos(List\u003cRepoConfiguration\u003e repoConfigs,","isFullCredit":false},{"lineNumber":537,"author":{"gitId":"-"},"content":" List\u003cGroupConfiguration\u003e groupConfigs) {","isFullCredit":false},{"lineNumber":538,"author":{"gitId":"-"},"content":" for (GroupConfiguration groupConfig : groupConfigs) {","isFullCredit":false},{"lineNumber":539,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e matchingRepoConfigs;","isFullCredit":false},{"lineNumber":540,"author":{"gitId":"-"},"content":" if (groupConfig.getLocation().isEmpty()) {","isFullCredit":false},{"lineNumber":541,"author":{"gitId":"-"},"content":" matchingRepoConfigs \u003d repoConfigs;","isFullCredit":false},{"lineNumber":542,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":543,"author":{"gitId":"-"},"content":" matchingRepoConfigs \u003d getMatchingRepoConfigsByLocation(repoConfigs,","isFullCredit":false},{"lineNumber":544,"author":{"gitId":"-"},"content":" groupConfig.getLocation());","isFullCredit":false},{"lineNumber":545,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":546,"author":{"gitId":"-"},"content":" if (matchingRepoConfigs.isEmpty()) {","isFullCredit":false},{"lineNumber":547,"author":{"gitId":"-"},"content":" logger.warning(String.format(","isFullCredit":false},{"lineNumber":548,"author":{"gitId":"-"},"content":" \"Repository %s is not found in repo-config.csv.\", groupConfig.getLocation()));","isFullCredit":false},{"lineNumber":549,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":550,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":551,"author":{"gitId":"-"},"content":" matchingRepoConfigs.forEach(matchingRepoConfig -\u003e {","isFullCredit":false},{"lineNumber":552,"author":{"gitId":"-"},"content":" matchingRepoConfig.addGroups(groupConfig.getGroupsList());","isFullCredit":false},{"lineNumber":553,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":554,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":555,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":556,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":557,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":558,"author":{"gitId":"-"},"content":" * Iterates through {@code repoConfigs} to find a {@link RepoConfiguration} with {@link RepoLocation} and branch","isFullCredit":false},{"lineNumber":559,"author":{"gitId":"-"},"content":" * that matches {@code authorConfig}. Returns {@code null} if no match is found.","isFullCredit":false},{"lineNumber":560,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":561,"author":{"gitId":"-"},"content":" private static RepoConfiguration getMatchingRepoConfig(List\u003cRepoConfiguration\u003e repoConfigs,","isFullCredit":false},{"lineNumber":562,"author":{"gitId":"-"},"content":" AuthorConfiguration authorConfig) {","isFullCredit":false},{"lineNumber":563,"author":{"gitId":"-"},"content":" if (authorConfig.isDefaultBranch()) {","isFullCredit":false},{"lineNumber":564,"author":{"gitId":"-"},"content":" return null;","isFullCredit":false},{"lineNumber":565,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":566,"author":{"gitId":"-"},"content":" for (RepoConfiguration repoConfig : repoConfigs) {","isFullCredit":false},{"lineNumber":567,"author":{"gitId":"-"},"content":" if (repoConfig.getLocation().equals(authorConfig.getLocation())","isFullCredit":false},{"lineNumber":568,"author":{"gitId":"-"},"content":" \u0026\u0026 repoConfig.getBranch().equals(authorConfig.getBranch())) {","isFullCredit":false},{"lineNumber":569,"author":{"gitId":"-"},"content":" return repoConfig;","isFullCredit":false},{"lineNumber":570,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":571,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":572,"author":{"gitId":"-"},"content":" return null;","isFullCredit":false},{"lineNumber":573,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":574,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":575,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":576,"author":{"gitId":"-"},"content":" * Returns a list of {@link RepoConfiguration} where the {@link RepoLocation} of a {@link RepoConfiguration}","isFullCredit":false},{"lineNumber":577,"author":{"gitId":"-"},"content":" * in the list of {@code configs} matches {@code targetRepoLocation}.","isFullCredit":false},{"lineNumber":578,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":579,"author":{"gitId":"-"},"content":" private static List\u003cRepoConfiguration\u003e getMatchingRepoConfigsByLocation(List\u003cRepoConfiguration\u003e configs,","isFullCredit":false},{"lineNumber":580,"author":{"gitId":"-"},"content":" RepoLocation targetRepoLocation) {","isFullCredit":false},{"lineNumber":581,"author":{"gitId":"-"},"content":" return configs.stream().filter(config -\u003e config.getLocation().equals(targetRepoLocation))","isFullCredit":false},{"lineNumber":582,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":583,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":584,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":585,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":586,"author":{"gitId":"-"},"content":" * Sets {@code formats} to {@link RepoConfiguration} in {@code configs} if its format list is empty.","isFullCredit":false},{"lineNumber":587,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":588,"author":{"gitId":"-"},"content":" public static void setFormatsToRepoConfigs(List\u003cRepoConfiguration\u003e configs, List\u003cFileType\u003e formats) {","isFullCredit":false},{"lineNumber":589,"author":{"gitId":"-"},"content":" for (RepoConfiguration config : configs) {","isFullCredit":false},{"lineNumber":590,"author":{"gitId":"-"},"content":" if (!config.fileTypeManager.hasSpecifiedFormats()) {","isFullCredit":false},{"lineNumber":591,"author":{"gitId":"-"},"content":" config.fileTypeManager.setFormats(formats);","isFullCredit":false},{"lineNumber":592,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":593,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":594,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":595,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":596,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":597,"author":{"gitId":"-"},"content":" * Sets each {@link RepoConfiguration} in {@code configs} to ignore its standalone config, if","isFullCredit":false},{"lineNumber":598,"author":{"gitId":"-"},"content":" * {@code ignoreAllStandaloneConfigs} is true.","isFullCredit":false},{"lineNumber":599,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":600,"author":{"gitId":"-"},"content":" public static void setStandaloneConfigIgnoredToRepoConfigs(List\u003cRepoConfiguration\u003e configs,","isFullCredit":false},{"lineNumber":601,"author":{"gitId":"-"},"content":" boolean ignoreAllStandaloneConfigs) {","isFullCredit":false},{"lineNumber":602,"author":{"gitId":"-"},"content":" if (ignoreAllStandaloneConfigs) {","isFullCredit":false},{"lineNumber":603,"author":{"gitId":"-"},"content":" configs.forEach(config -\u003e config.setStandaloneConfigIgnored(true));","isFullCredit":false},{"lineNumber":604,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":605,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":606,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":607,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":608,"author":{"gitId":"-"},"content":" * Sets each {@link RepoConfiguration} in {@code configs} to ignore its filesize limit, if","isFullCredit":false},{"lineNumber":609,"author":{"gitId":"-"},"content":" * {@code ignoreFilesizeLimit} is true.","isFullCredit":false},{"lineNumber":610,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":611,"author":{"gitId":"-"},"content":" public static void setFileSizeLimitIgnoredToRepoConfigs(List\u003cRepoConfiguration\u003e configs,","isFullCredit":false},{"lineNumber":612,"author":{"gitId":"-"},"content":" boolean ignoreFileSizeLimit) {","isFullCredit":false},{"lineNumber":613,"author":{"gitId":"-"},"content":" if (ignoreFileSizeLimit) {","isFullCredit":false},{"lineNumber":614,"author":{"gitId":"-"},"content":" configs.forEach(config -\u003e config.setFileSizeLimitIgnored(true));","isFullCredit":false},{"lineNumber":615,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":616,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":617,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":618,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":619,"author":{"gitId":"-"},"content":" * Checks if any of the {@code configs} is finding previous authors for commit analysis.","isFullCredit":false},{"lineNumber":620,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":621,"author":{"gitId":"-"},"content":" public static boolean isAnyRepoFindingPreviousAuthors(List\u003cRepoConfiguration\u003e configs) {","isFullCredit":false},{"lineNumber":622,"author":{"gitId":"-"},"content":" return configs.stream().anyMatch(RepoConfiguration::isFindingPreviousAuthorsPerformed);","isFullCredit":false},{"lineNumber":623,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":624,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":625,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":626,"author":{"gitId":"-"},"content":" * Clears existing information related to this repository and its authors, and replaces it with information from","isFullCredit":false},{"lineNumber":627,"author":{"gitId":"-"},"content":" * {@code standaloneConfig}.","isFullCredit":false},{"lineNumber":628,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":629,"author":{"gitId":"-"},"content":" public void update(StandaloneConfig standaloneConfig) {","isFullCredit":false},{"lineNumber":630,"author":{"gitId":"-"},"content":" // only assign the new values when all the fields in {@code standaloneConfig} pass the validations.","isFullCredit":false},{"lineNumber":631,"author":{"gitId":"-"},"content":" List\u003cFileType\u003e replacementFileTypes \u003d FileType.convertFormatStringsToFileTypes(standaloneConfig.getFormats());","isFullCredit":false},{"lineNumber":632,"author":{"gitId":"-"},"content":" CommitHash.validateCommits(standaloneConfig.getIgnoreCommitList());","isFullCredit":false},{"lineNumber":633,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":634,"author":{"gitId":"-"},"content":" if (!isIgnoreGlobListOverriding) {","isFullCredit":false},{"lineNumber":635,"author":{"gitId":"-"},"content":" ignoreGlobList \u003d standaloneConfig.getIgnoreGlobList();","isFullCredit":false},{"lineNumber":636,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":637,"author":{"gitId":"-"},"content":" if (!isFormatsOverriding) {","isFullCredit":false},{"lineNumber":638,"author":{"gitId":"-"},"content":" fileTypeManager.setFormats(replacementFileTypes);","isFullCredit":false},{"lineNumber":639,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":640,"author":{"gitId":"-"},"content":" if (!isIgnoreCommitListOverriding) {","isFullCredit":false},{"lineNumber":641,"author":{"gitId":"-"},"content":" ignoreCommitList \u003d CommitHash.convertStringsToCommits(standaloneConfig.getIgnoreCommitList());","isFullCredit":false},{"lineNumber":642,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":643,"author":{"gitId":"-"},"content":" if (!isIgnoredAuthorsListOverriding) {","isFullCredit":false},{"lineNumber":644,"author":{"gitId":"-"},"content":" ignoredAuthorsList \u003d standaloneConfig.getIgnoreAuthorList();","isFullCredit":false},{"lineNumber":645,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":646,"author":{"gitId":"-"},"content":" if (!isFileSizeLimitOverriding) {","isFullCredit":false},{"lineNumber":647,"author":{"gitId":"-"},"content":" fileSizeLimit \u003d standaloneConfig.getFileSizeLimit();","isFullCredit":false},{"lineNumber":648,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":649,"author":{"gitId":"-"},"content":" authorConfig.update(standaloneConfig, ignoreGlobList);","isFullCredit":false},{"lineNumber":650,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":651,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":652,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":653,"author":{"gitId":"-"},"content":" * Returns the matching {@link Author} given a {@code name} and an {@code email}.","isFullCredit":false},{"lineNumber":654,"author":{"gitId":"-"},"content":" * If no matching {@link Author} is found, {@link Author#UNKNOWN_AUTHOR} is returned.","isFullCredit":false},{"lineNumber":655,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":656,"author":{"gitId":"-"},"content":" public Author getAuthor(String name, String email) {","isFullCredit":false},{"lineNumber":657,"author":{"gitId":"-"},"content":" return authorConfig.getAuthor(name, email);","isFullCredit":false},{"lineNumber":658,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":659,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":660,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":661,"author":{"gitId":"-"},"content":" * Updates branch with {@code currentBranch} if default branch is specified.","isFullCredit":false},{"lineNumber":662,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":663,"author":{"gitId":"-"},"content":" public void updateBranch(String currentBranch) {","isFullCredit":false},{"lineNumber":664,"author":{"gitId":"-"},"content":" if (branch.equals(DEFAULT_BRANCH)) {","isFullCredit":false},{"lineNumber":665,"author":{"gitId":"-"},"content":" setBranch(currentBranch);","isFullCredit":false},{"lineNumber":666,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":667,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":668,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":669,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":670,"author":{"gitId":"-"},"content":" * Gets the current branch and updates branch with current branch if default branch is specified.","isFullCredit":false},{"lineNumber":671,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":672,"author":{"gitId":"-"},"content":" * @throws GitBranchException if current branch cannot be retrieved.","isFullCredit":false},{"lineNumber":673,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":674,"author":{"gitId":"-"},"content":" public void updateBranch() throws GitBranchException {","isFullCredit":false},{"lineNumber":675,"author":{"gitId":"-"},"content":" if (branch.equals(DEFAULT_BRANCH)) {","isFullCredit":false},{"lineNumber":676,"author":{"gitId":"-"},"content":" String currentBranch \u003d GitBranch.getCurrentBranch(getRepoRoot());","isFullCredit":false},{"lineNumber":677,"author":{"gitId":"-"},"content":" setBranch(currentBranch);","isFullCredit":false},{"lineNumber":678,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":679,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":680,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":681,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":682,"author":{"gitId":"-"},"content":" * Gets the path to the root folder of the repository.","isFullCredit":false},{"lineNumber":683,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":684,"author":{"gitId":"-"},"content":" public String getRepoRoot() {","isFullCredit":false},{"lineNumber":685,"author":{"gitId":"-"},"content":" String path \u003d FileUtil.REPOS_ADDRESS + File.separator + getRepoFolderName() + File.separator;","isFullCredit":false},{"lineNumber":686,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":687,"author":{"gitId":"-"},"content":" if (!getRepoName().isEmpty()) {","isFullCredit":false},{"lineNumber":688,"author":{"gitId":"-"},"content":" if (!extraOutputFolderName.isEmpty()) {","isFullCredit":false},{"lineNumber":689,"author":{"gitId":"-"},"content":" path +\u003d extraOutputFolderName + File.separator;","isFullCredit":false},{"lineNumber":690,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":691,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":692,"author":{"gitId":"-"},"content":" path +\u003d getRepoName() + File.separator;","isFullCredit":false},{"lineNumber":693,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":694,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":695,"author":{"gitId":"-"},"content":" return path;","isFullCredit":false},{"lineNumber":696,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":697,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":698,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":699,"author":{"gitId":"-"},"content":" * Gets the name of the folder containing the cloned repository; the parent directory of the repo\u0027s root folder.","isFullCredit":false},{"lineNumber":700,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":701,"author":{"gitId":"-"},"content":" public String getRepoFolderName() {","isFullCredit":false},{"lineNumber":702,"author":{"gitId":"-"},"content":" return repoFolderName;","isFullCredit":false},{"lineNumber":703,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":704,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":705,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":706,"author":{"gitId":"-"},"content":" public boolean equals(Object other) {","isFullCredit":false},{"lineNumber":707,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":708,"author":{"gitId":"-"},"content":" if (other \u003d\u003d this) {","isFullCredit":false},{"lineNumber":709,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":710,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":711,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":712,"author":{"gitId":"-"},"content":" if (!(other instanceof RepoConfiguration)) {","isFullCredit":false},{"lineNumber":713,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":714,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":715,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":716,"author":{"gitId":"-"},"content":" RepoConfiguration otherRepoConfig \u003d (RepoConfiguration) other;","isFullCredit":false},{"lineNumber":717,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":718,"author":{"gitId":"-"},"content":" return location.equals(otherRepoConfig.location)","isFullCredit":false},{"lineNumber":719,"author":{"gitId":"-"},"content":" \u0026\u0026 branch.equals(otherRepoConfig.branch)","isFullCredit":false},{"lineNumber":720,"author":{"gitId":"-"},"content":" \u0026\u0026 authorConfig.equals(otherRepoConfig.authorConfig)","isFullCredit":false},{"lineNumber":721,"author":{"gitId":"-"},"content":" \u0026\u0026 ignoreGlobList.equals(otherRepoConfig.ignoreGlobList)","isFullCredit":false},{"lineNumber":722,"author":{"gitId":"-"},"content":" \u0026\u0026 ignoredAuthorsList.equals(otherRepoConfig.ignoredAuthorsList)","isFullCredit":false},{"lineNumber":723,"author":{"gitId":"-"},"content":" \u0026\u0026 fileSizeLimit \u003d\u003d otherRepoConfig.fileSizeLimit","isFullCredit":false},{"lineNumber":724,"author":{"gitId":"-"},"content":" \u0026\u0026 isStandaloneConfigIgnored \u003d\u003d otherRepoConfig.isStandaloneConfigIgnored","isFullCredit":false},{"lineNumber":725,"author":{"gitId":"-"},"content":" \u0026\u0026 fileTypeManager.equals(otherRepoConfig.fileTypeManager)","isFullCredit":false},{"lineNumber":726,"author":{"gitId":"-"},"content":" \u0026\u0026 isLastModifiedDateIncluded \u003d\u003d otherRepoConfig.isLastModifiedDateIncluded","isFullCredit":false},{"lineNumber":727,"author":{"gitId":"-"},"content":" \u0026\u0026 isFormatsOverriding \u003d\u003d otherRepoConfig.isFormatsOverriding","isFullCredit":false},{"lineNumber":728,"author":{"gitId":"-"},"content":" \u0026\u0026 isShallowCloningPerformed \u003d\u003d otherRepoConfig.isShallowCloningPerformed","isFullCredit":false},{"lineNumber":729,"author":{"gitId":"-"},"content":" \u0026\u0026 isIgnoreGlobListOverriding \u003d\u003d otherRepoConfig.isIgnoreGlobListOverriding","isFullCredit":false},{"lineNumber":730,"author":{"gitId":"-"},"content":" \u0026\u0026 isIgnoreCommitListOverriding \u003d\u003d otherRepoConfig.isIgnoreCommitListOverriding","isFullCredit":false},{"lineNumber":731,"author":{"gitId":"-"},"content":" \u0026\u0026 isIgnoredAuthorsListOverriding \u003d\u003d otherRepoConfig.isIgnoredAuthorsListOverriding","isFullCredit":false},{"lineNumber":732,"author":{"gitId":"-"},"content":" \u0026\u0026 isFileSizeLimitOverriding \u003d\u003d otherRepoConfig.isFileSizeLimitOverriding","isFullCredit":false},{"lineNumber":733,"author":{"gitId":"-"},"content":" \u0026\u0026 isFileSizeLimitIgnored \u003d\u003d otherRepoConfig.isFileSizeLimitIgnored","isFullCredit":false},{"lineNumber":734,"author":{"gitId":"-"},"content":" \u0026\u0026 isIgnoredFileAnalysisSkipped \u003d\u003d otherRepoConfig.isIgnoredFileAnalysisSkipped;","isFullCredit":false},{"lineNumber":735,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":736,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":737,"author":{"gitId":"-"},"content":" public Map\u003cAuthor, String\u003e getAuthorDisplayNameMap() {","isFullCredit":false},{"lineNumber":738,"author":{"gitId":"-"},"content":" return authorConfig.getAuthorDisplayNameMap();","isFullCredit":false},{"lineNumber":739,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":740,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":741,"author":{"gitId":"-"},"content":" public void setAuthorDisplayNameMap(Map\u003cAuthor, String\u003e authorDisplayNameMap) {","isFullCredit":false},{"lineNumber":742,"author":{"gitId":"-"},"content":" authorConfig.setAuthorDisplayNameMap(authorDisplayNameMap);","isFullCredit":false},{"lineNumber":743,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":744,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":745,"author":{"gitId":"-"},"content":" public String getBranch() {","isFullCredit":false},{"lineNumber":746,"author":{"gitId":"-"},"content":" return branch;","isFullCredit":false},{"lineNumber":747,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":748,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":749,"author":{"gitId":"-"},"content":" public void setBranch(String branch) {","isFullCredit":false},{"lineNumber":750,"author":{"gitId":"-"},"content":" updateDisplayName(branch);","isFullCredit":false},{"lineNumber":751,"author":{"gitId":"-"},"content":" updateOutputFolderName(branch);","isFullCredit":false},{"lineNumber":752,"author":{"gitId":"-"},"content":" this.branch \u003d branch;","isFullCredit":false},{"lineNumber":753,"author":{"gitId":"-"},"content":" authorConfig.setBranch(branch);","isFullCredit":false},{"lineNumber":754,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":755,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":756,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":757,"author":{"gitId":"-"},"content":" * Updates the branch in the {@code displayName} to the current {@code branch}.","isFullCredit":false},{"lineNumber":758,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":759,"author":{"gitId":"-"},"content":" public void updateDisplayName(String branch) {","isFullCredit":false},{"lineNumber":760,"author":{"gitId":"-"},"content":" this.displayName \u003d displayName.substring(0, displayName.lastIndexOf(\u0027[\u0027) + 1) + branch + \"]\";","isFullCredit":false},{"lineNumber":761,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":762,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":763,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":764,"author":{"gitId":"-"},"content":" * Updates the branch in the {@code outputFolderName} to the current {@code branch}.","isFullCredit":false},{"lineNumber":765,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":766,"author":{"gitId":"-"},"content":" public void updateOutputFolderName(String branch) {","isFullCredit":false},{"lineNumber":767,"author":{"gitId":"-"},"content":" this.outputFolderName \u003d outputFolderName.substring(0, outputFolderName.lastIndexOf(\u0027_\u0027) + 1) + branch;","isFullCredit":false},{"lineNumber":768,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":769,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":770,"author":{"gitId":"-"},"content":" public List\u003cString\u003e getIgnoreGlobList() {","isFullCredit":false},{"lineNumber":771,"author":{"gitId":"-"},"content":" return ignoreGlobList;","isFullCredit":false},{"lineNumber":772,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":773,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":774,"author":{"gitId":"-"},"content":" public void setIgnoreGlobList(List\u003cString\u003e ignoreGlobList) {","isFullCredit":false},{"lineNumber":775,"author":{"gitId":"-"},"content":" this.ignoreGlobList \u003d ignoreGlobList;","isFullCredit":false},{"lineNumber":776,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":777,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":778,"author":{"gitId":"-"},"content":" public List\u003cCommitHash\u003e getIgnoreCommitList() {","isFullCredit":false},{"lineNumber":779,"author":{"gitId":"-"},"content":" return ignoreCommitList;","isFullCredit":false},{"lineNumber":780,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":781,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":782,"author":{"gitId":"-"},"content":" public long getFileSizeLimit() {","isFullCredit":false},{"lineNumber":783,"author":{"gitId":"-"},"content":" return fileSizeLimit;","isFullCredit":false},{"lineNumber":784,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":785,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":786,"author":{"gitId":"-"},"content":" public void setIgnoreCommitList(List\u003cCommitHash\u003e ignoreCommitList) {","isFullCredit":false},{"lineNumber":787,"author":{"gitId":"-"},"content":" this.ignoreCommitList \u003d ignoreCommitList;","isFullCredit":false},{"lineNumber":788,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":789,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":790,"author":{"gitId":"-"},"content":" public List\u003cString\u003e getIgnoredAuthorsList() {","isFullCredit":false},{"lineNumber":791,"author":{"gitId":"-"},"content":" return this.ignoredAuthorsList;","isFullCredit":false},{"lineNumber":792,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":793,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":794,"author":{"gitId":"-"},"content":" public void setIgnoredAuthorsList(List\u003cString\u003e ignoredAuthorsList) {","isFullCredit":false},{"lineNumber":795,"author":{"gitId":"-"},"content":" this.ignoredAuthorsList \u003d ignoredAuthorsList;","isFullCredit":false},{"lineNumber":796,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":797,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":798,"author":{"gitId":"-"},"content":" public boolean isIgnoredAuthorsListOverriding() {","isFullCredit":false},{"lineNumber":799,"author":{"gitId":"-"},"content":" return this.isIgnoredAuthorsListOverriding;","isFullCredit":false},{"lineNumber":800,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":801,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":802,"author":{"gitId":"-"},"content":" public void setIsLastModifiedDateIncluded(boolean lastModifiedDateIncluded) {","isFullCredit":false},{"lineNumber":803,"author":{"gitId":"-"},"content":" this.isLastModifiedDateIncluded \u003d lastModifiedDateIncluded;","isFullCredit":false},{"lineNumber":804,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":805,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":806,"author":{"gitId":"-"},"content":" public void setIsShallowCloningPerformed(boolean isShallowCloningPerformed) {","isFullCredit":false},{"lineNumber":807,"author":{"gitId":"-"},"content":" this.isShallowCloningPerformed \u003d isShallowCloningPerformed;","isFullCredit":false},{"lineNumber":808,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":809,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":810,"author":{"gitId":"-"},"content":" public void setIsFindingPreviousAuthorsPerformed(boolean isFindingPreviousAuthorsPerformed) {","isFullCredit":false},{"lineNumber":811,"author":{"gitId":"-"},"content":" this.isFindingPreviousAuthorsPerformed \u003d isFindingPreviousAuthorsPerformed;","isFullCredit":false},{"lineNumber":812,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":813,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":814,"author":{"gitId":"-"},"content":" public boolean isLastModifiedDateIncluded() {","isFullCredit":false},{"lineNumber":815,"author":{"gitId":"-"},"content":" return this.isLastModifiedDateIncluded;","isFullCredit":false},{"lineNumber":816,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":817,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":818,"author":{"gitId":"-"},"content":" public boolean isShallowCloningPerformed() {","isFullCredit":false},{"lineNumber":819,"author":{"gitId":"-"},"content":" return this.isShallowCloningPerformed;","isFullCredit":false},{"lineNumber":820,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":821,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":822,"author":{"gitId":"-"},"content":" public void setIsIgnoredAuthorsListOverriding(boolean isIgnoredAuthorsListOverriding) {","isFullCredit":false},{"lineNumber":823,"author":{"gitId":"-"},"content":" this.isIgnoredAuthorsListOverriding \u003d isIgnoredAuthorsListOverriding;","isFullCredit":false},{"lineNumber":824,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":825,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":826,"author":{"gitId":"-"},"content":" public void removeIgnoredAuthors() {","isFullCredit":false},{"lineNumber":827,"author":{"gitId":"-"},"content":" authorConfig.removeIgnoredAuthors(ignoredAuthorsList);","isFullCredit":false},{"lineNumber":828,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":829,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":830,"author":{"gitId":"-"},"content":" public List\u003cAuthor\u003e getAuthorList() {","isFullCredit":false},{"lineNumber":831,"author":{"gitId":"-"},"content":" return authorConfig.getAuthorList();","isFullCredit":false},{"lineNumber":832,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":833,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":834,"author":{"gitId":"-"},"content":" public void addAuthor(Author author) {","isFullCredit":false},{"lineNumber":835,"author":{"gitId":"-"},"content":" authorConfig.addAuthor(author, this.getIgnoreGlobList());","isFullCredit":false},{"lineNumber":836,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":837,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":838,"author":{"gitId":"-"},"content":" public void addAuthors(List\u003cAuthor\u003e authorList) {","isFullCredit":false},{"lineNumber":839,"author":{"gitId":"-"},"content":" authorConfig.addAuthors(authorList, this.getIgnoreGlobList());","isFullCredit":false},{"lineNumber":840,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":841,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":842,"author":{"gitId":"-"},"content":" public void setAuthorConfiguration(AuthorConfiguration authorConfig) {","isFullCredit":false},{"lineNumber":843,"author":{"gitId":"-"},"content":" this.authorConfig \u003d authorConfig;","isFullCredit":false},{"lineNumber":844,"author":{"gitId":"-"},"content":" for (Author author : authorConfig.getAuthorList()) {","isFullCredit":false},{"lineNumber":845,"author":{"gitId":"-"},"content":" AuthorConfiguration.propagateIgnoreGlobList(author, ignoreGlobList);","isFullCredit":false},{"lineNumber":846,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":847,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":848,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":849,"author":{"gitId":"-"},"content":" public boolean containsAuthor(Author author) {","isFullCredit":false},{"lineNumber":850,"author":{"gitId":"-"},"content":" return authorConfig.containsAuthor(author);","isFullCredit":false},{"lineNumber":851,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":852,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":853,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":854,"author":{"gitId":"-"},"content":" * Clears authors information and sets the {@code authorList} to {@link RepoConfiguration}.","isFullCredit":false},{"lineNumber":855,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":856,"author":{"gitId":"-"},"content":" public void setAuthorList(List\u003cAuthor\u003e authorList) {","isFullCredit":false},{"lineNumber":857,"author":{"gitId":"-"},"content":" authorConfig.clear();","isFullCredit":false},{"lineNumber":858,"author":{"gitId":"-"},"content":" authorConfig.setAuthorList(authorList);","isFullCredit":false},{"lineNumber":859,"author":{"gitId":"-"},"content":" authorConfig.buildFromAuthorList();","isFullCredit":false},{"lineNumber":860,"author":{"gitId":"-"},"content":" authorList.forEach(author -\u003e AuthorConfiguration.propagateIgnoreGlobList(author, this.getIgnoreGlobList()));","isFullCredit":false},{"lineNumber":861,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":862,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":863,"author":{"gitId":"-"},"content":" public void setHasAuthorConfigFile(boolean hasAuthorConfigFile) {","isFullCredit":false},{"lineNumber":864,"author":{"gitId":"-"},"content":" authorConfig.setHasAuthorConfigFile(hasAuthorConfigFile);","isFullCredit":false},{"lineNumber":865,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":866,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":867,"author":{"gitId":"-"},"content":" public Map\u003cString, Author\u003e getAuthorNamesToAuthorMap() {","isFullCredit":false},{"lineNumber":868,"author":{"gitId":"-"},"content":" return authorConfig.getAuthorNamesToAuthorMap();","isFullCredit":false},{"lineNumber":869,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":870,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":871,"author":{"gitId":"-"},"content":" public void setAuthorNamesToAuthorMap(Map\u003cString, Author\u003e authorNamesToAuthorMap) {","isFullCredit":false},{"lineNumber":872,"author":{"gitId":"-"},"content":" authorConfig.setAuthorNamesToAuthorMap(authorNamesToAuthorMap);","isFullCredit":false},{"lineNumber":873,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":874,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":875,"author":{"gitId":"-"},"content":" public Map\u003cString, Author\u003e getAuthorEmailsToAuthorMap() {","isFullCredit":false},{"lineNumber":876,"author":{"gitId":"-"},"content":" return authorConfig.getAuthorEmailsToAuthorMap();","isFullCredit":false},{"lineNumber":877,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":878,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":879,"author":{"gitId":"-"},"content":" public void setAuthorEmailsToAuthorMap(Map\u003cString, Author\u003e authorEmailsToAuthorMap) {","isFullCredit":false},{"lineNumber":880,"author":{"gitId":"-"},"content":" authorConfig.setAuthorEmailsToAuthorMap(authorEmailsToAuthorMap);","isFullCredit":false},{"lineNumber":881,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":882,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":883,"author":{"gitId":"-"},"content":" public void clearAuthorDetailsToAuthorMap() {","isFullCredit":false},{"lineNumber":884,"author":{"gitId":"-"},"content":" authorConfig.clearAuthorDetailsToAuthorMap();","isFullCredit":false},{"lineNumber":885,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":886,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":887,"author":{"gitId":"-"},"content":" public void setFormats(List\u003cFileType\u003e formats) {","isFullCredit":false},{"lineNumber":888,"author":{"gitId":"-"},"content":" fileTypeManager.setFormats(formats);","isFullCredit":false},{"lineNumber":889,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":890,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":891,"author":{"gitId":"-"},"content":" private void setGroups(List\u003cFileType\u003e groups) {","isFullCredit":false},{"lineNumber":892,"author":{"gitId":"-"},"content":" fileTypeManager.setGroups(groups);","isFullCredit":false},{"lineNumber":893,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":894,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":895,"author":{"gitId":"-"},"content":" public void addGroups(List\u003cFileType\u003e groups) {","isFullCredit":false},{"lineNumber":896,"author":{"gitId":"-"},"content":" fileTypeManager.addGroups(groups);","isFullCredit":false},{"lineNumber":897,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":898,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":899,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":900,"author":{"gitId":"-"},"content":" * Returns all format or group types (depending on whether the user has specified a custom grouping).","isFullCredit":false},{"lineNumber":901,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":902,"author":{"gitId":"-"},"content":" public List\u003cFileType\u003e getAllFileTypes() {","isFullCredit":false},{"lineNumber":903,"author":{"gitId":"-"},"content":" return fileTypeManager.getAllFileTypes();","isFullCredit":false},{"lineNumber":904,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":905,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":906,"author":{"gitId":"-"},"content":" public FileType getFileType(String fileName) {","isFullCredit":false},{"lineNumber":907,"author":{"gitId":"-"},"content":" return fileTypeManager.getFileType(fileName);","isFullCredit":false},{"lineNumber":908,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":909,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":910,"author":{"gitId":"-"},"content":" public FileTypeManager getFileTypeManager() {","isFullCredit":false},{"lineNumber":911,"author":{"gitId":"-"},"content":" return fileTypeManager;","isFullCredit":false},{"lineNumber":912,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":913,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":914,"author":{"gitId":"-"},"content":" public LocalDateTime getSinceDate() {","isFullCredit":false},{"lineNumber":915,"author":{"gitId":"-"},"content":" return sinceDate;","isFullCredit":false},{"lineNumber":916,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":917,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":918,"author":{"gitId":"-"},"content":" public void setSinceDate(LocalDateTime sinceDate) {","isFullCredit":false},{"lineNumber":919,"author":{"gitId":"-"},"content":" this.sinceDate \u003d sinceDate;","isFullCredit":false},{"lineNumber":920,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":921,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":922,"author":{"gitId":"-"},"content":" public LocalDateTime getUntilDate() {","isFullCredit":false},{"lineNumber":923,"author":{"gitId":"-"},"content":" return untilDate;","isFullCredit":false},{"lineNumber":924,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":925,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":926,"author":{"gitId":"-"},"content":" public void setUntilDate(LocalDateTime untilDate) {","isFullCredit":false},{"lineNumber":927,"author":{"gitId":"-"},"content":" this.untilDate \u003d untilDate;","isFullCredit":false},{"lineNumber":928,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":929,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":930,"author":{"gitId":"-"},"content":" public ZoneId getZoneId() {","isFullCredit":false},{"lineNumber":931,"author":{"gitId":"-"},"content":" return zoneId;","isFullCredit":false},{"lineNumber":932,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":933,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":934,"author":{"gitId":"-"},"content":" public void setZoneId(ZoneId zoneId) {","isFullCredit":false},{"lineNumber":935,"author":{"gitId":"-"},"content":" this.zoneId \u003d zoneId;","isFullCredit":false},{"lineNumber":936,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":937,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":938,"author":{"gitId":"-"},"content":" public void setAuthorDisplayName(Author author, String displayName) {","isFullCredit":false},{"lineNumber":939,"author":{"gitId":"-"},"content":" authorConfig.setAuthorDisplayName(author, displayName);","isFullCredit":false},{"lineNumber":940,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":941,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":942,"author":{"gitId":"-"},"content":" public void addAuthorNamesToAuthorMapEntry(Author author, String name) {","isFullCredit":false},{"lineNumber":943,"author":{"gitId":"-"},"content":" authorConfig.addAuthorNamesToAuthorMapEntry(author, name);","isFullCredit":false},{"lineNumber":944,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":945,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":946,"author":{"gitId":"-"},"content":" public void addAuthorNamesToAuthorMapEntry(Author author, List\u003cString\u003e names) {","isFullCredit":false},{"lineNumber":947,"author":{"gitId":"-"},"content":" authorConfig.addAuthorNamesToAuthorMapEntry(author, names);","isFullCredit":false},{"lineNumber":948,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":949,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":950,"author":{"gitId":"-"},"content":" public void addAuthorEmailsToAuthorMapEntry(Author author, List\u003cString\u003e emails) {","isFullCredit":false},{"lineNumber":951,"author":{"gitId":"-"},"content":" authorConfig.addAuthorEmailsToAuthorMapEntry(author, emails);","isFullCredit":false},{"lineNumber":952,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":953,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":954,"author":{"gitId":"-"},"content":" public String getDisplayName() {","isFullCredit":false},{"lineNumber":955,"author":{"gitId":"-"},"content":" return displayName;","isFullCredit":false},{"lineNumber":956,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":957,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":958,"author":{"gitId":"-"},"content":" public String getRepoName() {","isFullCredit":false},{"lineNumber":959,"author":{"gitId":"-"},"content":" return location.getRepoName();","isFullCredit":false},{"lineNumber":960,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":961,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":962,"author":{"gitId":"-"},"content":" public String getOutputFolderName() {","isFullCredit":false},{"lineNumber":963,"author":{"gitId":"-"},"content":" return outputFolderName;","isFullCredit":false},{"lineNumber":964,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":965,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":966,"author":{"gitId":"-"},"content":" public void setStandaloneConfigIgnored(boolean isStandaloneConfigIgnored) {","isFullCredit":false},{"lineNumber":967,"author":{"gitId":"-"},"content":" this.isStandaloneConfigIgnored \u003d isStandaloneConfigIgnored;","isFullCredit":false},{"lineNumber":968,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":969,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":970,"author":{"gitId":"-"},"content":" public void setFileSizeLimitIgnored(boolean isFileSizeLimitIgnored) {","isFullCredit":false},{"lineNumber":971,"author":{"gitId":"-"},"content":" this.isFileSizeLimitIgnored \u003d isFileSizeLimitIgnored;","isFullCredit":false},{"lineNumber":972,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":973,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":974,"author":{"gitId":"-"},"content":" public RepoLocation getLocation() {","isFullCredit":false},{"lineNumber":975,"author":{"gitId":"-"},"content":" return location;","isFullCredit":false},{"lineNumber":976,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":977,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":978,"author":{"gitId":"-"},"content":" public String getOrganization() {","isFullCredit":false},{"lineNumber":979,"author":{"gitId":"-"},"content":" return location.getOrganization();","isFullCredit":false},{"lineNumber":980,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":981,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":982,"author":{"gitId":"-"},"content":" public boolean isStandaloneConfigIgnored() {","isFullCredit":false},{"lineNumber":983,"author":{"gitId":"-"},"content":" return isStandaloneConfigIgnored;","isFullCredit":false},{"lineNumber":984,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":985,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":986,"author":{"gitId":"-"},"content":" public boolean isFileSizeLimitIgnored() {","isFullCredit":false},{"lineNumber":987,"author":{"gitId":"-"},"content":" return isFileSizeLimitIgnored;","isFullCredit":false},{"lineNumber":988,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":989,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":990,"author":{"gitId":"-"},"content":" public boolean isIgnoredFileAnalysisSkipped() {","isFullCredit":false},{"lineNumber":991,"author":{"gitId":"-"},"content":" return isIgnoredFileAnalysisSkipped;","isFullCredit":false},{"lineNumber":992,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":993,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":994,"author":{"gitId":"-"},"content":" public boolean isFormatsOverriding() {","isFullCredit":false},{"lineNumber":995,"author":{"gitId":"-"},"content":" return isFormatsOverriding;","isFullCredit":false},{"lineNumber":996,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":997,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":998,"author":{"gitId":"-"},"content":" public boolean isIgnoreGlobListOverriding() {","isFullCredit":false},{"lineNumber":999,"author":{"gitId":"-"},"content":" return isIgnoreGlobListOverriding;","isFullCredit":false},{"lineNumber":1000,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1001,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":1002,"author":{"gitId":"-"},"content":" public boolean isIgnoreCommitListOverriding() {","isFullCredit":false},{"lineNumber":1003,"author":{"gitId":"-"},"content":" return isIgnoreCommitListOverriding;","isFullCredit":false},{"lineNumber":1004,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1005,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":1006,"author":{"gitId":"-"},"content":" public boolean isFileSizeLimitOverriding() {","isFullCredit":false},{"lineNumber":1007,"author":{"gitId":"-"},"content":" return isFileSizeLimitOverriding;","isFullCredit":false},{"lineNumber":1008,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1009,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":1010,"author":{"gitId":"-"},"content":" public boolean isFindingPreviousAuthorsPerformed() {","isFullCredit":false},{"lineNumber":1011,"author":{"gitId":"-"},"content":" return isFindingPreviousAuthorsPerformed;","isFullCredit":false},{"lineNumber":1012,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1013,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":1014,"author":{"gitId":"-"},"content":" public AuthorConfiguration getAuthorConfig() {","isFullCredit":false},{"lineNumber":1015,"author":{"gitId":"-"},"content":" return authorConfig;","isFullCredit":false},{"lineNumber":1016,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1017,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":400,"-":617}},{"path":"src/main/java/reposense/model/RepoLocation.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.util.FileUtil.isValidPath;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.net.URI;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.net.URISyntaxException;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.FileSystems;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.regex.Matcher;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.git.GitRemote;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidLocationException;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import reposense.report.ErrorSummary;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.util.SystemUtil;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" * Represents a repository location.","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"public class RepoLocation {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" protected static final String UNSUPPORTED_DOMAIN_NAME \u003d \"NOT_RECOGNIZED\";","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final String MESSAGE_INVALID_LOCATION \u003d \"%s is an invalid location.\";","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final String MESSAGE_INVALID_REMOTE_URL \u003d \"%s is an invalid remote URL.\";","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private static final String REPO_NAME_REGEX \u003d \"(?\u003crepoName\u003e[^/]+?)(/?\\\\.git)?/?\";","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" private static final String PATH_TO_REPO_REGEX \u003d \"(?\u003cpath\u003e.*?)/?\" + REPO_NAME_REGEX;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private static final Pattern GIT_REPOSITORY_LOCATION_PATTERN \u003d","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" Pattern.compile(\"^(ssh|git|https?|ftps?)://(?\u003cdomain\u003e[^/]*?)/\" + PATH_TO_REPO_REGEX + \"$\");","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" private static final Pattern SCP_LIKE_SSH_REPOSITORY_LOCATION_PATTERN \u003d","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" Pattern.compile(\"^(.*@)?(?\u003cdomain\u003e.*?):(?\u003cpath\u003e[^/].*?)??/??\" + REPO_NAME_REGEX + \"$\");","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private static final Pattern LOCAL_REPOSITORY_NON_WINDOWS_LOCATION_PATTERN \u003d","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" Pattern.compile(\"^(file://)?\" + PATH_TO_REPO_REGEX + \"$\");","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private static final Pattern LOCAL_REPOSITORY_WINDOWS_LOCATION_PATTERN \u003d","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" Pattern.compile(\"^\" + PATH_TO_REPO_REGEX.replaceAll(\"/\", \"\\\\\\\\\\\\\\\\\") + \"$\");","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" private static final Pattern DOMAIN_NAME_PATTERN \u003d Pattern.compile(\"^(ww.\\\\.)?+(.*@)?(?\u003cdomainName\u003e[^.]+)\\\\..+$\");","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" private static final String GROUP_REPO_NAME \u003d \"repoName\";","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" private static final String GROUP_PATH \u003d \"path\";","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" private static final String GROUP_DOMAIN_NAME \u003d \"domainName\";","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" private static final String GROUP_DOMAIN \u003d \"domain\";","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" private static final String PATH_SEPARATOR_REPLACEMENT \u003d \"-\";","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" // Used for remote link generation (serialized)","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" private final String location;","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" private final String repoName;","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" private final String organization;","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" private final String domainName;","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" // Used for generation of local repository report output directory","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" private final transient String outputFolderRepoName;","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" private final transient String outputFolderOrganization;","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" * Creates {@link RepoLocation} based on the {@code location}, which is represented by a {@code URL}","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" * or {@link Path}.","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" * @throws InvalidLocationException if {@code location} cannot be represented by a {@code URL} or {@link Path}.","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" public RepoLocation(String location) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" if (SystemUtil.isWindows()) {","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" location \u003d StringsUtil.removeTrailingBackslash(location);","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" this.location \u003d location;","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" String[] remoteRepoNameAndOrg;","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" String[] outputFolderRepoNameAndOrg;","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" if (location.isEmpty()) {","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" remoteRepoNameAndOrg \u003d new String[] {\"\", \"\", UNSUPPORTED_DOMAIN_NAME};","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" outputFolderRepoNameAndOrg \u003d remoteRepoNameAndOrg;","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" } else if (isLocalRepo(location)) {","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" outputFolderRepoNameAndOrg \u003d getLocalRepoNameAndOrg(location);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" Map\u003cString, String\u003e remotes \u003d GitRemote.getRemotes(location);","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" String newLocation \u003d GitRemote.getAvailableRemoteLocation(remotes).orElse(location);","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" remoteRepoNameAndOrg \u003d remotes.size() \u003d\u003d 0","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" ? outputFolderRepoNameAndOrg","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" : getRemoteRepoNameAndOrg(newLocation);","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" remoteRepoNameAndOrg \u003d getRemoteRepoNameAndOrg(location);","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" outputFolderRepoNameAndOrg \u003d remoteRepoNameAndOrg;","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" this.repoName \u003d remoteRepoNameAndOrg[0];","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" this.organization \u003d remoteRepoNameAndOrg[1];","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" this.domainName \u003d remoteRepoNameAndOrg[2];","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" this.outputFolderRepoName \u003d outputFolderRepoNameAndOrg[0];","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" this.outputFolderOrganization \u003d outputFolderRepoNameAndOrg[1];","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" public boolean isEmpty() {","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" return location.isEmpty();","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" public String getRepoName() {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" return outputFolderRepoName;","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" public String getOrganization() {","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" return outputFolderOrganization;","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" public String getDomainName() {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" return domainName;","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" * Returns true if {@code repoArgument} is a valid local repository argument.","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" * This implementation follows directly from the {@code git clone}","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" * \u003ca href\u003d\"https://git-scm.com/docs/git-clone#_git_urls\"\u003especification\u003c/a\u003e.","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" public static boolean isLocalRepo(String repoArgument) {","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" if (!repoArgument.contains(\":\")) {","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" boolean hasSlashBeforeFirstColon \u003d repoArgument.split(\":\", 2)[0].contains(\"/\");","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" if (hasSlashBeforeFirstColon) {","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" // checks if it is a URL file protocol","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" String urlProtocol \u003d repoArgument.split(\"://\", 2)[0];","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" if (urlProtocol.equals(\"file\")) {","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" // catch disk drive arguments such as C:\\","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" if (SystemUtil.isWindows() \u0026\u0026 isValidPath(repoArgument)) {","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" * Returns a best-guess repo name and organization from the given local repo {@code location}.","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" * The return is a length-3 string array with the repo name at index 0, organization at index 1","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" * and domain name (unsupported domain) at index 2.","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" * @throws InvalidLocationException if the location specified is not a proper local repository.","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" private String[] getLocalRepoNameAndOrg(String location) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" boolean isWindows \u003d SystemUtil.isWindows();","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" if (isWindows) {","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" location \u003d location.replaceAll(\"file://\", \"\");","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" location \u003d location.replaceAll(\"/\", \"\\\\\\\\\");","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" location \u003d location.replaceAll(\"[|:]\", \"-\");","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" Pattern localRepoPattern \u003d isWindows","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" ? LOCAL_REPOSITORY_WINDOWS_LOCATION_PATTERN","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" : LOCAL_REPOSITORY_NON_WINDOWS_LOCATION_PATTERN;","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" Matcher localRepoMatcher \u003d localRepoPattern.matcher(location);","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" if (!localRepoMatcher.matches()) {","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" ErrorSummary.getInstance().addErrorMessage(location,","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" String.format(MESSAGE_INVALID_LOCATION, location));","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" throw new InvalidLocationException(String.format(MESSAGE_INVALID_LOCATION, location));","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" String tempRepoName \u003d localRepoMatcher.group(GROUP_REPO_NAME);","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" String tempOrganization \u003d getOrganizationFromMatcher(localRepoMatcher);","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" return new String[] {tempRepoName, tempOrganization, UNSUPPORTED_DOMAIN_NAME};","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" * Returns a best-guess repo name, organization and domain name from the given remote repo","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" * {@code location}. The return is a length-3 string array with the repo name at index 0,","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" * organization at index 1 and domain name at index 2.","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" * @throws InvalidLocationException if the location specified is not a proper remote repository.","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" private String[] getRemoteRepoNameAndOrg(String location) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" Matcher remoteRepoMatcher \u003d GIT_REPOSITORY_LOCATION_PATTERN.matcher(location);","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" Matcher sshRepoMatcher \u003d SCP_LIKE_SSH_REPOSITORY_LOCATION_PATTERN.matcher(location);","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" boolean isNormalUrl \u003d remoteRepoMatcher.matches();","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" if (isNormalUrl) {","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" new URI(location);","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" } catch (URISyntaxException e) {","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" ErrorSummary.getInstance().addErrorMessage(location,","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" String.format(MESSAGE_INVALID_REMOTE_URL, location));","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" throw new InvalidLocationException(String.format(MESSAGE_INVALID_REMOTE_URL, location));","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" boolean isValidRemoteRepoUrl \u003d remoteRepoMatcher.matches() || sshRepoMatcher.matches();","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" if (!isValidRemoteRepoUrl) {","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" ErrorSummary.getInstance().addErrorMessage(location,","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" String.format(MESSAGE_INVALID_REMOTE_URL, location));","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" throw new InvalidLocationException(String.format(MESSAGE_INVALID_REMOTE_URL, location));","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" // priority for standard URL matches over SSH as SSH matcher will normally also match standard URL","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" Matcher actualMatcher \u003d remoteRepoMatcher.matches() ? remoteRepoMatcher : sshRepoMatcher;","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" String tempRepoName \u003d actualMatcher.group(GROUP_REPO_NAME);","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" String tempOrganization \u003d getOrganizationFromMatcher(actualMatcher);","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" return new String[] {tempRepoName, tempOrganization,","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" getDomainNameFromDomain(actualMatcher.group(GROUP_DOMAIN))};","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" * Returns the organization string from the {@code matcher} if one exists.","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" * If no match was found for it, returns an empty string instead.","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" private static String getOrganizationFromMatcher(Matcher matcher) {","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" return Optional.ofNullable(matcher.group(GROUP_PATH))","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" .map(s -\u003e Paths.get(s).normalize().toString())","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" .map(s -\u003e s.replaceAll(Pattern.quote(FileSystems.getDefault().getSeparator()),","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" PATH_SEPARATOR_REPLACEMENT))","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" .orElse(\"\");","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" * Returns the domain name of the URL from the {@code matcher} if it is one of the recognised ones.","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" * Returns {@code UNRECOGNISED_DOMAIN_NAME} if it is a local repo or not recognised.","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" * @throws InvalidLocationException if the domain specified is not a proper domain name.","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" public static String getDomainNameFromDomain(String domain) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" Matcher domainNameMatcher \u003d DOMAIN_NAME_PATTERN.matcher(domain);","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" if (!domainNameMatcher.matches()) {","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" throw new InvalidLocationException(MESSAGE_INVALID_REMOTE_URL);","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" String domainName \u003d domainNameMatcher.group(GROUP_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" return isSupportedDomainName(domainName)","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" ? domainName","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" : UNSUPPORTED_DOMAIN_NAME;","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" private static boolean isSupportedDomainName(String domainName) {","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" return SupportedDomainUrlMap.isSupportedDomainName(domainName);","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" public String toString() {","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" return location;","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" public boolean equals(Object other) {","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" // short circuit if same object","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" if (this \u003d\u003d other) {","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" // instanceof handles null","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" if (!(other instanceof RepoLocation)) {","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" RepoLocation otherLocation \u003d (RepoLocation) other;","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" return this.location.equals(otherLocation.location)","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" \u0026\u0026 this.repoName.equals(otherLocation.repoName)","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" \u0026\u0026 this.organization.equals(otherLocation.organization)","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" \u0026\u0026 this.domainName.equals(otherLocation.domainName)","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" \u0026\u0026 this.outputFolderRepoName.equals(otherLocation.outputFolderRepoName)","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" \u0026\u0026 this.outputFolderOrganization.equals(otherLocation.outputFolderOrganization);","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" public int hashCode() {","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" return location.hashCode();","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":271}},{"path":"src/main/java/reposense/model/RunConfiguration.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidCsvException;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidHeaderException;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.ParseException;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" * Interface to get configurations for current RepoSense run.","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"public interface RunConfiguration {","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e getRepoConfigurations()","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" throws ParseException, IOException, InvalidCsvException, InvalidHeaderException;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":3,"-":15}},{"path":"src/main/java/reposense/parser/ArgsParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.File;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import com.google.gson.JsonSyntaxException;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.ArgumentParsers;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.helper.HelpScreenException;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.impl.Arguments;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.impl.action.HelpArgumentAction;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.impl.action.VersionArgumentAction;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentGroup;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.FeatureControl;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.MutuallyExclusiveGroup;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Namespace;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"import reposense.RepoSense;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.model.BlurbMap;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"import reposense.model.CliArguments;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"import reposense.model.FileType;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"import reposense.model.ReportConfiguration;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidMarkdownException;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.ParseException;","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.AlphanumericArgumentType;","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.AnalysisThreadsArgumentType;","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.AssetsFolderArgumentType;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.CloningThreadsArgumentType;","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.ConfigFolderArgumentType;","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.OutputFolderArgumentType;","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.PeriodArgumentType;","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.ReportFolderArgumentType;","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.SinceDateArgumentType;","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.UntilDateArgumentType;","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.ZoneIdArgumentType;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"import reposense.util.TimeUtil;","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" * Verifies and parses a string-formatted date to a {@link CliArguments} object.","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"public class ArgsParser {","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" public static final String DEFAULT_REPORT_NAME \u003d \"reposense-report\";","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" public static final int DEFAULT_NUM_CLONING_THREADS \u003d 4;","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" public static final int DEFAULT_NUM_ANALYSIS_THREADS \u003d Runtime.getRuntime().availableProcessors();","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" public static final boolean DEFAULT_IS_TEST_MODE \u003d false;","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" public static final boolean DEFAULT_SHOULD_FRESH_CLONE \u003d false;","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" public static final double DEFAULT_ORIGINALITY_THRESHOLD \u003d 0.51;","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" public static final String[] HELP_FLAGS \u003d new String[] {\"--help\", \"-h\"};","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" public static final String[] CONFIG_FLAGS \u003d new String[] {\"--config\", \"-c\"};","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" public static final String[] REPO_FLAGS \u003d new String[] {\"--repo\", \"--repos\", \"-r\"};","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" public static final String[] VIEW_FLAGS \u003d new String[] {\"--view\", \"-v\"};","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" public static final String[] OUTPUT_FLAGS \u003d new String[] {\"--output\", \"-o\"};","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" public static final String[] ASSETS_FLAGS \u003d new String[] {\"--assets\", \"-a\"};","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" public static final String[] SINCE_FLAGS \u003d new String[] {\"--since\", \"-s\"};","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" public static final String[] UNTIL_FLAGS \u003d new String[] {\"--until\", \"-u\"};","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" public static final String[] PERIOD_FLAGS \u003d new String[] {\"--period\", \"-p\"};","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" public static final String[] SHALLOW_CLONING_FLAGS \u003d new String[] {\"--shallow-cloning\", \"-S\"};","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" public static final String[] FORMAT_FLAGS \u003d new String[] {\"--formats\", \"-f\"};","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" public static final String[] IGNORE_CONFIG_FLAGS \u003d new String[] {\"--ignore-standalone-config\", \"-i\"};","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" public static final String[] IGNORE_SIZELIMIT_FLAGS \u003d new String[] {\"--ignore-filesize-limit\", \"-I\"};","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" public static final String[] TIMEZONE_FLAGS \u003d new String[] {\"--timezone\", \"-t\"};","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" public static final String[] VERSION_FLAGS \u003d new String[] {\"--version\", \"-V\"};","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" public static final String[] LAST_MODIFIED_DATE_FLAGS \u003d new String[] {\"--last-modified-date\", \"-l\"};","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" public static final String[] FIND_PREVIOUS_AUTHORS_FLAGS \u003d new String[] {\"--find-previous-authors\", \"-F\"};","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" public static final String[] CLONING_THREADS_FLAG \u003d new String[] {\"--cloning-threads\"};","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" public static final String[] ANALYSIS_THREADS_FLAG \u003d new String[] {\"--analysis-threads\"};","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" public static final String[] TEST_MODE_FLAG \u003d new String[] {\"--test-mode\"};","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" public static final String[] FRESH_CLONING_FLAG \u003d new String[] {\"--fresh-cloning\"};","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" public static final String[] ANALYZE_AUTHORSHIP_FLAGS \u003d new String[] {\"--analyze-authorship\", \"-A\"};","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" public static final String[] ORIGINALITY_THRESHOLD_FLAGS \u003d new String[] {\"--originality-threshold\", \"-ot\"};","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(ArgsParser.class);","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" private static final String PROGRAM_USAGE \u003d \"java -jar RepoSense.jar\";","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" private static final String PROGRAM_DESCRIPTION \u003d","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" \"RepoSense is a contribution analysis tool for Git repositories.\";","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" private static final String MESSAGE_HEADER_MUTEX \u003d \"mutual exclusive arguments\";","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" private static final String MESSAGE_HEADER_TESTING \u003d \"test mode arguments\";","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" private static final String MESSAGE_HAVE_SINCE_DATE_UNTIL_DATE_AND_PERIOD \u003d","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" \"\\\"Since Date\\\", \\\"Until Date\\\", and \\\"Period\\\" cannot be applied together.\";","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" private static final String MESSAGE_USING_DEFAULT_CONFIG_PATH \u003d","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" \"Config path not provided, using the config folder as default.\";","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" private static final String MESSAGE_INVALID_CONFIG_PATH \u003d \"%s is malformed.\";","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" private static final String MESSAGE_INVALID_CONFIG_JSON \u003d \"%s Ignoring the report config provided.\";","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"asdfghjkxd"},"content":" private static final String MESSAGE_INVALID_MARKDOWN_BLURBS \u003d \"%s Ignoring the blurb file provided.\";","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" private static final String MESSAGE_SINCE_D1_WITH_PERIOD \u003d \"You may be using --since d1 with the --period flag. \"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" + \"This may result in an incorrect date range being analysed.\";","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" private static final String MESSAGE_SINCE_DATE_LATER_THAN_UNTIL_DATE \u003d","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" \"\\\"Since Date\\\" cannot be later than \\\"Until Date\\\".\";","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" private static final String MESSAGE_SINCE_DATE_LATER_THAN_TODAY_DATE \u003d","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" \"\\\"Since Date\\\" must not be later than today\u0027s date.\";","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" private static final Path EMPTY_PATH \u003d Paths.get(\"\");","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" private static final Path DEFAULT_CONFIG_PATH \u003d Paths.get(System.getProperty(\"user.dir\")","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" + File.separator + \"config\" + File.separator);","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" private static final Path DEFAULT_ASSETS_PATH \u003d Paths.get(System.getProperty(\"user.dir\")","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" + File.separator + \"assets\" + File.separator);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" private static ArgumentParser getArgumentParser() {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" ArgumentParser parser \u003d ArgumentParsers","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" .newFor(PROGRAM_USAGE)","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" .addHelp(false)","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" .build()","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" .description(PROGRAM_DESCRIPTION);","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" MutuallyExclusiveGroup mutexParser \u003d parser","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" .addMutuallyExclusiveGroup(MESSAGE_HEADER_MUTEX)","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" .required(false);","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" MutuallyExclusiveGroup mutexParser2 \u003d parser","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" .addMutuallyExclusiveGroup(MESSAGE_HEADER_MUTEX)","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" .required(false);","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" ArgumentGroup argumentGroup \u003d parser","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" .addArgumentGroup(MESSAGE_HEADER_TESTING);","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" // Boolean flags","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" parser.addArgument(HELP_FLAGS)","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" .help(\"Show help message.\")","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" .action(new HelpArgumentAction());","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" parser.version(\"RepoSense \" + RepoSense.getVersion());","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" parser.addArgument(VERSION_FLAGS)","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" .help(\"Show the version of RepoSense.\")","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" .action(new VersionArgumentAction());","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" parser.addArgument(IGNORE_CONFIG_FLAGS)","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" .dest(IGNORE_CONFIG_FLAGS[0])","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" .help(\"A flag to ignore the standalone config file in the repo.\");","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" parser.addArgument(IGNORE_SIZELIMIT_FLAGS)","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" .dest(IGNORE_SIZELIMIT_FLAGS[0])","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" .help(\"A flag to ignore the filesize limit for analyzed files.\");","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" parser.addArgument(VIEW_FLAGS)","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" .dest(VIEW_FLAGS[0])","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" .nargs(\"?\")","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" .metavar(\"PATH\")","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" .type(new ReportFolderArgumentType())","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" .setConst(EMPTY_PATH)","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" .help(\"Starts a server to display the report in the provided directory. \"","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" + \"If used as a flag (with no argument), \"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" + \"generates a report and automatically displays the report.\");","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" parser.addArgument(OUTPUT_FLAGS)","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" .dest(OUTPUT_FLAGS[0])","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" .metavar(\"PATH\")","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" .type(new OutputFolderArgumentType())","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" .setDefault(Paths.get(ArgsParser.DEFAULT_REPORT_NAME))","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" .help(\"The directory to output the report folder, reposense-report. \"","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" + \"If not provided, the report folder will be created in the current working directory.\");","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" parser.addArgument(ASSETS_FLAGS)","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" .dest(ASSETS_FLAGS[0])","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" .metavar(\"PATH\")","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" .type(new AssetsFolderArgumentType())","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" .setDefault(DEFAULT_ASSETS_PATH)","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" .help(\"The directory to place assets files to customize report generation. \"","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" + \"If not provided, the assets folder in the current working directory will be used.\");","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" parser.addArgument(SINCE_FLAGS)","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" .dest(SINCE_FLAGS[0])","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" .metavar(\"dd/MM/yyyy\")","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" .type(new SinceDateArgumentType())","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" .setDefault(Optional.empty())","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" .help(\"The date to start filtering.\");","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" parser.addArgument(UNTIL_FLAGS)","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" .dest(UNTIL_FLAGS[0])","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" .metavar(\"dd/MM/yyyy\")","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" .type(new UntilDateArgumentType())","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" .setDefault(Optional.empty())","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" .help(\"The date to stop filtering.\");","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" parser.addArgument(PERIOD_FLAGS)","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" .dest(PERIOD_FLAGS[0])","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" .metavar(\"PERIOD\")","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" .type(new PeriodArgumentType())","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" .setDefault(Optional.empty())","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" .help(\"The number of days of the filtering window.\");","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" parser.addArgument(FORMAT_FLAGS)","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" .dest(FORMAT_FLAGS[0])","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" .nargs(\"*\")","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" .metavar(\"FORMAT\")","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" .type(new AlphanumericArgumentType())","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" .setDefault(Collections.emptyList())","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" .help(\"The alphanumeric file formats to process.\\n\"","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" + \"If not provided, default file formats will be used.\\n\"","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" + \"Please refer to userguide for more information.\");","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" parser.addArgument(TIMEZONE_FLAGS)","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" .dest(TIMEZONE_FLAGS[0])","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" .metavar(\"ZONE_ID[±hh[mm]]\")","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" .type(new ZoneIdArgumentType())","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" .setDefault(ZoneId.systemDefault())","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" .help(\"The timezone to use for the generated report. \"","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" + \"One kind of valid timezones is relative to UTC. E.g. UTC, UTC+08, UTC-1030. \\n\"","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" + \"If not provided, system default timezone will be used.\");","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" parser.addArgument(FIND_PREVIOUS_AUTHORS_FLAGS)","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" .dest(FIND_PREVIOUS_AUTHORS_FLAGS[0])","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" .help(\"A flag to make RepoSense utilize Git blame\u0027s ignore revisions functionality, RepoSense \"","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" + \"will attempt to blame the line changes caused by commits in the ignore commit list to the \"","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" + \"previous authors who altered those lines (if available)\");","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" parser.addArgument(ANALYZE_AUTHORSHIP_FLAGS)","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" .dest(ANALYZE_AUTHORSHIP_FLAGS[0])","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" .help(\"Performs further analysis to distinguish between partial and full credit attribution for \"","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" + \"lines of code assigned to the author. A darker background colour represents full credit, \"","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" + \"while a lighter background colour represents partial credit.\");","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" parser.addArgument(ORIGINALITY_THRESHOLD_FLAGS)","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" .dest(ORIGINALITY_THRESHOLD_FLAGS[0])","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" .metavar(\"(0.0 ~ 1.0)\")","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" .type(new OriginalityThresholdArgumentType())","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" .setDefault(DEFAULT_ORIGINALITY_THRESHOLD)","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" .help(\"Specifies the cut-off point for partial and full credit when further analysis of authorship \"","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" + \"is performed. Author will be given full credit if their contribution exceeds this \"","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" + \"threshold, else partial credit is given.\");","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" // Mutex flags - these will always be the last parameters in help message.","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" mutexParser.addArgument(CONFIG_FLAGS)","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" .dest(CONFIG_FLAGS[0])","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" .type(new ConfigFolderArgumentType())","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" .metavar(\"PATH\")","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" .setDefault(DEFAULT_CONFIG_PATH)","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" .help(\"The directory containing the config files.\"","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" + \"If not provided, the config files will be obtained from the config folder.\");","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" mutexParser.addArgument(REPO_FLAGS)","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" .nargs(\"+\")","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" .dest(REPO_FLAGS[0])","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" .metavar(\"LOCATION\")","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" .help(\"The remote Git host URLs or local directories to clone the repositories from.\");","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" mutexParser2.addArgument(LAST_MODIFIED_DATE_FLAGS)","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" .dest(LAST_MODIFIED_DATE_FLAGS[0])","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" .help(\"A flag to keep track of the last modified date of each line of code.\");","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" mutexParser2.addArgument(SHALLOW_CLONING_FLAGS)","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" .dest(SHALLOW_CLONING_FLAGS[0])","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" .help(\"A flag to make RepoSense employ Git\u0027s shallow cloning functionality, which can significantly \"","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" + \"reduce the time taken to clone large repositories. This flag should not be used for \"","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" + \"smaller repositories, where the .git file is smaller than 500 MB.\");","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" parser.addArgument(CLONING_THREADS_FLAG)","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" .dest(CLONING_THREADS_FLAG[0])","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" .type(new CloningThreadsArgumentType())","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" .setDefault(DEFAULT_NUM_CLONING_THREADS)","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" .help(FeatureControl.SUPPRESS);","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" parser.addArgument(ANALYSIS_THREADS_FLAG)","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" .dest(ANALYSIS_THREADS_FLAG[0])","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" .type(new AnalysisThreadsArgumentType())","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" .setDefault(DEFAULT_NUM_ANALYSIS_THREADS)","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" .help(FeatureControl.SUPPRESS);","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" // Testing flags","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" argumentGroup.addArgument(TEST_MODE_FLAG)","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" .dest(TEST_MODE_FLAG[0])","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" .help(\"Enables testing mode.\");","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" argumentGroup.addArgument(FRESH_CLONING_FLAG)","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" .dest(FRESH_CLONING_FLAG[0])","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" .help(\"Enables fresh cloning. Requires testing mode to be enabled.\");","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" return parser;","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":" * Parses the given string {@code args} to a {@link CliArguments} object.","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" * @throws HelpScreenException if given args contain the --help flag. Help message will be printed out","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" * by the {@link ArgumentParser} hence this is to signal to the caller that the program is safe to exit.","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" * @throws ParseException if the given string arguments fails to parse to a {@link CliArguments} object.","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" public static CliArguments parse(String[] args) throws HelpScreenException, ParseException {","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" ArgumentParser parser \u003d getArgumentParser();","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" Namespace results;","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" results \u003d parser.parseArgs(args);","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" } catch (HelpScreenException hse) {","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" throw hse;","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":" } catch (ArgumentParserException ape) {","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" throw new ParseException(getArgumentParser().formatUsage() + ape.getMessage() + \"\\n\");","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" Path configFolderPath \u003d results.get(CONFIG_FLAGS[0]);","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":" Path reportFolderPath \u003d results.get(VIEW_FLAGS[0]);","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":" Path outputFolderPath \u003d results.get(OUTPUT_FLAGS[0]);","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":" ZoneId zoneId \u003d results.get(TIMEZONE_FLAGS[0]);","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" Path assetsFolderPath \u003d results.get(ASSETS_FLAGS[0]);","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":" List\u003cString\u003e locations \u003d results.get(REPO_FLAGS[0]);","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":" List\u003cFileType\u003e formats \u003d FileType.convertFormatStringsToFileTypes(results.get(FORMAT_FLAGS[0]));","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" boolean isStandaloneConfigIgnored \u003d results.get(IGNORE_CONFIG_FLAGS[0]);","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" boolean isFileSizeLimitIgnored \u003d results.get(IGNORE_SIZELIMIT_FLAGS[0]);","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":" boolean shouldIncludeLastModifiedDate \u003d results.get(LAST_MODIFIED_DATE_FLAGS[0]);","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":" boolean shouldPerformShallowCloning \u003d results.get(SHALLOW_CLONING_FLAGS[0]);","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":" boolean shouldFindPreviousAuthors \u003d results.get(FIND_PREVIOUS_AUTHORS_FLAGS[0]);","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":" boolean isTestMode \u003d results.get(TEST_MODE_FLAG[0]);","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" boolean isAuthorshipAnalyzed \u003d results.get(ANALYZE_AUTHORSHIP_FLAGS[0]);","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":" double originalityThreshold \u003d results.get(ORIGINALITY_THRESHOLD_FLAGS[0]);","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":" int numCloningThreads \u003d results.get(CLONING_THREADS_FLAG[0]);","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" int numAnalysisThreads \u003d results.get(ANALYSIS_THREADS_FLAG[0]);","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" CliArguments.Builder cliArgumentsBuilder \u003d new CliArguments.Builder()","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" .configFolderPath(configFolderPath)","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" .reportDirectoryPath(reportFolderPath)","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":" .outputFilePath(outputFolderPath)","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":" .zoneId(zoneId)","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" .assetsFilePath(assetsFolderPath)","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":" .locations(locations)","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" .formats(formats)","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" .isStandaloneConfigIgnored(isStandaloneConfigIgnored)","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" .isFileSizeLimitIgnored(isFileSizeLimitIgnored)","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":" .isLastModifiedDateIncluded(shouldIncludeLastModifiedDate)","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" .isShallowCloningPerformed(shouldPerformShallowCloning)","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" .isFindingPreviousAuthorsPerformed(shouldFindPreviousAuthors)","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" .numCloningThreads(numCloningThreads)","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" .numAnalysisThreads(numAnalysisThreads)","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":" .isTestMode(isTestMode)","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":" .isAuthorshipAnalyzed(isAuthorshipAnalyzed)","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":" .originalityThreshold(originalityThreshold);","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" LogsManager.setLogFolderLocation(outputFolderPath);","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":" if (locations \u003d\u003d null \u0026\u0026 configFolderPath.equals(DEFAULT_CONFIG_PATH)) {","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":" logger.info(MESSAGE_USING_DEFAULT_CONFIG_PATH);","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":" addReportConfigToBuilder(cliArgumentsBuilder, results);","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"asdfghjkxd"},"content":" addBlurbMapToBuilder(cliArgumentsBuilder, results);","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":" addAnalysisDatesToBuilder(cliArgumentsBuilder, results);","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" boolean isViewModeOnly \u003d reportFolderPath !\u003d null","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":" \u0026\u0026 !reportFolderPath.equals(EMPTY_PATH)","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":" \u0026\u0026 configFolderPath.equals(DEFAULT_CONFIG_PATH)","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":" \u0026\u0026 locations \u003d\u003d null;","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":" cliArgumentsBuilder.isViewModeOnly(isViewModeOnly);","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"-"},"content":" boolean isAutomaticallyLaunching \u003d reportFolderPath !\u003d null;","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"-"},"content":" if (isAutomaticallyLaunching \u0026\u0026 !reportFolderPath.equals(EMPTY_PATH) \u0026\u0026 !isViewModeOnly) {","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"-"},"content":" logger.info(String.format(\"Ignoring argument \u0027%s\u0027 for --view.\", reportFolderPath.toString()));","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":" cliArgumentsBuilder.isAutomaticallyLaunching(isAutomaticallyLaunching);","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"-"},"content":" boolean shouldPerformFreshCloning \u003d isTestMode","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":" ? results.get(FRESH_CLONING_FLAG[0])","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" : DEFAULT_SHOULD_FRESH_CLONE;","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"-"},"content":" cliArgumentsBuilder.isFreshClonePerformed(shouldPerformFreshCloning);","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"-"},"content":" return cliArgumentsBuilder.build();","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":" * Adds the reportConfig field to the given {@code builder}.","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":" * @param builder Builder to be supplied with the reportConfig field.","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":" * @param results Parsed results of the user-supplied CLI arguments.","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"-"},"content":" private static void addReportConfigToBuilder(CliArguments.Builder builder, Namespace results) {","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"-"},"content":" ReportConfiguration reportConfig \u003d new ReportConfiguration();","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"-"},"content":" List\u003cString\u003e locations \u003d results.get(REPO_FLAGS[0]);","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" Path configFolderPath \u003d results.get(CONFIG_FLAGS[0]);","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"-"},"content":" // Report config is ignored if --repos is provided","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"-"},"content":" if (locations \u003d\u003d null) {","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"-"},"content":" Path reportConfigFilePath \u003d configFolderPath.resolve(ReportConfigJsonParser.REPORT_CONFIG_FILENAME);","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"-"},"content":" reportConfig \u003d new ReportConfigJsonParser().parse(reportConfigFilePath);","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":" } catch (JsonSyntaxException jse) {","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_INVALID_CONFIG_PATH, reportConfigFilePath));","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"-"},"content":" } catch (IllegalArgumentException iae) {","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_INVALID_CONFIG_JSON, iae.getMessage()));","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"-"},"content":" } catch (IOException ioe) {","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"-"},"content":" // IOException thrown as report-config.json is not found.","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"-"},"content":" // Ignore exception as the file is optional.","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"-"},"content":" builder.reportConfiguration(reportConfig);","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"asdfghjkxd"},"content":" * Adds the blurbMap field to the given {@code builder}.","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"asdfghjkxd"},"content":" * @param builder Builder to be supplied with the reportConfig field.","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"asdfghjkxd"},"content":" * @param results Parsed results of the user-supplied CLI arguments.","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"asdfghjkxd"},"content":" private static void addBlurbMapToBuilder(CliArguments.Builder builder, Namespace results) {","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap blurbMap \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"asdfghjkxd"},"content":" Path configFolderPath \u003d results.get(CONFIG_FLAGS[0]);","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"asdfghjkxd"},"content":" // Blurbs are parsed regardless","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"asdfghjkxd"},"content":" Path blurbConfigPath \u003d configFolderPath.resolve(BlurbMarkdownParser.DEFAULT_BLURB_FILENAME);","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"asdfghjkxd"},"content":" try {","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"asdfghjkxd"},"content":" blurbMap \u003d new BlurbMarkdownParser(blurbConfigPath).parse();","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"asdfghjkxd"},"content":" } catch (InvalidMarkdownException ex) {","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"asdfghjkxd"},"content":" logger.warning(String.format(MESSAGE_INVALID_MARKDOWN_BLURBS, ex.getMessage()));","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"asdfghjkxd"},"content":" } catch (IOException ioe) {","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"asdfghjkxd"},"content":" // IOException thrown as blurbs.md is not found.","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"asdfghjkxd"},"content":" // Ignore exception as the file is optional.","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"asdfghjkxd"},"content":" builder.blurbMap(blurbMap);","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"-"},"content":" * Adds the sinceDate and untilDate fields for analysis to the given {@code builder}.","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"-"},"content":" * @param builder Builder to be supplied with the sinceDate and untilDate fields","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"-"},"content":" * @param results Parsed results of the user-supplied CLI arguments.","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"-"},"content":" * @throws ParseException if all of sinceDate, untilDate and (analysis) period is provided","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"-"},"content":" * or if the sinceDate is invalid.","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"-"},"content":" private static void addAnalysisDatesToBuilder(CliArguments.Builder builder, Namespace results)","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"-"},"content":" throws ParseException {","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"-"},"content":" ZoneId zoneId \u003d results.get(TIMEZONE_FLAGS[0]);","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"-"},"content":" Optional\u003cLocalDateTime\u003e cliSinceDate \u003d results.get(SINCE_FLAGS[0]);","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"-"},"content":" Optional\u003cLocalDateTime\u003e cliUntilDate \u003d results.get(UNTIL_FLAGS[0]);","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"-"},"content":" Optional\u003cInteger\u003e cliPeriod \u003d results.get(PERIOD_FLAGS[0]);","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"-"},"content":" boolean isSinceDateProvided \u003d cliSinceDate.isPresent();","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"-"},"content":" boolean isUntilDateProvided \u003d cliUntilDate.isPresent();","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"-"},"content":" boolean isPeriodProvided \u003d cliPeriod.isPresent();","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"-"},"content":" if (isSinceDateProvided \u0026\u0026 isUntilDateProvided \u0026\u0026 isPeriodProvided) {","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"-"},"content":" throw new ParseException(MESSAGE_HAVE_SINCE_DATE_UNTIL_DATE_AND_PERIOD);","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"-"},"content":" LocalDateTime sinceDate;","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"-"},"content":" LocalDateTime untilDate;","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"-"},"content":" boolean isUsingArbitraryDate \u003d false;","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"-"},"content":" LocalDateTime currentDate \u003d TimeUtil.getCurrentDate(zoneId);","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"-"},"content":" if (isSinceDateProvided) {","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"-"},"content":" sinceDate \u003d TimeUtil.getSinceDate(cliSinceDate.get());","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"-"},"content":" // For --since d1, need to adjust the arbitrary date based on timezone","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"-"},"content":" if (TimeUtil.isEqualToArbitraryFirstDateUtc(sinceDate)) {","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"-"},"content":" isUsingArbitraryDate \u003d true;","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"-"},"content":" sinceDate \u003d TimeUtil.getArbitraryFirstCommitDateConverted(zoneId);","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"-"},"content":" } else if (isUntilDateProvided) {","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"-"},"content":" sinceDate \u003d isPeriodProvided","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"-"},"content":" ? TimeUtil.getDateMinusNDays(cliUntilDate.get(), cliPeriod.get())","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"-"},"content":" : TimeUtil.getDateMinusAMonth(cliUntilDate.get());","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"-"},"content":" sinceDate \u003d isPeriodProvided","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"-"},"content":" ? TimeUtil.getDateMinusNDays(currentDate, cliPeriod.get())","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"-"},"content":" : TimeUtil.getDateMinusAMonth(currentDate);","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"-"},"content":" if (isPeriodProvided \u0026\u0026 isUsingArbitraryDate) {","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"-"},"content":" logger.warning(MESSAGE_SINCE_D1_WITH_PERIOD);","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"-"},"content":" if (isUntilDateProvided) {","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"-"},"content":" untilDate \u003d TimeUtil.getUntilDate(cliUntilDate.get());","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"-"},"content":" untilDate \u003d (isSinceDateProvided \u0026\u0026 isPeriodProvided)","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"-"},"content":" ? TimeUtil.getDatePlusNDays(cliSinceDate.get(), cliPeriod.get())","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"-"},"content":" : currentDate;","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"-"},"content":" untilDate \u003d untilDate.compareTo(currentDate) \u003c 0","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"-"},"content":" ? untilDate","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"-"},"content":" : currentDate;","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"-"},"content":" if (sinceDate.compareTo(currentDate) \u003e 0) {","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"-"},"content":" throw new ParseException(MESSAGE_SINCE_DATE_LATER_THAN_TODAY_DATE);","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"-"},"content":" if (sinceDate.compareTo(untilDate) \u003e 0) {","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"-"},"content":" throw new ParseException(MESSAGE_SINCE_DATE_LATER_THAN_UNTIL_DATE);","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"-"},"content":" builder.sinceDate(sinceDate)","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"-"},"content":" .isSinceDateProvided(isSinceDateProvided)","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"-"},"content":" .untilDate(untilDate)","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"-"},"content":" .isUntilDateProvided(isUntilDateProvided);","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":41,"-":462}},{"path":"src/main/java/reposense/parser/AuthorConfigCsvParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.FileNotFoundException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import org.apache.commons.csv.CSVRecord;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.model.AuthorConfiguration;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidLocationException;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.ParseException;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Container for the values parsed from {@code author-config.csv} file.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"public class AuthorConfigCsvParser extends CsvParser\u003cAuthorConfiguration\u003e {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" public static final String AUTHOR_CONFIG_FILENAME \u003d \"author-config.csv\";","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" * Positions of the elements of a line in author-config.csv config file.","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private static final String[] LOCATION_HEADER \u003d {\"Repository\u0027s Location\"};","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final String[] BRANCH_HEADER \u003d {\"Branch\"};","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final String[] GIT_ID_HEADERS \u003d {\"Author\u0027s Git Host ID\", \"Author\u0027s GitHub ID\"};","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" private static final String[] EMAIL_HEADER \u003d {\"Author\u0027s Emails\"};","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private static final String[] DISPLAY_NAME_HEADER \u003d {\"Author\u0027s Display Name\"};","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" private static final String[] ALIAS_HEADER \u003d {\"Author\u0027s Git Author Name\"};","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private static final String[] IGNORE_GLOB_LIST_HEADER \u003d {\"Ignore Glob List\"};","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" public AuthorConfigCsvParser(Path csvFilePath) throws FileNotFoundException {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" super(csvFilePath);","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" * Gets the list of headers that are mandatory for verification.","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" protected String[][] mandatoryHeaders() {","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" return new String[][] {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" GIT_ID_HEADERS,","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" };","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" * Gets the list of optional headers that can be parsed.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" protected String[][] optionalHeaders() {","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" return new String[][] {","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" LOCATION_HEADER, BRANCH_HEADER, EMAIL_HEADER, DISPLAY_NAME_HEADER, ALIAS_HEADER,","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" IGNORE_GLOB_LIST_HEADER,","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" };","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" * Processes the csv {@code record} line by line and add created {@link AuthorConfiguration} into {@code results}","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" * but skips {@code author} already exists in a {@link AuthorConfiguration} that has same {@code location}","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" * and {@code branch}.","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" protected void processLine(List\u003cAuthorConfiguration\u003e results, CSVRecord record) throws ParseException {","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" List\u003cString\u003e locationsWithBranches \u003d getAsListOrDefault(record, LOCATION_HEADER);","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" String branch \u003d getOrDefault(record, BRANCH_HEADER, AuthorConfiguration.DEFAULT_BRANCH);","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" String gitId \u003d get(record, GIT_ID_HEADERS);","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" List\u003cString\u003e emails \u003d getAsList(record, EMAIL_HEADER);","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" String displayName \u003d get(record, DISPLAY_NAME_HEADER);","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" List\u003cString\u003e aliases \u003d getAsList(record, ALIAS_HEADER);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" List\u003cString\u003e ignoreGlobList \u003d getAsList(record, IGNORE_GLOB_LIST_HEADER);","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" for (String locationWithBranches : locationsWithBranches) {","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" List\u003cString\u003e parsedLocationWithBranches \u003d AuthorConfigLocationParser","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" .parseLocation(locationWithBranches, branch);","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" String currLocation \u003d parsedLocationWithBranches.get(0);","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" for (int i \u003d 1; i \u003c parsedLocationWithBranches.size(); i++) {","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" String currBranch \u003d parsedLocationWithBranches.get(i);","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" registerLocationAndBranch(results, gitId, emails, displayName, aliases,","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" ignoreGlobList, currLocation, currBranch);","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" * Registers an author for a single location and branch with the information","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" * provided by each line.","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" * @throws InvalidLocationException if {@code location} is invalid.","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" private void registerLocationAndBranch(List\u003cAuthorConfiguration\u003e results, String gitId,","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" List\u003cString\u003e emails, String displayName,","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" List\u003cString\u003e aliases, List\u003cString\u003e ignoreGlobList,","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" String currLocation, String currBranch) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d findMatchingAuthorConfiguration(results, currLocation, currBranch);","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" Author author \u003d new Author(gitId);","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" if (config.containsAuthor(author)) {","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" logger.warning(String.format(","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" \"Skipping author as %s already in repository %s %s\",","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" author.getGitId(), config.getLocation(), config.getBranch()));","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" author.setEmails(new ArrayList\u003c\u003e(emails));","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" author.setDisplayName(!displayName.isEmpty() ? displayName : author.getGitId());","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" if (!aliases.isEmpty()) {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" author.setAuthorAliases(aliases);","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" if (!ignoreGlobList.isEmpty()) {","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" author.setIgnoreGlobList(ignoreGlobList);","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" config.addAuthor(author);","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" * Gets an existing {@link AuthorConfiguration} from {@code results} if {@code location} and {@code branch} matches.","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" * Otherwise, adds a newly created {@link AuthorConfiguration} into {@code results} and returns it.","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" * @throws InvalidLocationException if {@code location} is invalid.","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" private static AuthorConfiguration findMatchingAuthorConfiguration(List\u003cAuthorConfiguration\u003e results,","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" String location, String branch) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d new AuthorConfiguration(new RepoLocation(location), branch);","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" for (AuthorConfiguration authorConfig : results) {","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" if (authorConfig.getLocation().equals(config.getLocation())","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" \u0026\u0026 authorConfig.getBranch().equals(config.getBranch())) {","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" return authorConfig;","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" results.add(config);","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" return config;","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":136}},{"path":"src/main/java/reposense/parser/BlurbMarkdownParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"import java.io.FileNotFoundException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"import java.net.MalformedURLException;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"import java.net.URISyntaxException;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"import java.net.URL;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.logging.Level;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.model.BlurbMap;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidMarkdownException;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"asdfghjkxd"},"content":"/**","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"asdfghjkxd"},"content":" * Parses the Markdown file and retrieves the mappings from URLs to blurbs from the blurbs","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":" * configuration file.","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":"public class BlurbMarkdownParser extends MarkdownParser\u003cBlurbMap\u003e {","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":" public static final Pattern DELIMITER \u003d Pattern.compile(\"\u003c!--repo--\u003e(.*)\");","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":" public static final String DEFAULT_BLURB_FILENAME \u003d \"blurbs.md\";","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":" private static final class UrlRecord {","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":" private final String url;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":" private final int nextPosition;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":" public UrlRecord(String url, int nextPosition) {","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":" this.url \u003d url;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":" this.nextPosition \u003d nextPosition;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":" public String getUrl() {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":" return url;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"asdfghjkxd"},"content":" public int getNextPosition() {","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"asdfghjkxd"},"content":" return nextPosition;","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":" private static final class BlurbRecord {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"asdfghjkxd"},"content":" private final List\u003cString\u003e blurb;","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"asdfghjkxd"},"content":" private final int nextPosition;","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"asdfghjkxd"},"content":" public BlurbRecord(List\u003cString\u003e blurb, int nextPosition) {","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"asdfghjkxd"},"content":" this.blurb \u003d blurb;","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"asdfghjkxd"},"content":" this.nextPosition \u003d nextPosition;","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"asdfghjkxd"},"content":" public List\u003cString\u003e getBlurb() {","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"asdfghjkxd"},"content":" return blurb;","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"asdfghjkxd"},"content":" public int getNextPosition() {","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"asdfghjkxd"},"content":" return nextPosition;","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"asdfghjkxd"},"content":" public BlurbMarkdownParser(Path markdownPath) throws FileNotFoundException {","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"asdfghjkxd"},"content":" super(markdownPath);","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"asdfghjkxd"},"content":" * Parses the markdown file containing the url to blurb mapping and returns a","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"asdfghjkxd"},"content":" * {@code BlurbMap} containing the mappings between the url and blurbs.","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"asdfghjkxd"},"content":" * @return {@code BlurbMap} object.","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"asdfghjkxd"},"content":" * @throws IOException if there are any issues opening or parsing the {@code blurbs.md} file.","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"asdfghjkxd"},"content":" @Override","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"asdfghjkxd"},"content":" public BlurbMap parse() throws IOException, InvalidMarkdownException {","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"asdfghjkxd"},"content":" logger.log(Level.INFO, \"Parsing Blurbs...\");","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"asdfghjkxd"},"content":" // read all the lines first","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"asdfghjkxd"},"content":" List\u003cString\u003e mdLines \u003d Files.readAllLines(this.markdownPath);","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"asdfghjkxd"},"content":" // if the file is empty, then we throw the exception and let the adder handle","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"asdfghjkxd"},"content":" if (mdLines.isEmpty()) {","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"asdfghjkxd"},"content":" throw new InvalidMarkdownException(\"Empty blurbs.md file\");","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"asdfghjkxd"},"content":" // prepare the blurb map","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap blurbMap \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"asdfghjkxd"},"content":" // define temporary local variables to track blurbs","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"asdfghjkxd"},"content":" String url \u003d \"\";","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"asdfghjkxd"},"content":" StringBuilder blurb \u003d new StringBuilder();","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"asdfghjkxd"},"content":" int counter \u003d 0;","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"asdfghjkxd"},"content":" while (counter \u003c mdLines.size()) {","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"asdfghjkxd"},"content":" // extract the url record first","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"asdfghjkxd"},"content":" // this is guaranteed to be in the first line or else we fail","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"asdfghjkxd"},"content":" UrlRecord urlRecord \u003d this.getUrlRecord(mdLines, counter);","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"asdfghjkxd"},"content":" url \u003d urlRecord.getUrl();","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"asdfghjkxd"},"content":" counter \u003d urlRecord.getNextPosition();","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"asdfghjkxd"},"content":" // then extract the blurb record next","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"asdfghjkxd"},"content":" // we extract until the delimiter is found and then we will stop","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"asdfghjkxd"},"content":" BlurbRecord blurbRecord \u003d this.getBlurbRecord(mdLines, counter);","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"asdfghjkxd"},"content":" List\u003cString\u003e blurbExtracted \u003d blurbRecord.getBlurb();","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"asdfghjkxd"},"content":" for (String string : blurbExtracted) {","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"asdfghjkxd"},"content":" blurb.append(string);","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"asdfghjkxd"},"content":" counter \u003d blurbRecord.getNextPosition();","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"asdfghjkxd"},"content":" // add the recorded entry into the BlurbMap","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"asdfghjkxd"},"content":" // strip the trailing /n","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"asdfghjkxd"},"content":" blurbMap.withRecord(url, blurb.toString().stripTrailing());","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"asdfghjkxd"},"content":" blurb.setLength(0);","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"asdfghjkxd"},"content":" // return the built BlurbMap instance","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"asdfghjkxd"},"content":" logger.log(Level.INFO, \"Blurbs parsed successfully!\");","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"asdfghjkxd"},"content":" return blurbMap;","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"asdfghjkxd"},"content":" private UrlRecord getUrlRecord(List\u003cString\u003e lines, int position) throws InvalidMarkdownException {","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"asdfghjkxd"},"content":" // checks if url is valid","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"asdfghjkxd"},"content":" // adapted from https://www.baeldung.com/java-validate-url","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"asdfghjkxd"},"content":" try {","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"asdfghjkxd"},"content":" String url \u003d lines.get(position).strip();","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"asdfghjkxd"},"content":" new URL(url).toURI();","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"asdfghjkxd"},"content":" return new UrlRecord(lines.get(position), position + 1);","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"asdfghjkxd"},"content":" } catch (MalformedURLException | URISyntaxException ex) {","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"asdfghjkxd"},"content":" throw new InvalidMarkdownException(\"URL provided is not valid!\");","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"asdfghjkxd"},"content":" private BlurbRecord getBlurbRecord(List\u003cString\u003e lines, int position) {","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"asdfghjkxd"},"content":" int lineSize \u003d lines.size();","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"asdfghjkxd"},"content":" int posCounter \u003d position;","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"asdfghjkxd"},"content":" List\u003cString\u003e blurbs \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"asdfghjkxd"},"content":" while (posCounter \u003c lineSize) {","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"asdfghjkxd"},"content":" String currLine \u003d lines.get(posCounter);","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"asdfghjkxd"},"content":" if (BlurbMarkdownParser.DELIMITER.matcher(currLine).matches()) {","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"asdfghjkxd"},"content":" break;","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"asdfghjkxd"},"content":" } else {","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"asdfghjkxd"},"content":" currLine +\u003d \"\\n\";","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"asdfghjkxd"},"content":" blurbs.add(currLine);","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"asdfghjkxd"},"content":" posCounter++;","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"asdfghjkxd"},"content":" return new BlurbRecord(blurbs, posCounter + 1);","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"asdfghjkxd"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":151}},{"path":"src/main/java/reposense/parser/ConfigurationBuildException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"/**","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":" * Signals that there was an issue building a Configuration (missing parameters, etc.).","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"public class ConfigurationBuildException extends RuntimeException {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":8}},{"path":"src/main/java/reposense/parser/CsvParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.BufferedReader;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.io.FileNotFoundException;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.io.FileReader;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.HashMap;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import java.util.HashSet;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import java.util.Set;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import java.util.StringJoiner;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import java.util.logging.Level;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import java.util.stream.Stream;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import org.apache.commons.csv.CSVFormat;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import org.apache.commons.csv.CSVRecord;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidCsvException;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidHeaderException;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.ParseException;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" * Contains CSV parsing related functionalities.","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"public abstract class CsvParser\u003cT\u003e {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" protected static final String COLUMN_VALUES_SEPARATOR \u003d \";\";","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" protected static final Logger logger \u003d LogsManager.getLogger(CsvParser.class);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" private static final String EMPTY_STRING \u003d \"\";","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private static final String OVERRIDE_KEYWORD \u003d \"override:\";","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" private static final String MESSAGE_EMPTY_LINE \u003d \"[EMPTY LINE]\";","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" private static final String MESSAGE_UNABLE_TO_READ_CSV_FILE \u003d \"Unable to read the supplied CSV file.\";","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" private static final String MESSAGE_MALFORMED_LINE_FORMAT \u003d \"Line %d in CSV file, %s, is malformed.\\n\"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" + \"Content: %s\";","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" private static final String MESSAGE_LINE_PARSE_EXCEPTION_FORMAT \u003d \"Error parsing line %d in CSV file, %s.\\n\"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" + \"Content: %s\\n\"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" + \"Error: %s\";","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" private static final String MESSAGE_EMPTY_CSV_FORMAT \u003d \"The CSV file, %s, is empty.\";","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" private static final String MESSAGE_MANDATORY_HEADER_MISSING \u003d \"Required column header, %s, not found in \"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" + \"CSV file, %s\";","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" private static final String MESSAGE_DUPLICATE_COLUMN_HEADER \u003d \"Duplicate columns are present in CSV file, %s.\";","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" private static final String MESSAGE_COLUMNS_RECOGNIZED \u003d \"Parsed header of CSV file, %s, and recognized columns: \"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" + \"%s\";","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" private static final String MESSAGE_ZERO_VALID_CONFIGS \u003d \"No valid configurations in the %s.\";","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" private static final String MESSAGE_UNKNOWN_COLUMN \u003d \"Unknown column(s) found: %s (%s)\";","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" private Path csvFilePath;","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" private Map\u003cString, Integer\u003e headerMap \u003d new HashMap\u003c\u003e();","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" private int numOfLinesBeforeFirstRecord \u003d 0;","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" * Creates {@link CsvParser} with given {@code csvFilepath}.","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" * @throws FileNotFoundException if the csv file cannot be found in the provided {@code csvFilePath}.","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" public CsvParser(Path csvFilePath) throws FileNotFoundException {","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" if (csvFilePath \u003d\u003d null || !Files.exists(csvFilePath)) {","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" throw new FileNotFoundException(\"Csv file does not exist at the given path.\\n\"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" + \"Use \u0027-help\u0027 to list all the available subcommands and some concept guides.\");","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" this.csvFilePath \u003d csvFilePath;","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" * Parses the csv file associated with this instance of the {@link CsvParser} and returns a {@link List}","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" * containing the records in this file.","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" * @throws IOException if there are errors accessing the given csv file.","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" * @throws InvalidCsvException if the csv is malformed.","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" * @throws InvalidHeaderException if header of csv file cannot be read.","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" public List\u003cT\u003e parse() throws IOException, InvalidCsvException, InvalidHeaderException {","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" List\u003cT\u003e results \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" Iterable\u003cCSVRecord\u003e records;","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" try (BufferedReader csvReader \u003d new BufferedReader(new FileReader(csvFilePath.toFile()))) {","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" String[] header \u003d getHeader(csvReader);","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" records \u003d CSVFormat.Builder.create(CSVFormat.DEFAULT).setIgnoreEmptyLines(false).setHeader(header)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .setTrim(true).setIgnoreHeaderCase(true).build().parse(csvReader);","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" } catch (IllegalArgumentException iae) {","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" throw new InvalidCsvException(","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" String.format(MESSAGE_DUPLICATE_COLUMN_HEADER, csvFilePath.getFileName()));","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" for (CSVRecord record : records) {","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" if (isLineMalformed(record)) {","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" processLine(results, record);","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" } catch (ParseException pe) {","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_LINE_PARSE_EXCEPTION_FORMAT, getLineNumber(record),","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" csvFilePath.getFileName(), getRowContentAsRawString(record), pe.getMessage()));","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" } catch (IllegalArgumentException iae) {","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, iae.getMessage(), iae);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" } catch (IOException ioe) {","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" throw new IOException(MESSAGE_UNABLE_TO_READ_CSV_FILE, ioe);","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" if (results.isEmpty()) {","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" throw new InvalidCsvException(String.format(MESSAGE_ZERO_VALID_CONFIGS, csvFilePath.getFileName()));","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" return results;","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" * Returns the header of a CSV file, which is assumed to be the first non-empty / non-whitespace line in the file","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" * read by {@code reader}.","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" * The line is split into an array of {@code String}s, using the comma symbol as delimiter.","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" * @throws IOException if there is an error accessing the file.","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" * @throws InvalidCsvException if the file has only empty or blank lines.","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" * @throws InvalidHeaderException if header of csv file cannot be read.","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" private String[] getHeader(BufferedReader reader) throws IOException, InvalidCsvException, InvalidHeaderException {","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" String currentLine \u003d \"\";","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" // read from file until we encounter a line that is neither blank nor empty","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" while (currentLine.isEmpty()) {","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" currentLine \u003d Optional.ofNullable(reader.readLine())","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" .map(String::trim)","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" .orElseThrow(() -\u003e new InvalidCsvException(String.format(","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" MESSAGE_EMPTY_CSV_FORMAT, csvFilePath.getFileName())));","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" numOfLinesBeforeFirstRecord++;","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" String[] header \u003d currentLine.split(\",\");","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" validateHeader(header);","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" return header;","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" * Returns true if {@code record} does not contain the same number of columns as the header or contains missing","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" * values at the mandatory columns in CSV format.","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" private boolean isLineMalformed(CSVRecord record) {","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" if (!record.isConsistent()) {","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_MALFORMED_LINE_FORMAT, getLineNumber(record),","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" csvFilePath.getFileName(), getRowContentAsRawString(record)));","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" for (String[] equivalentHeaders : mandatoryHeaders()) {","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" boolean isLineFormatMalformed \u003d","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" Arrays.stream(equivalentHeaders).allMatch(header -\u003e get(record, header).isEmpty());","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" if (isLineFormatMalformed) {","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_MALFORMED_LINE_FORMAT, getLineNumber(record),","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" csvFilePath.getFileName(), getRowContentAsRawString(record)));","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" * Returns the value of {@code record} at the column with the header {@code header}.","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" protected String get(final CSVRecord record, String header) {","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" return headerMap.containsKey(header) ? record.get(headerMap.get(header)).trim() : EMPTY_STRING;","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" * Returns the value of {@code record} at the column that match any of the equivalent headers in","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" * {@code equivalentHeaders}.","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" protected String get(final CSVRecord record, String[] equivalentHeaders) {","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" for (String header : equivalentHeaders) {","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" if (headerMap.containsKey(header)) {","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" return record.get(headerMap.get(header)).trim();","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" return EMPTY_STRING;","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" * Returns the value of {@code record} at the column that match any of the equivalent headers in","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" * {@code equivalentHeaders} if present, or returns {@code defaultValue} otherwise.","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" protected String getOrDefault(final CSVRecord record, String[] equivalentHeaders, String defaultValue) {","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" String value \u003d get(record, equivalentHeaders);","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" return value.isEmpty() ? defaultValue : value;","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" * Returns the value of {@code record} at the column that match any of the equivalent headers in","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" * {@code equivalentHeaders} as a {@link List} if it is in {@code record} and not empty.","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" * The column is delimited by {@code COLUMN_VALUES_SEPARATOR}.","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" * Returns an empty {@link List} otherwise.","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" protected List\u003cString\u003e getAsList(final CSVRecord record, String[] equivalentHeaders) {","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" String value \u003d get(record, equivalentHeaders);","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" if (value.isEmpty()) {","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" return Collections.emptyList();","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" return Arrays.stream(value.split(COLUMN_VALUES_SEPARATOR))","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" .map(String::trim)","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" * Returns the value of {@code record} at {@code colNum} as a {@code List},","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" * delimited by {@code COLUMN_VALUES_SEPARATOR} if it is in {@code record} and not empty, or","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" * returns a single element List containing the empty string otherwise.","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" protected List\u003cString\u003e getAsListOrDefault(final CSVRecord record, String[] equivalentHeaders) {","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" List\u003cString\u003e list \u003d getAsList(record, equivalentHeaders);","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" return list.isEmpty() ? Collections.singletonList(\"\") : list;","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" * Returns the values in {@code record} as a list with the {@link CsvParser#OVERRIDE_KEYWORD} prefix removed.","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" * Returns an empty list if {@code record} at the column that match any of the equivalent headers in","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" * {@code equivalentHeaders} is empty.","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" protected List\u003cString\u003e getAsListWithoutOverridePrefix(final CSVRecord record, String[] equivalentHeaders) {","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" List\u003cString\u003e data \u003d getAsList(record, equivalentHeaders);","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" if (isElementOverridingStandaloneConfig(record, equivalentHeaders)) {","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" data.set(0, data.get(0).replaceFirst(OVERRIDE_KEYWORD, \"\"));","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" data.removeIf(String::isEmpty);","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" return data;","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" private long getLineNumber(final CSVRecord record) {","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" return record.getRecordNumber() + numOfLinesBeforeFirstRecord;","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" * Returns true if the {@code record} at the column that match any of the equivalent headers in","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" * {@code equivalentHeaders} is prefixed with the override keyword.","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" protected boolean isElementOverridingStandaloneConfig(final CSVRecord record, String[] equivalentHeaders) {","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" return get(record, equivalentHeaders).startsWith(OVERRIDE_KEYWORD);","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" * Returns the contents of {@code record} as a raw string.","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" private String getRowContentAsRawString(final CSVRecord record) {","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" StringJoiner inputRowString \u003d new StringJoiner(\",\");","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" for (String value : record) {","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" inputRowString.add(value);","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" String contentAsString \u003d inputRowString.toString();","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" return (contentAsString.trim().isEmpty()) ? MESSAGE_EMPTY_LINE : contentAsString;","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" * Generates map of column header to position number for input {@code possibleHeader}.","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" * @throws InvalidCsvException if {@code possibleHeader} does not contain all the mandatory headers.","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" * @throws InvalidHeaderException if a column in {@code possibleHeader} cannot be parsed.","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" private void validateHeader(String[] possibleHeader) throws InvalidCsvException, InvalidHeaderException {","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" int headerSize \u003d possibleHeader.length;","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" Set\u003cString\u003e knownColumns \u003d new HashSet\u003c\u003e();","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" ArrayList\u003cString\u003e unknownColumns \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" List\u003cString\u003e parsedHeaders \u003d mandatoryAndOptionalHeaders();","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" for (int i \u003d 0; i \u003c headerSize; i++) {","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" String possible \u003d possibleHeader[i].trim();","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" for (String parsedHeader : parsedHeaders) {","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" if (possible.equalsIgnoreCase(parsedHeader)) {","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" headerMap.put(parsedHeader, i);","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":" knownColumns.add(possible);","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" break;","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" if (!knownColumns.contains(possible)) {","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" unknownColumns.add(possible);","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" if (unknownColumns.size() \u003e 0) {","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" String errorMessage \u003d String.join(\", \", unknownColumns);","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" throw new InvalidHeaderException(","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" String.format(MESSAGE_UNKNOWN_COLUMN, errorMessage, csvFilePath.toString()));","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" for (String[] equivalentHeaders : mandatoryHeaders()) {","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" boolean isAnyEquivalentHeaderPresent \u003d","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" Arrays.stream(equivalentHeaders).anyMatch(header -\u003e headerMap.containsKey(header));","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" if (!isAnyEquivalentHeaderPresent) {","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":" throw new InvalidCsvException(String.format(","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" MESSAGE_MANDATORY_HEADER_MISSING, Arrays.toString(equivalentHeaders),","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" csvFilePath.getFileName()));","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":" logger.info(String.format(MESSAGE_COLUMNS_RECOGNIZED, csvFilePath.getFileName(),","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":" String.join(\", \", headerMap.keySet())));","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" * Gets the list of headers that are mandatory for verification.","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":" protected abstract String[][] mandatoryHeaders();","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":" * Gets the list of optional headers that can be parsed.","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":" protected abstract String[][] optionalHeaders();","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":" * Gets the list of all mandatory and optional headers that can be parsed.","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" protected List\u003cString\u003e mandatoryAndOptionalHeaders() {","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" return Stream.concat(Arrays.stream(mandatoryHeaders()), Arrays.stream(optionalHeaders()))","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":" .flatMap(Stream::of)","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" * Processes the csv file line by line.","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" * All {@link CsvParser}s must use {@link CsvParser#get}, {@link CsvParser#getOrDefault},","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":" * {@link CsvParser#getAsList} or {@link CsvParser#getAsListWithoutOverridePrefix} to read contents in","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" * {@code record} and add created objects into {@code results}.","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" * @throws ParseException if any line does not get read successfully.","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":" protected abstract void processLine(List\u003cT\u003e results, final CSVRecord record) throws ParseException;","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":3,"-":339}},{"path":"src/main/java/reposense/parser/GroupConfigCsvParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.FileNotFoundException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import org.apache.commons.csv.CSVRecord;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import reposense.model.FileType;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.model.GroupConfiguration;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidLocationException;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" * Container for the values parsed from {@code group-config.csv} file.","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"public class GroupConfigCsvParser extends CsvParser\u003cGroupConfiguration\u003e {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" public static final String GROUP_CONFIG_FILENAME \u003d \"group-config.csv\";","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" * Positions of the elements of a line in group-config.csv config file","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private static final String[] LOCATION_HEADER \u003d {\"Repository\u0027s Location\"};","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" private static final String[] GROUP_NAME_HEADER \u003d {\"Group Name\"};","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private static final String[] FILES_GLOB_HEADER \u003d {\"Globs\"};","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" public GroupConfigCsvParser(Path csvFilePath) throws FileNotFoundException {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" super(csvFilePath);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" * Gets the list of headers that are mandatory for verification.","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" protected String[][] mandatoryHeaders() {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" return new String[][] {","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" GROUP_NAME_HEADER, FILES_GLOB_HEADER,","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" };","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" * Gets the list of optional headers that can be parsed.","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" protected String[][] optionalHeaders() {","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" return new String[][] {","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" LOCATION_HEADER,","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" };","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" * Processes the csv {@code record} line by line and adds created {@link GroupConfiguration} into {@code results}.","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" protected void processLine(List\u003cGroupConfiguration\u003e results, CSVRecord record) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" String location \u003d get(record, LOCATION_HEADER);","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" String groupName \u003d get(record, GROUP_NAME_HEADER);","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" List\u003cString\u003e globList \u003d getAsList(record, FILES_GLOB_HEADER);","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" GroupConfiguration groupConfig \u003d null;","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" groupConfig \u003d findMatchingGroupConfiguration(results, location);","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" FileType group \u003d new FileType(groupName, globList);","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" if (groupConfig.containsGroup(group)) {","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" logger.warning(String.format(","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" \"Skipping group as %s has already been specified for the repository %s\",","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" group.toString(), groupConfig.getLocation()));","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" return;","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" groupConfig.addGroup(group);","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" * Gets an existing {@link GroupConfiguration} from {@code results} if {@code location} matches.","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" * Otherwise, adds a newly created {@link GroupConfiguration} into {@code results} and returns it.","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" * @throws InvalidLocationException if {@code location} is invalid.","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" private static GroupConfiguration findMatchingGroupConfiguration(List\u003cGroupConfiguration\u003e results,","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" String location) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" GroupConfiguration config \u003d new GroupConfiguration(new RepoLocation(location));","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" for (GroupConfiguration groupConfig : results) {","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" if (groupConfig.getLocation().equals(config.getLocation())) {","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" return groupConfig;","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" results.add(config);","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" return config;","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":92}},{"path":"src/main/java/reposense/parser/MarkdownParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"import java.io.FileNotFoundException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidMarkdownException;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"/**","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":" * Parses Markdown file according to the \"\u003c!--repo--\u003e\" tag.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":" * @param \u003cT\u003e Generic Type {@code T}.","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"asdfghjkxd"},"content":"public abstract class MarkdownParser\u003cT\u003e {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"asdfghjkxd"},"content":" protected static final Logger logger \u003d LogsManager.getLogger(MarkdownParser.class);","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":" protected Path markdownPath;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":" public MarkdownParser(Path markdownPath) throws FileNotFoundException {","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":" if (markdownPath \u003d\u003d null || !Files.exists(markdownPath)) {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":" throw new FileNotFoundException(\"Markdown file does not exist at the given path.\\n\"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":" + \"Use \u0027-help\u0027 to list all the available subcommands and some concept guides.\");","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":" this.markdownPath \u003d markdownPath;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":" public abstract T parse() throws IOException, InvalidMarkdownException;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":32}},{"path":"src/main/java/reposense/parser/RepoConfigCsvParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.FileNotFoundException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import org.apache.commons.csv.CSVRecord;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import reposense.model.CommitHash;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.model.FileType;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidLocationException;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" * Container for the values parsed from {@code repo-config.csv} file.","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"public class RepoConfigCsvParser extends CsvParser\u003cRepoConfiguration\u003e {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" public static final String REPO_CONFIG_FILENAME \u003d \"repo-config.csv\";","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" private static final String IGNORE_STANDALONE_CONFIG_KEYWORD \u003d \"yes\";","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private static final String IGNORE_FILESIZE_LIMIT_KEYWORD \u003d \"yes\";","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" private static final String SKIP_IGNORED_FILE_ANALYSIS_KEYWORD \u003d \"yes\";","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private static final String SHALLOW_CLONING_CONFIG_KEYWORD \u003d \"yes\";","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final String FIND_PREVIOUS_AUTHORS_KEYWORD \u003d \"yes\";","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" * Positions of the elements of a line in repo-config.csv config file","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private static final String[] LOCATION_HEADER \u003d {\"Repository\u0027s Location\"};","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static final String[] BRANCH_HEADER \u003d {\"Branch\"};","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" private static final String[] FILE_FORMATS_HEADER \u003d {\"File formats\"};","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private static final String[] IGNORE_GLOB_LIST_HEADER \u003d {\"Ignore Glob List\"};","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private static final String[] IGNORE_STANDALONE_CONFIG_HEADER \u003d {\"Ignore Standalone Config\"};","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final String[] IGNORE_FILESIZE_LIMIT_HEADER \u003d {\"Ignore File Size Limit\"};","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private static final String[] IGNORE_COMMIT_LIST_CONFIG_HEADER \u003d {\"Ignore Commits List\"};","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private static final String[] IGNORE_AUTHOR_LIST_CONFIG_HEADER \u003d {\"Ignore Authors List\"};","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" private static final String[] SKIP_IGNORED_FILE_ANALYSIS_HEADER \u003d {\"Skip Ignored File Analysis\"};","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private static final String[] SHALLOW_CLONING_CONFIG_HEADER \u003d {\"Shallow Cloning\"};","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" private static final String[] FIND_PREVIOUS_AUTHORS_CONFIG_HEADER \u003d {\"Find Previous Authors\"};","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" private static final String[] FILESIZE_LIMIT_HEADER \u003d {\"File Size Limit\"};","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" public RepoConfigCsvParser(Path csvFilePath) throws FileNotFoundException {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" super(csvFilePath);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" * Gets the list of headers that are mandatory for verification.","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" protected String[][] mandatoryHeaders() {","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" return new String[][] {","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" LOCATION_HEADER,","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" };","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" * Gets the list of optional headers that can be parsed.","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" protected String[][] optionalHeaders() {","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" return new String[][] {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" BRANCH_HEADER, FILE_FORMATS_HEADER, IGNORE_GLOB_LIST_HEADER, IGNORE_STANDALONE_CONFIG_HEADER,","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" IGNORE_FILESIZE_LIMIT_HEADER, IGNORE_COMMIT_LIST_CONFIG_HEADER, IGNORE_AUTHOR_LIST_CONFIG_HEADER,","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" SHALLOW_CLONING_CONFIG_HEADER, FIND_PREVIOUS_AUTHORS_CONFIG_HEADER, FILESIZE_LIMIT_HEADER,","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" SKIP_IGNORED_FILE_ANALYSIS_HEADER","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" };","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" * Processes the csv {@code record} line by line and add created {@link RepoConfiguration} into {@code results} but","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" * ignores duplicated {@link RepoConfiguration} if there exists one that has same {@code location} and","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" * {@code branch}.","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" * @throws InvalidLocationException if the location represented in {@code record} is invalid.","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" protected void processLine(List\u003cRepoConfiguration\u003e results, CSVRecord record) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" // The variable expansion is performed to simulate running the same location from command line.","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" // This helps to support things like tilde expansion and other Bash/CMD features.","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" RepoLocation location \u003d new RepoLocation(FileUtil.getVariableExpandedFilePath(get(record, LOCATION_HEADER)));","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" String branch \u003d getOrDefault(record, BRANCH_HEADER, RepoConfiguration.DEFAULT_BRANCH);","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" boolean isFormatsOverriding \u003d isElementOverridingStandaloneConfig(record, FILE_FORMATS_HEADER);","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" List\u003cFileType\u003e formats \u003d FileType.convertFormatStringsToFileTypes(","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" getAsListWithoutOverridePrefix(record, FILE_FORMATS_HEADER));","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" boolean isIgnoreGlobListOverriding \u003d isElementOverridingStandaloneConfig(record, IGNORE_GLOB_LIST_HEADER);","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" List\u003cString\u003e ignoreGlobList \u003d getAsListWithoutOverridePrefix(record, IGNORE_GLOB_LIST_HEADER);","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" boolean isIgnoreCommitListOverriding \u003d","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" isElementOverridingStandaloneConfig(record, IGNORE_COMMIT_LIST_CONFIG_HEADER);","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" List\u003cCommitHash\u003e ignoreCommitList \u003d CommitHash.convertStringsToCommits(","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" getAsListWithoutOverridePrefix(record, IGNORE_COMMIT_LIST_CONFIG_HEADER));","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" boolean isIgnoredAuthorsListOverriding \u003d","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" isElementOverridingStandaloneConfig(record, IGNORE_AUTHOR_LIST_CONFIG_HEADER);","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" List\u003cString\u003e ignoredAuthorsList \u003d getAsListWithoutOverridePrefix(record, IGNORE_AUTHOR_LIST_CONFIG_HEADER);","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" boolean isFileSizeLimitIgnored \u003d matchValueAndKeyword(record, IGNORE_FILESIZE_LIMIT_HEADER,","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" IGNORE_FILESIZE_LIMIT_KEYWORD);","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" boolean isIgnoredFileAnalysisSkipped \u003d matchValueAndKeyword(record, SKIP_IGNORED_FILE_ANALYSIS_HEADER,","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" SKIP_IGNORED_FILE_ANALYSIS_KEYWORD);","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" if (isFileSizeLimitIgnored \u0026\u0026 isIgnoredFileAnalysisSkipped) {","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" logger.warning(\"Ignoring skip ignored file analysis column since file size limit is ignored\");","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" isIgnoredFileAnalysisSkipped \u003d false;","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" boolean isFileSizeLimitOverriding \u003d isElementOverridingStandaloneConfig(record, FILESIZE_LIMIT_HEADER);","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" List\u003cString\u003e fileSizeLimitStringList \u003d getAsListWithoutOverridePrefix(record, FILESIZE_LIMIT_HEADER);","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" long fileSizeLimit \u003d RepoConfiguration.DEFAULT_FILE_SIZE_LIMIT;","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" // If file diff limit is specified","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" if (fileSizeLimitStringList.size() \u003e 0) {","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"asdfghjkxd"},"content":" String fileSizeLimitString \u003d fileSizeLimitStringList.get(0).trim();","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"asdfghjkxd"},"content":" int parseValue;","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" if (isFileSizeLimitIgnored) {","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" logger.warning(\"Ignoring file size limit column since file size limit is ignored\");","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" isFileSizeLimitOverriding \u003d false;","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"asdfghjkxd"},"content":" } else if (!StringsUtil.isNumeric(fileSizeLimitString)","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" || (parseValue \u003d Integer.parseInt(fileSizeLimitString)) \u003c\u003d 0) {","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" logger.warning(String.format(\"Values in \\\"%s\\\" column should be positive integers.\",","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" FILESIZE_LIMIT_HEADER[0]));","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" isFileSizeLimitOverriding \u003d false;","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" fileSizeLimit \u003d parseValue;","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" boolean isStandaloneConfigIgnored \u003d matchValueAndKeyword(record, IGNORE_STANDALONE_CONFIG_HEADER,","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" IGNORE_STANDALONE_CONFIG_KEYWORD);","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" boolean isShallowCloningPerformed \u003d matchValueAndKeyword(record, SHALLOW_CLONING_CONFIG_HEADER,","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" SHALLOW_CLONING_CONFIG_KEYWORD);","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" boolean isFindingPreviousAuthorsPerformed \u003d matchValueAndKeyword(record, FIND_PREVIOUS_AUTHORS_CONFIG_HEADER,","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" FIND_PREVIOUS_AUTHORS_KEYWORD);","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" addConfig(results, location, branch, isFormatsOverriding, formats, isIgnoreGlobListOverriding, ignoreGlobList,","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" isIgnoreCommitListOverriding, ignoreCommitList, isIgnoredAuthorsListOverriding, ignoredAuthorsList,","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" isFileSizeLimitIgnored, isIgnoredFileAnalysisSkipped, isFileSizeLimitOverriding, fileSizeLimit,","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" isStandaloneConfigIgnored, isShallowCloningPerformed, isFindingPreviousAuthorsPerformed);","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" * Returns true if value from {@code record}, that matches any of the equivalent headers in","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" * {@code equivalentHeaders}, is the same as the given {@code keyword}, else false.","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" private boolean matchValueAndKeyword(CSVRecord record, String[] equivalentHeaders, String keyword) {","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" String value \u003d get(record, equivalentHeaders);","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" boolean isIgnored \u003d value.equalsIgnoreCase(keyword);","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" if (!isIgnored \u0026\u0026 !value.isEmpty()) {","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" logger.warning(String.format(\"Ignoring unknown value %s in %s column.\", value, keyword.toLowerCase()));","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" return isIgnored;","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" * Creates a new {@link RepoConfiguration} with the supplied inputs and attempts to add it to {@code results}.","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" * Does nothing if the repo already exists in {@code results}.","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" private void addConfig(List\u003cRepoConfiguration\u003e results, RepoLocation location, String branch,","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" boolean isFormatsOverriding, List\u003cFileType\u003e formats, boolean isIgnoreGlobListOverriding,","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" List\u003cString\u003e ignoreGlobList, boolean isIgnoreCommitListOverriding, List\u003cCommitHash\u003e ignoreCommitList,","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" boolean isIgnoredAuthorsListOverriding, List\u003cString\u003e ignoredAuthorsList, boolean isFileSizeLimitIgnored,","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" boolean isIgnoredFileAnalysisSkipped, boolean isFileSizeLimitOverriding, long fileSizeLimit,","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" boolean isStandaloneConfigIgnored, boolean isShallowCloningPerformed,","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" boolean isFindingPreviousAuthorsPerformed) {","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration config \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"asdfghjkxd"},"content":" .location(location)","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"asdfghjkxd"},"content":" .branch(branch)","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"asdfghjkxd"},"content":" .fileTypeManager(formats)","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"asdfghjkxd"},"content":" .ignoreGlobList(ignoreGlobList)","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"asdfghjkxd"},"content":" .fileSizeLimit(fileSizeLimit)","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"asdfghjkxd"},"content":" .isStandaloneConfigIgnored(isStandaloneConfigIgnored)","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"asdfghjkxd"},"content":" .isFileSizeLimitIgnored(isFileSizeLimitIgnored)","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"asdfghjkxd"},"content":" .ignoreCommitList(ignoreCommitList)","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"asdfghjkxd"},"content":" .isFormatsOverriding(isFormatsOverriding)","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"asdfghjkxd"},"content":" .isIgnoreGlobListOverriding(isIgnoreGlobListOverriding)","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"asdfghjkxd"},"content":" .isIgnoreCommitListOverriding(isIgnoreCommitListOverriding)","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"asdfghjkxd"},"content":" .isFileSizeLimitOverriding(isFileSizeLimitOverriding)","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"asdfghjkxd"},"content":" .isShallowCloningPerformed(isShallowCloningPerformed)","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"asdfghjkxd"},"content":" .isFindingPreviousAuthorsPerformed(isFindingPreviousAuthorsPerformed)","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"asdfghjkxd"},"content":" .isIgnoredFileAnalysisSkipped(isIgnoredFileAnalysisSkipped)","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"asdfghjkxd"},"content":" .ignoredAuthorsList(ignoredAuthorsList)","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"asdfghjkxd"},"content":" .isIgnoredAuthorsListOverriding(isIgnoredAuthorsListOverriding)","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" if (results.contains(config)) {","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" logger.warning(\"Ignoring duplicated repository \" + location + \" \" + branch);","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" return;","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" results.add(config);","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":24,"-":178}},{"path":"src/main/java/reposense/parser/exceptions/InvalidCsvException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.exceptions;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" * Signals that there is a major error in a CSV file (e.g. wrong number of columns, zero valid records).","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"public class InvalidCsvException extends Exception {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" public InvalidCsvException(String message) {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" super(message);","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":9}},{"path":"src/main/java/reposense/parser/exceptions/InvalidHeaderException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.exceptions;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" * Signals that there is a problem in the header of csv config file.","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"public class InvalidHeaderException extends Exception {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" public InvalidHeaderException(String message) {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" super(message);","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":9}},{"path":"src/main/java/reposense/parser/exceptions/InvalidLocationException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.exceptions;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" * Signals that location cannot be represented by {@code URL} or {@code Path}.","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"public class InvalidLocationException extends ParseException {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" public InvalidLocationException(String message) {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" super(message);","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":9}},{"path":"src/main/java/reposense/parser/exceptions/InvalidMarkdownException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.exceptions;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"/**","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":" * Represents the error thrown when Markdown files cannot be parsed.","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"public class InvalidMarkdownException extends Exception {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":" public InvalidMarkdownException(String message) {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":" super(message);","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":10}},{"path":"src/main/java/reposense/parser/exceptions/ParseException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.exceptions;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" * Signals that there is an exception when parsing a string.","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"public class ParseException extends Exception {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" public ParseException(String message) {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" super(message);","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":9}},{"path":"src/main/java/reposense/parser/types/AlphanumericArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" * Represents an alphanumeric type {@code String} argument.","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"public class AlphanumericArgumentType implements ArgumentType\u003cString\u003e {","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" private static final String PARSE_EXCEPTION_MESSAGE_NOT_IN_ALPLANUMERIC \u003d","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" \"Invalid format. It must be in alphanumeric.\";","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" private static final Pattern ALPHANUMERIC_PATTERN \u003d Pattern.compile(\"[A-Za-z0-9]+\");","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" public String convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" if (!ALPHANUMERIC_PATTERN.matcher(value).matches()) {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" throw new ArgumentParserException(","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" String.format(PARSE_EXCEPTION_MESSAGE_NOT_IN_ALPLANUMERIC, value), parser);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" return value;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":26}},{"path":"src/main/java/reposense/parser/types/AnalysisThreadsArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" * Verifies and parses a string-formatted integer to an {@link Integer} object.","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"public class AnalysisThreadsArgumentType implements ArgumentType\u003cInteger\u003e {","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" public Integer convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" return Integer.parseInt(value);","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":14}},{"path":"src/main/java/reposense/parser/types/AssetsFolderArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.impl.Arguments;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" * Checks the argument of {@code --assets} flag.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"public class AssetsFolderArgumentType implements ArgumentType\u003cPath\u003e {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" public Path convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" // Piggyback on library methods to do file existence checks","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" Arguments.fileType().verifyExists().verifyIsDirectory().verifyCanRead().convert(parser, arg, value);","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" return Paths.get(value);","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":21}},{"path":"src/main/java/reposense/parser/types/CloningThreadsArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" * Verifies and parses a string-formatted integer to an {@link Integer} object.","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"public class CloningThreadsArgumentType implements ArgumentType\u003cInteger\u003e {","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" public Integer convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" return Integer.parseInt(value);","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":14}},{"path":"src/main/java/reposense/parser/types/ConfigFolderArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.impl.Arguments;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.RepoConfigCsvParser;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" * Checks the argument of {@code --config} flag.","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"public class ConfigFolderArgumentType implements ArgumentType\u003cPath\u003e {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" private static final String PARSE_EXCEPTION_MESSAGE_MISSING_REQUIRED_CONFIG_FILES \u003d","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" \"The required config file %s is not found in the specified folder.\";","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" public Path convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" // Piggyback on library methods to do file existence checks","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" Arguments.fileType().verifyExists().verifyIsDirectory().verifyCanRead().convert(parser, arg, value);","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" if (Files.exists(Paths.get(value).resolve(RepoConfigCsvParser.REPO_CONFIG_FILENAME))) {","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" return Paths.get(value);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" throw new ArgumentParserException(String.format(PARSE_EXCEPTION_MESSAGE_MISSING_REQUIRED_CONFIG_FILES,","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" RepoConfigCsvParser.REPO_CONFIG_FILENAME), parser);","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":31}},{"path":"src/main/java/reposense/parser/types/DateArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.util.TimeUtil;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" * Verifies and parses a string-formatted date to a {@link LocalDateTime} object.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"public class DateArgumentType implements ArgumentType\u003cOptional\u003cLocalDateTime\u003e\u003e {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" private static final String PARSE_EXCEPTION_MESSAGE_INVALID_DATE_STRING_FORMAT \u003d \"Invalid Date: %s\";","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" public Optional\u003cLocalDateTime\u003e convert(ArgumentParser parser, Argument arg, String value)","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" throws ArgumentParserException {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" return Optional.of(TimeUtil.parseDate(value));","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" } catch (java.text.ParseException pe) {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" throw new ArgumentParserException(","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" String.format(PARSE_EXCEPTION_MESSAGE_INVALID_DATE_STRING_FORMAT, value), parser);","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":27}},{"path":"src/main/java/reposense/parser/types/OutputFolderArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.impl.Arguments;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.ArgsParser;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" * Checks the argument of {@code --output} flag.","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"public class OutputFolderArgumentType implements ArgumentType\u003cPath\u003e {","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" public Path convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" // Piggyback on library methods to do file existence checks","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" Arguments.fileType().verifyExists().verifyIsDirectory().verifyCanWrite()","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .or()","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .verifyNotExists().convert(parser, arg, value);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" return Paths.get(value).resolve(ArgsParser.DEFAULT_REPORT_NAME);","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":23}},{"path":"src/main/java/reposense/parser/types/PeriodArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.ParseException;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" * Verifies and parses a string-formatted period to an integer.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"public class PeriodArgumentType implements ArgumentType\u003cOptional\u003cInteger\u003e\u003e {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" private static final String PARSE_EXCEPTION_MESSAGE_NOT_IN_NUMERIC \u003d","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" \"Invalid format. Period must be in the format of nd (n days) or nw (n weeks), \"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" + \"where n is a number greater than 0.\";","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" private static final String PARSE_EXCEPTION_MESSAGE_SMALLER_THAN_ZERO \u003d","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" \"Invalid format. Period must be greater than 0.\";","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" private static final String PARSE_EXCEPTION_MESSAGE_NUMBER_TOO_LARGE \u003d","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" \"Invalid format. Input number may be too large.\";","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private static final Pattern PERIOD_PATTERN \u003d Pattern.compile(\"[0-9]+[dw]\");","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" public Optional\u003cInteger\u003e convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" return parse(value);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" } catch (ParseException pe) {","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" throw new ArgumentParserException(pe.getMessage(), parser);","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" * Parses a {@code period} String and returns an {@link Integer} representing the number of days.","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" * @throws ParseException if period format or number is invalid.","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" public static Optional\u003cInteger\u003e parse(String period) throws ParseException {","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" if (!PERIOD_PATTERN.matcher(period).matches()) {","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" throw new ParseException(String.format(PARSE_EXCEPTION_MESSAGE_NOT_IN_NUMERIC, period));","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" int multiplier \u003d period.substring(period.length() - 1).equals(\"d\") ? 1 : 7;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" int convertedValue \u003d Integer.parseInt(period.substring(0, period.length() - 1)) * multiplier;","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" if (convertedValue \u003c\u003d 0) {","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" throw new ParseException(String.format(PARSE_EXCEPTION_MESSAGE_SMALLER_THAN_ZERO, period));","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" return Optional.of(convertedValue);","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" } catch (NumberFormatException e) {","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" throw new ParseException(String.format(PARSE_EXCEPTION_MESSAGE_NUMBER_TOO_LARGE, period));","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":55}},{"path":"src/main/java/reposense/parser/types/ReportFolderArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.impl.Arguments;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" * Checks the argument of {@code --view} flag.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"public class ReportFolderArgumentType implements ArgumentType\u003cPath\u003e {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" public Path convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" // Piggyback on library methods to do file existence checks","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" Arguments.fileType().verifyExists().verifyIsDirectory().verifyCanRead().convert(parser, arg, value);","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" return Paths.get(value);","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":21}},{"path":"src/main/java/reposense/parser/types/SinceDateArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.time.Instant;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.time.ZonedDateTime;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.util.TimeUtil;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" * Verifies and parses a string-formatted since date to a {@link LocalDateTime} object.","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"public class SinceDateArgumentType extends DateArgumentType {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" /*","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" * When user specifies \"d1\", arbitrary first commit date will be returned.","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" * This date is equivalent to 1970-01-01 00:00:00 in UTC time.","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" * Then, ReportGenerator will replace the arbitrary since date with the earliest commit date.","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" public static final String FIRST_COMMIT_DATE_SHORTHAND \u003d \"d1\";","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" private static final ZonedDateTime ARBITRARY_FIRST_COMMIT_DATE_UTC \u003d ZonedDateTime.ofInstant(","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" Instant.ofEpochMilli(0), ZoneId.of(\"Z\"));","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final LocalDateTime ARBITRARY_FIRST_COMMIT_DATE_LOCAL \u003d ARBITRARY_FIRST_COMMIT_DATE_UTC","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .toLocalDateTime();","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" * Returns an arbitrary year {@link SinceDateArgumentType#ARBITRARY_FIRST_COMMIT_DATE_LOCAL} if user specifies","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" * {@link SinceDateArgumentType#FIRST_COMMIT_DATE_SHORTHAND} in {@code value}, or attempts to return the","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" * desired date otherwise.","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" * @throws ArgumentParserException if the given date cannot be parsed.","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" public Optional\u003cLocalDateTime\u003e convert(ArgumentParser parser, Argument arg, String value)","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" throws ArgumentParserException {","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" if (FIRST_COMMIT_DATE_SHORTHAND.equals(value)) {","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" return Optional.of(ARBITRARY_FIRST_COMMIT_DATE_LOCAL);","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" String sinceDate \u003d TimeUtil.extractDate(value);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" return super.convert(parser, arg, sinceDate + \" 00:00:00\");","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" * Returns the {@link SinceDateArgumentType#ARBITRARY_FIRST_COMMIT_DATE_LOCAL}, which is the","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" * {@link LocalDateTime} of {@link SinceDateArgumentType#ARBITRARY_FIRST_COMMIT_DATE_UTC}.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" public static LocalDateTime getArbitraryFirstCommitDateLocal() {","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" return ARBITRARY_FIRST_COMMIT_DATE_LOCAL;","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" * Returns the {@link SinceDateArgumentType#ARBITRARY_FIRST_COMMIT_DATE_UTC} adjusted for the time zone based on","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" * {@code toZoneId} and converted to a {@link LocalDateTime} object.","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" public static LocalDateTime getArbitraryFirstCommitDateConverted(ZoneId toZoneId) {","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" return ARBITRARY_FIRST_COMMIT_DATE_UTC.withZoneSameInstant(toZoneId).toLocalDateTime();","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":60}},{"path":"src/main/java/reposense/parser/types/UntilDateArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import reposense.util.TimeUtil;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" * Verifies and parses a string-formatted until date to a {@link LocalDateTime} object.","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"public class UntilDateArgumentType extends DateArgumentType {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" public Optional\u003cLocalDateTime\u003e convert(ArgumentParser parser, Argument arg, String value)","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" throws ArgumentParserException {","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" String untilDate \u003d TimeUtil.extractDate(value);","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" return super.convert(parser, arg, untilDate + \" 23:59:59\");","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":21}},{"path":"src/main/java/reposense/parser/types/ZoneIdArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.time.DateTimeException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" * Verifies and parses a string-formatted zone id to a {@link ZoneId} object.","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"public class ZoneIdArgumentType implements ArgumentType\u003cZoneId\u003e {","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" private static final String MESSAGE_TIMEZONE_INVALID \u003d","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" \"The timezone provided is invalid, please use a more widely accepted format. E.g. UTC[±hh[mm]]\";","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" public ZoneId convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" return ZoneId.of(value);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" } catch (DateTimeException dte) {","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" throw new ArgumentParserException(MESSAGE_TIMEZONE_INVALID, parser);","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":25}},{"path":"src/main/java/reposense/report/ReportGenerator.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.report;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.io.InputStream;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.io.PrintWriter;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.io.StringWriter;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import java.util.HashMap;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import java.util.Iterator;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import java.util.concurrent.CompletableFuture;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import java.util.concurrent.ExecutorService;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import java.util.concurrent.Executors;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import java.util.function.Supplier;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import java.util.logging.Level;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"import com.google.gson.JsonSyntaxException;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"import reposense.RepoSense;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"import reposense.authorship.AuthorshipReporter;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"import reposense.authorship.model.AuthorshipSummary;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"import reposense.commits.CommitsReporter;","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"import reposense.commits.model.CommitContributionSummary;","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"import reposense.git.GitBlame;","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"import reposense.git.GitClone;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"import reposense.git.GitRevParse;","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"import reposense.git.GitShortlog;","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"import reposense.git.GitShow;","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"import reposense.git.exception.CommitNotFoundException;","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"import reposense.git.exception.GitBranchException;","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"import reposense.git.exception.GitCloneException;","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.model.BlurbMap;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"import reposense.model.CommitHash;","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"import reposense.model.ReportConfiguration;","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"import reposense.model.StandaloneConfig;","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"import reposense.parser.StandaloneConfigJsonParser;","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidMarkdownException;","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"import reposense.report.exception.NoAuthorsWithCommitsFoundException;","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"import reposense.util.ProgressTracker;","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"import reposense.util.TimeUtil;","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" * Contains report generation related functionalities.","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"public class ReportGenerator {","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" private static final String REPOSENSE_CONFIG_FOLDER \u003d \"_reposense\";","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" private static final String REPOSENSE_CONFIG_FILE \u003d \"config.json\";","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(ReportGenerator.class);","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" // zip file which contains all the report template files","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" private static final String TEMPLATE_FILE \u003d \"/templateZip.zip\";","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" private static final String MESSAGE_INVALID_CONFIG_JSON \u003d \"%s Ignoring the config provided by %s (%s).\";","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" private static final String MESSAGE_ERROR_CREATING_DIRECTORY \u003d","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" \"Error has occurred while creating repo directory for %s (%s), will skip this repo.\";","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" private static final String MESSAGE_NO_STANDALONE_CONFIG \u003d \"%s (%s) does not contain a standalone config file.\";","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" private static final String MESSAGE_IGNORING_STANDALONE_CONFIG \u003d \"Ignoring standalone config file in %s (%s).\";","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" private static final String MESSAGE_MALFORMED_STANDALONE_CONFIG \u003d \"%s/%s/%s is malformed for %s (%s).\";","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" private static final String MESSAGE_NO_AUTHORS_SPECIFIED \u003d","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" \"%s (%s) has no authors specified, using all authors by default.\";","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" private static final String MESSAGE_NO_AUTHORS_WITH_COMMITS_FOUND \u003d","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" \"No authors found with commits for %s (%s).\";","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" private static final String MESSAGE_START_ANALYSIS \u003d \"Analyzing %s (%s)...\";","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" private static final String MESSAGE_COMPLETE_ANALYSIS \u003d \"Analysis of %s (%s) completed!\";","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" private static final String MESSAGE_REPORT_GENERATED \u003d \"The report is generated at %s\";","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" private static final String MESSAGE_BRANCH_DOES_NOT_EXIST \u003d \"Branch %s does not exist in %s! Analysis terminated.\";","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" private static final String MESSAGE_MISSING_TEMPLATE \u003d","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" \"Unable to find template file. Proceeding to generate report...\";","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" private static final String LOG_ERROR_CLONING \u003d \"Failed to clone from %s\";","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" private static final String LOG_ERROR_EXPANDING_COMMIT \u003d \"Cannot expand %s, it shall remain unexpanded\";","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" private static final String LOG_BRANCH_DOES_NOT_EXIST \u003d \"Branch \\\"%s\\\" does not exist.\";","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" private static final String LOG_ERROR_CLONING_OR_BRANCHING \u003d \"Exception met while cloning or checking out.\";","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" private static final String LOG_UNEXPECTED_ERROR \u003d \"Unexpected error stack trace for %s:\\n\u003e%s\";","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e assetsFilesWhiteList \u003d","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"sopa301"},"content":" Collections.unmodifiableList(Arrays.asList(new String[] {\"favicon.ico\", \"title.md\"}));","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" private LocalDateTime earliestSinceDate \u003d null;","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" private ProgressTracker progressTracker \u003d null;","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" * Generates the authorship and commits JSON file for each repo in {@code configs} at {@code outputPath}, as","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" * well as the summary JSON file of all the repos.","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" * @param configs The list of repos to analyze.","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" * @param outputPath The location at which to save the report.","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" * @param assetsPath The location at which assets for generating the report are stored.","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" * @param reportConfig The config for the output report.","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" * @param generationDate The time at which the report was generated.","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" * @param cliSinceDate The date-time from which to start analyzing commits.","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" * @param untilDate The cut-off date-time for analyzing commits.","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" * @param isSinceDateProvided The boolean variable for whether client provided a sinceDate.","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" * @param isUntilDateProvided The boolean variable for whether client provided an untilDate.","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" * @param numCloningThreads The number of threads to use to clone the repos.","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" * @param numAnalysisThreads The number of threads to use to analyze the repos.","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" * @param reportGenerationTimeProvider Supplier for time taken to generate the report.","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" * @param zoneId The timezone to adjust all date-times to.","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" * @param shouldFreshClone The boolean variable for whether to clone a repo again during tests.","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" * @param shouldAnalyzeAuthorship The boolean variable for whether to further analyze authorship.","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" * @param originalityThreshold The double variable for originality threshold in analyze authorship.","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"asdfghjkxd"},"content":" * @param blurbMap The {@code BlurbMap}.","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" * @return the list of file paths that were generated.","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" * @throws IOException if templateZip.zip does not exist in jar file.","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"asdfghjkxd"},"content":" * @throws InvalidMarkdownException if the blurb markdown file cannot be parsed properly.","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" public List\u003cPath\u003e generateReposReport(List\u003cRepoConfiguration\u003e configs, String outputPath, String assetsPath,","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" ReportConfiguration reportConfig, String generationDate, LocalDateTime cliSinceDate,","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" LocalDateTime untilDate, boolean isSinceDateProvided, boolean isUntilDateProvided, int numCloningThreads,","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" int numAnalysisThreads, Supplier\u003cString\u003e reportGenerationTimeProvider, ZoneId zoneId,","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"asdfghjkxd"},"content":" boolean shouldFreshClone, boolean shouldAnalyzeAuthorship, double originalityThreshold, BlurbMap blurbMap)","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"asdfghjkxd"},"content":" throws IOException, InvalidMarkdownException {","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" prepareTemplateFile(outputPath);","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" if (Files.exists(Paths.get(assetsPath))) {","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" FileUtil.copyDirectoryContents(assetsPath, outputPath, assetsFilesWhiteList);","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" earliestSinceDate \u003d null;","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" progressTracker \u003d new ProgressTracker(configs.size());","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" List\u003cPath\u003e reportFoldersAndFiles \u003d cloneAndAnalyzeRepos(configs, outputPath, numCloningThreads,","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" numAnalysisThreads, shouldFreshClone, shouldAnalyzeAuthorship, originalityThreshold);","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" LocalDateTime reportSinceDate \u003d (TimeUtil.isEqualToArbitraryFirstDateConverted(cliSinceDate, zoneId))","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" ? earliestSinceDate : cliSinceDate;","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" Optional\u003cPath\u003e summaryPath \u003d FileUtil.writeJsonFile(","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" new SummaryJson(configs, reportConfig, generationDate,","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" reportSinceDate, untilDate, isSinceDateProvided,","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" isUntilDateProvided, RepoSense.getVersion(), ErrorSummary.getInstance().getErrorSet(),","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"asdfghjkxd"},"content":" reportGenerationTimeProvider.get(), zoneId, shouldAnalyzeAuthorship, blurbMap),","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" getSummaryResultPath(outputPath));","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" summaryPath.ifPresent(reportFoldersAndFiles::add);","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" logger.info(String.format(MESSAGE_REPORT_GENERATED, outputPath));","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" return reportFoldersAndFiles;","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" * Copies the template file to the specified {@code outputPath} for the repo report to be generated.","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" * @throws IOException if I/O error encountered while copying template file.","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" private void prepareTemplateFile(String outputPath) throws IOException {","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" InputStream is \u003d RepoSense.class.getResourceAsStream(TEMPLATE_FILE);","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" if (is !\u003d null) {","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" FileUtil.copyTemplate(is, outputPath);","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" logger.warning(MESSAGE_MISSING_TEMPLATE);","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" * Groups {@link RepoConfiguration} with the same {@link RepoLocation} together so that they are only cloned once.","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" private Map\u003cRepoLocation, List\u003cRepoConfiguration\u003e\u003e groupConfigsByRepoLocation(","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs) {","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" Map\u003cRepoLocation, List\u003cRepoConfiguration\u003e\u003e repoLocationMap \u003d new HashMap\u003c\u003e();","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" for (RepoConfiguration config : configs) {","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" RepoLocation location \u003d config.getLocation();","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" if (!repoLocationMap.containsKey(location)) {","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" repoLocationMap.put(location, new ArrayList\u003c\u003e());","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" repoLocationMap.get(location).add(config);","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" return repoLocationMap;","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" * Clone, analyze and generate the report for repositories in {@code repoLocationMap}.","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" * Performs cloning and analysis of each repository in parallel, and generates the report.","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" * Also removes any configs that failed to clone or analyze from {@code configs}.","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" * By default, runs in multi-threaded mode with {@code numCloningThreads} threads for cloning","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" * and {@code numAnalysisThreads} threads for analysis.","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" * To turn off multi-threading, run the program with the flags","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" * {@code --cloning-threads 1 --analysis-threads 1}.","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" * For test environments, cloning is skipped if it has been done before and {@code shouldFreshClone} is false.","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" * Further analyzes the authorship of each line in the commit if {@code shouldAnalyzeAuthorship} is true, based on","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" * {@code originalityThreshold}.","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" * @return A list of paths to the JSON report files generated for each repository.","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" private List\u003cPath\u003e cloneAndAnalyzeRepos(List\u003cRepoConfiguration\u003e configs, String outputPath, int numCloningThreads,","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" int numAnalysisThreads, boolean shouldFreshClone, boolean shouldAnalyzeAuthorship,","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" double originalityThreshold) {","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" Map\u003cRepoLocation, List\u003cRepoConfiguration\u003e\u003e repoLocationMap \u003d groupConfigsByRepoLocation(configs);","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" List\u003cRepoLocation\u003e repoLocationList \u003d new ArrayList\u003c\u003e(repoLocationMap.keySet());","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" // Fixed thread pools are used to limit the number of threads used by cloning and analysis jobs at any one time","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" ExecutorService cloneExecutor \u003d Executors.newFixedThreadPool(numCloningThreads);","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" ExecutorService analyzeExecutor \u003d Executors.newFixedThreadPool(numAnalysisThreads);","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" List\u003cCompletableFuture\u003cAnalyzeJobOutput\u003e\u003e analyzeJobFutures \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" for (RepoLocation location : repoLocationList) {","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configsToAnalyze \u003d repoLocationMap.get(location);","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" // The `CompletableFuture.supplyAsync` method is used to clone the repo in parallel.","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" // Note that the `cloneExecutor` is passed as a parameter to ensure that the number of threads used","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" // for cloning is no more than `numCloningThreads`.","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" CompletableFuture\u003cCloneJobOutput\u003e cloneFuture \u003d CompletableFuture.supplyAsync(() -\u003e","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" cloneRepo(configsToAnalyze.get(0), location, shouldFreshClone), cloneExecutor);","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" // The `thenApplyAsync` method is used to analyze the cloned repo in parallel.","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" // This ensures that the analysis job for each repo will only be run after the repo has been cloned.","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" // Note that the `analyzeExecutor` is passed as a parameter to ensure that the number of threads used","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" // for analysis is no more than `numAnalysisThreads`.","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" CompletableFuture\u003cAnalyzeJobOutput\u003e analyzeFuture \u003d cloneFuture.thenApplyAsync(","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" cloneJobOutput -\u003e analyzeRepos(outputPath, configsToAnalyze, cloneJobOutput,","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" shouldAnalyzeAuthorship, originalityThreshold),","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" analyzeExecutor);","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" analyzeJobFutures.add(analyzeFuture);","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" // Next, we collect the list of outputs from all the analyze jobs","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" List\u003cAnalyzeJobOutput\u003e jobOutputs \u003d analyzeJobFutures.stream()","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" .map(CompletableFuture::join)","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" // Finally, the ExecutorService objects are shut down to prevent memory leaks","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" cloneExecutor.shutdown();","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" analyzeExecutor.shutdown();","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" List\u003cPath\u003e generatedFiles \u003d jobOutputs","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" .stream()","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" .flatMap(jobOutput -\u003e jobOutput.getFiles().stream())","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" List\u003cRepoLocation\u003e cloneFailLocations \u003d jobOutputs","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" .stream()","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" .filter(jobOutput -\u003e !jobOutput.isCloneSuccessful())","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" .map(AnalyzeJobOutput::getLocation)","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" cloneFailLocations.forEach(location -\u003e handleCloningFailed(configs, location));","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" List\u003cAnalysisErrorInfo\u003e analysisErrors \u003d jobOutputs","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" .stream()","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" .flatMap(jobOutput -\u003e jobOutput.getAnalyseErrors().stream())","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" analysisErrors.forEach(errorInfo -\u003e","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" handleAnalysisFailed(configs, errorInfo.getFailedConfig(), errorInfo.getErrorMessage()));","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" RepoCloner repoCloner \u003d new RepoCloner();","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" repoCloner.cleanup();","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" return generatedFiles;","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" * Clones repo specified by {@code config} at {@code location}.","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" * For test environments, cloning is skipped if it has been done before and {@code shouldFreshClone} is false.","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" * @return A {@link CloneJobOutput} object comprising the {@code location} of the repo, whether the cloning was","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" * successful, and the {@code defaultBranch} of the repo.","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" private CloneJobOutput cloneRepo(RepoConfiguration config, RepoLocation location, boolean shouldFreshClone) {","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" RepoCloner repoCloner \u003d new RepoCloner();","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" repoCloner.cloneBare(config, shouldFreshClone);","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" RepoLocation clonedRepoLocation \u003d repoCloner.getClonedRepoLocation();","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" if (clonedRepoLocation !\u003d null) {","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" String defaultBranch \u003d repoCloner.getCurrentRepoDefaultBranch();","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" return new CloneJobOutput(location, defaultBranch);","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" return new CloneJobOutput(location);","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" * Analyzes all repos in {@code configsToAnalyze} and generates their report at {@code outputPath}.","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" * Uses {@code cloneJobOutput} to find repo location, default branch and whether cloning was successful.","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" * Further analyzes the authorship of each line in the commit if {@code shouldAnalyzeAuthorship} is true, based on","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" * {@code originalityThreshold}.","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":" * @return An {@link AnalyzeJobOutput} object comprising the {@code location} of the repo, whether the cloning was","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" * successful, the list of {@code generatedFiles} by the analysis and a list of {@code analysisErrors} encountered.","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" private AnalyzeJobOutput analyzeRepos(String outputPath, List\u003cRepoConfiguration\u003e configsToAnalyze,","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" CloneJobOutput cloneJobOutput, boolean shouldAnalyzeAuthorship, double originalityThreshold) {","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" RepoLocation location \u003d cloneJobOutput.getLocation();","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" boolean cloneSuccessful \u003d cloneJobOutput.isCloneSuccessful();","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" List\u003cPath\u003e generatedFiles \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" List\u003cAnalysisErrorInfo\u003e analysisErrors \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" RepoCloner repoCloner \u003d new RepoCloner();","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" if (!cloneSuccessful) {","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" repoCloner.cleanupRepo(configsToAnalyze.get(0));","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":" return new AnalyzeJobOutput(location, cloneSuccessful, generatedFiles, analysisErrors);","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" for (RepoConfiguration configToAnalyze : configsToAnalyze) {","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" progressTracker.incrementProgress();","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":" configToAnalyze.updateBranch(cloneJobOutput.getDefaultBranch());","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":" Path repoReportDirectory \u003d Paths.get(outputPath, configToAnalyze.getOutputFolderName());","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" logger.info(String.format(progressTracker.getProgress() + \" \" + MESSAGE_START_ANALYSIS,","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":" configToAnalyze.getLocation(), configToAnalyze.getBranch()));","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" GitRevParse.assertBranchExists(configToAnalyze, FileUtil.getBareRepoPath(configToAnalyze));","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":" GitClone.cloneFromBareAndUpdateBranch(Paths.get(\".\"), configToAnalyze);","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":" FileUtil.createDirectory(repoReportDirectory);","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":" generatedFiles.addAll(analyzeRepo(configToAnalyze, repoReportDirectory.toString(),","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" shouldAnalyzeAuthorship, originalityThreshold));","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":" } catch (IOException ioe) {","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":" String logMessage \u003d String.format(MESSAGE_ERROR_CREATING_DIRECTORY,","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" configToAnalyze.getLocation(), configToAnalyze.getBranch());","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, logMessage, ioe);","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" } catch (GitBranchException gbe) {","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" logger.log(Level.SEVERE, String.format(MESSAGE_BRANCH_DOES_NOT_EXIST,","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" configToAnalyze.getBranch(), configToAnalyze.getLocation()), gbe);","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":" analysisErrors.add(new AnalysisErrorInfo(configToAnalyze,","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":" String.format(LOG_BRANCH_DOES_NOT_EXIST, configToAnalyze.getBranch())));","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" } catch (GitCloneException gce) {","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":" analysisErrors.add(new AnalysisErrorInfo(configToAnalyze, LOG_ERROR_CLONING_OR_BRANCHING));","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" } catch (NoAuthorsWithCommitsFoundException nafe) {","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, String.format(MESSAGE_NO_AUTHORS_WITH_COMMITS_FOUND,","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" configToAnalyze.getLocation(), configToAnalyze.getBranch()));","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":" generatedFiles.addAll(generateEmptyRepoReport(repoReportDirectory.toString(),","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" Author.NAME_NO_AUTHOR_WITH_COMMITS_FOUND));","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" generateEmptyRepoReport(repoReportDirectory.toString(), Author.NAME_NO_AUTHOR_WITH_COMMITS_FOUND);","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" } catch (Exception e) {","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" StringWriter sw \u003d new StringWriter();","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":" e.printStackTrace(new PrintWriter(sw));","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":" logger.log(Level.SEVERE, sw.toString());","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":" analysisErrors.add(new AnalysisErrorInfo(configToAnalyze,","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":" String.format(LOG_UNEXPECTED_ERROR, configToAnalyze.getLocation(), sw.toString())));","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":" repoCloner.cleanupRepo(configsToAnalyze.get(0));","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":" return new AnalyzeJobOutput(location, cloneSuccessful, generatedFiles, analysisErrors);","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":" * Analyzes repo specified by {@code config} and generates the report at {@code repoReportDirectory}.","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":" * Further analyzes the authorship of each line in the commit if {@code shouldAnalyzeAuthorship} is true, based on","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" * {@code originalityThreshold}.","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":" * @return A list of paths to the JSON report files generated for the repo specified by {@code config}.","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":" * @throws NoAuthorsWithCommitsFoundException if there are no authors with commits found for the repo.","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"-"},"content":" private List\u003cPath\u003e analyzeRepo(RepoConfiguration config, String repoReportDirectory,","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"-"},"content":" boolean shouldAnalyzeAuthorship, double originalityThreshold) throws NoAuthorsWithCommitsFoundException {","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"-"},"content":" // preprocess the config and repo","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"-"},"content":" updateRepoConfig(config);","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" updateAuthorList(config);","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":" updateIgnoreCommitList(config);","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"-"},"content":" if (config.isFindingPreviousAuthorsPerformed()) {","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":" generateIgnoreRevsFile(config);","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"-"},"content":" AuthorshipReporter authorshipReporter \u003d new AuthorshipReporter();","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"-"},"content":" AuthorshipSummary authorshipSummary \u003d authorshipReporter.generateAuthorshipSummary(config,","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"-"},"content":" shouldAnalyzeAuthorship, originalityThreshold);","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":" CommitsReporter commitsReporter \u003d new CommitsReporter();","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":" CommitContributionSummary commitSummary \u003d commitsReporter.generateCommitSummary(config);","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":" earliestSinceDate \u003d commitSummary.getEarliestSinceDate();","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":" List\u003cPath\u003e generatedFiles \u003d generateIndividualRepoReport(repoReportDirectory, commitSummary, authorshipSummary);","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"-"},"content":" logger.info(String.format(MESSAGE_COMPLETE_ANALYSIS, config.getLocation(), config.getBranch()));","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"-"},"content":" return generatedFiles;","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":" * Updates {@code config} with configuration provided by repository if exists.","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"-"},"content":" * @throws AssertionError if there is a problem with the file existence check.","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"-"},"content":" public void updateRepoConfig(RepoConfiguration config) throws AssertionError {","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"-"},"content":" Path configJsonPath \u003d","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"-"},"content":" Paths.get(config.getRepoRoot(), REPOSENSE_CONFIG_FOLDER, REPOSENSE_CONFIG_FILE).toAbsolutePath();","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"-"},"content":" if (!Files.exists(configJsonPath)) {","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"-"},"content":" logger.info(String.format(MESSAGE_NO_STANDALONE_CONFIG, config.getLocation(), config.getBranch()));","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"-"},"content":" return;","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"-"},"content":" if (config.isStandaloneConfigIgnored()) {","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"-"},"content":" logger.info(String.format(MESSAGE_IGNORING_STANDALONE_CONFIG, config.getLocation(), config.getBranch()));","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"-"},"content":" return;","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"-"},"content":" StandaloneConfig standaloneConfig \u003d new StandaloneConfigJsonParser().parse(configJsonPath);","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"-"},"content":" config.update(standaloneConfig);","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"-"},"content":" } catch (JsonSyntaxException jse) {","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_MALFORMED_STANDALONE_CONFIG, config.getDisplayName(),","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"-"},"content":" REPOSENSE_CONFIG_FOLDER, REPOSENSE_CONFIG_FILE, config.getLocation(), config.getBranch()));","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"-"},"content":" } catch (IllegalArgumentException iae) {","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_INVALID_CONFIG_JSON,","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"-"},"content":" iae.getMessage(), config.getLocation(), config.getBranch()));","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"-"},"content":" } catch (IOException ioe) {","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"-"},"content":" throw new AssertionError(","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"-"},"content":" \"This exception should not happen as we have performed the file existence check.\");","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"-"},"content":" * Find and update {@code config} with all the author identities if author list is empty.","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"-"},"content":" * Also removes ignored authors from author list.","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"-"},"content":" * @throws NoAuthorsWithCommitsFoundException if there are no authors with commits found for the repo.","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"-"},"content":" private void updateAuthorList(RepoConfiguration config) throws NoAuthorsWithCommitsFoundException {","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"-"},"content":" if (config.getAuthorList().isEmpty()) {","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"-"},"content":" logger.info(String.format(MESSAGE_NO_AUTHORS_SPECIFIED, config.getLocation(), config.getBranch()));","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e authorList \u003d GitShortlog.getAuthors(config);","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"-"},"content":" if (authorList.isEmpty()) {","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"-"},"content":" throw new NoAuthorsWithCommitsFoundException();","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"-"},"content":" config.setAuthorList(authorList);","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"-"},"content":" config.removeIgnoredAuthors();","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"-"},"content":" * Updates {@code config} with the exact list of commits if commit ranges are provided.","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"-"},"content":" private void updateIgnoreCommitList(RepoConfiguration config) {","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"-"},"content":" List\u003cCommitHash\u003e updatedIgnoreCommitList \u003d config.getIgnoreCommitList().stream()","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"-"},"content":" .flatMap(x -\u003e CommitHash.getHashes(config.getRepoRoot(), config.getBranch(), x))","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"-"},"content":" config.setIgnoreCommitList(updatedIgnoreCommitList);","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"-"},"content":" * Adds {@code configs} that were not successfully cloned from {@code failedRepoLocation}","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"-"},"content":" * into the list of errors in the summary report and removes them from the list of {@code configs}.","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"-"},"content":" private void handleCloningFailed(List\u003cRepoConfiguration\u003e configs, RepoLocation failedRepoLocation) {","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e failedConfigs \u003d configs.stream()","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"-"},"content":" .filter(config -\u003e config.getLocation().equals(failedRepoLocation))","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"-"},"content":" handleFailedConfigs(configs, failedConfigs, String.format(LOG_ERROR_CLONING, failedRepoLocation));","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"-"},"content":" * Adds {@code failedConfig} that failed analysis into the list of errors in the summary report along with","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"-"},"content":" * an {@code errorMessage} and removes {@code failedConfig} from the list of {@code configs}.","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"-"},"content":" private void handleAnalysisFailed(List\u003cRepoConfiguration\u003e configs, RepoConfiguration failedConfig,","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"-"},"content":" String errorMessage) {","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"-"},"content":" handleFailedConfigs(configs, Collections.singletonList(failedConfig), errorMessage);","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"-"},"content":" * Adds {@code failedConfigs} that failed cloning/analysis into the list of errors in the summary report along","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"-"},"content":" * with an {@code errorMessage} and removes {@code failedConfigs} from the list of {@code configs}.","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"-"},"content":" private void handleFailedConfigs(List\u003cRepoConfiguration\u003e configs, List\u003cRepoConfiguration\u003e failedConfigs,","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"-"},"content":" String errorMessage) {","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"-"},"content":" Iterator\u003cRepoConfiguration\u003e itr \u003d configs.iterator();","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"-"},"content":" while (itr.hasNext()) {","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"-"},"content":" RepoConfiguration config \u003d itr.next();","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"-"},"content":" if (failedConfigs.contains(config)) {","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"-"},"content":" ErrorSummary.getInstance().addErrorMessage(config.getDisplayName(), errorMessage);","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"-"},"content":" itr.remove();","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"-"},"content":" * Generates an empty report at the {@code repoReportDirectory}, with the author display name","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"-"},"content":" * as {@code displayName}.","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"-"},"content":" * @return A list of paths to the JSON report files generated for this empty report.","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"-"},"content":" private List\u003cPath\u003e generateEmptyRepoReport(String repoReportDirectory, String displayName) {","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"-"},"content":" CommitReportJson emptyCommitReportJson \u003d new CommitReportJson(displayName);","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"-"},"content":" List\u003cPath\u003e generatedFiles \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"-"},"content":" FileUtil.writeJsonFile(emptyCommitReportJson, getIndividualCommitsPath(repoReportDirectory))","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"-"},"content":" .ifPresent(generatedFiles::add);","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"-"},"content":" FileUtil.writeJsonFile(Collections.emptyList(), getIndividualAuthorshipPath(repoReportDirectory))","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"-"},"content":" .ifPresent(generatedFiles::add);","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"-"},"content":" return generatedFiles;","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"-"},"content":" * Generates a report for a single repository at {@code repoReportDirectory} based on {@code commitSummary}","isFullCredit":false},{"lineNumber":504,"author":{"gitId":"-"},"content":" * and {@code authorshipSummary}.","isFullCredit":false},{"lineNumber":505,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":506,"author":{"gitId":"-"},"content":" * @return A list of paths to the JSON report files generated for this report.","isFullCredit":false},{"lineNumber":507,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":508,"author":{"gitId":"-"},"content":" private List\u003cPath\u003e generateIndividualRepoReport(String repoReportDirectory,","isFullCredit":false},{"lineNumber":509,"author":{"gitId":"-"},"content":" CommitContributionSummary commitSummary, AuthorshipSummary authorshipSummary) {","isFullCredit":false},{"lineNumber":510,"author":{"gitId":"-"},"content":" CommitReportJson commitReportJson \u003d new CommitReportJson(commitSummary, authorshipSummary);","isFullCredit":false},{"lineNumber":511,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":512,"author":{"gitId":"-"},"content":" List\u003cPath\u003e generatedFiles \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":513,"author":{"gitId":"-"},"content":" FileUtil.writeJsonFile(commitReportJson, getIndividualCommitsPath(repoReportDirectory))","isFullCredit":false},{"lineNumber":514,"author":{"gitId":"-"},"content":" .ifPresent(generatedFiles::add);","isFullCredit":false},{"lineNumber":515,"author":{"gitId":"-"},"content":" FileUtil.writeJsonFile(authorshipSummary.getFileResults(), getIndividualAuthorshipPath(repoReportDirectory))","isFullCredit":false},{"lineNumber":516,"author":{"gitId":"-"},"content":" .ifPresent(generatedFiles::add);","isFullCredit":false},{"lineNumber":517,"author":{"gitId":"-"},"content":" return generatedFiles;","isFullCredit":false},{"lineNumber":518,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":519,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":520,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":521,"author":{"gitId":"-"},"content":" * Creates the .git-blame-ignore-revs file containing the contents of {@code ignoreCommitList}","isFullCredit":false},{"lineNumber":522,"author":{"gitId":"-"},"content":" * in the repo root directory of {@code config}.","isFullCredit":false},{"lineNumber":523,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":524,"author":{"gitId":"-"},"content":" private void generateIgnoreRevsFile(RepoConfiguration config) {","isFullCredit":false},{"lineNumber":525,"author":{"gitId":"-"},"content":" List\u003cCommitHash\u003e expandedIgnoreCommitList \u003d config.getIgnoreCommitList().stream()","isFullCredit":false},{"lineNumber":526,"author":{"gitId":"-"},"content":" .map(CommitHash::toString)","isFullCredit":false},{"lineNumber":527,"author":{"gitId":"-"},"content":" .map(commitHash -\u003e {","isFullCredit":false},{"lineNumber":528,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":529,"author":{"gitId":"-"},"content":" return GitShow.getExpandedCommitHash(config.getRepoRoot(), commitHash);","isFullCredit":false},{"lineNumber":530,"author":{"gitId":"-"},"content":" } catch (CommitNotFoundException e) {","isFullCredit":false},{"lineNumber":531,"author":{"gitId":"-"},"content":" logger.warning(String.format(LOG_ERROR_EXPANDING_COMMIT, commitHash));","isFullCredit":false},{"lineNumber":532,"author":{"gitId":"-"},"content":" return new CommitHash(commitHash);","isFullCredit":false},{"lineNumber":533,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":534,"author":{"gitId":"-"},"content":" })","isFullCredit":false},{"lineNumber":535,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":536,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":537,"author":{"gitId":"-"},"content":" config.setIgnoreCommitList(expandedIgnoreCommitList);","isFullCredit":false},{"lineNumber":538,"author":{"gitId":"-"},"content":" FileUtil.writeIgnoreRevsFile(getIgnoreRevsFilePath(config.getRepoRoot()), config.getIgnoreCommitList());","isFullCredit":false},{"lineNumber":539,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":540,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":541,"author":{"gitId":"-"},"content":" private String getSummaryResultPath(String targetFileLocation) {","isFullCredit":false},{"lineNumber":542,"author":{"gitId":"-"},"content":" return targetFileLocation + \"/\" + SummaryJson.SUMMARY_JSON_FILE_NAME;","isFullCredit":false},{"lineNumber":543,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":544,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":545,"author":{"gitId":"-"},"content":" private String getIgnoreRevsFilePath(String targetFileLocation) {","isFullCredit":false},{"lineNumber":546,"author":{"gitId":"-"},"content":" return targetFileLocation + GitBlame.IGNORE_COMMIT_LIST_FILE_NAME;","isFullCredit":false},{"lineNumber":547,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":548,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":549,"author":{"gitId":"-"},"content":" private String getIndividualAuthorshipPath(String repoReportDirectory) {","isFullCredit":false},{"lineNumber":550,"author":{"gitId":"-"},"content":" return repoReportDirectory + \"/authorship.json\";","isFullCredit":false},{"lineNumber":551,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":552,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":553,"author":{"gitId":"-"},"content":" private String getIndividualCommitsPath(String repoReportDirectory) {","isFullCredit":false},{"lineNumber":554,"author":{"gitId":"-"},"content":" return repoReportDirectory + \"/commits.json\";","isFullCredit":false},{"lineNumber":555,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":556,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":557,"author":{"gitId":"-"},"content":" public void setEarliestSinceDate(LocalDateTime newEarliestSinceDate) {","isFullCredit":false},{"lineNumber":558,"author":{"gitId":"-"},"content":" if (earliestSinceDate \u003d\u003d null || newEarliestSinceDate.compareTo(earliestSinceDate) \u003c 0) {","isFullCredit":false},{"lineNumber":559,"author":{"gitId":"-"},"content":" earliestSinceDate \u003d newEarliestSinceDate;","isFullCredit":false},{"lineNumber":560,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":561,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":562,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":7,"sopa301":1,"-":554}},{"path":"src/main/java/reposense/report/SummaryJson.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.report;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.Set;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.model.BlurbMap;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.model.ReportConfiguration;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.model.SupportedDomainUrlMap;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" * Represents the structure of summary.json file in reposense-report folder.","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"public class SummaryJson {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" public static final String SUMMARY_JSON_FILE_NAME \u003d \"summary.json\";","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" private final String repoSenseVersion;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" private final String reportGeneratedTime;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" private final String reportGenerationTime;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private final ZoneId zoneId;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" private final String reportTitle;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private final List\u003cRepoConfiguration\u003e repos;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private final Set\u003cMap\u003cString, String\u003e\u003e errorSet;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private final LocalDateTime sinceDate;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" private final LocalDateTime untilDate;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private final boolean isSinceDateProvided;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" private final boolean isUntilDateProvided;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private final Map\u003cString, Map\u003cString, String\u003e\u003e supportedDomainUrlMap;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private final boolean isAuthorshipAnalyzed;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":" private final BlurbMap blurbs;","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" public SummaryJson(List\u003cRepoConfiguration\u003e repos, ReportConfiguration reportConfig, String reportGeneratedTime,","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":" LocalDateTime sinceDate, LocalDateTime untilDate, boolean isSinceDateProvided,","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":" boolean isUntilDateProvided, String repoSenseVersion, Set\u003cMap\u003cString, String\u003e\u003e errorSet,","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":" String reportGenerationTime, ZoneId zoneId,","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"asdfghjkxd"},"content":" boolean isAuthorshipAnalyzed, BlurbMap blurbs) {","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" this.repos \u003d repos;","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" this.reportGeneratedTime \u003d reportGeneratedTime;","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" this.reportGenerationTime \u003d reportGenerationTime;","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" this.reportTitle \u003d reportConfig.getTitle();","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" this.sinceDate \u003d sinceDate;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" this.untilDate \u003d untilDate;","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" this.isSinceDateProvided \u003d isSinceDateProvided;","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" this.isUntilDateProvided \u003d isUntilDateProvided;","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" this.repoSenseVersion \u003d repoSenseVersion;","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" this.errorSet \u003d errorSet;","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" this.zoneId \u003d zoneId;","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" this.supportedDomainUrlMap \u003d SupportedDomainUrlMap.getDefaultDomainUrlMap();","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" this.isAuthorshipAnalyzed \u003d isAuthorshipAnalyzed;","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"asdfghjkxd"},"content":" this.blurbs \u003d blurbs;","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":7,"-":48}},{"path":"src/main/java/reposense/util/StringsUtil.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.util;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" * Contains strings related utilities.","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"public class StringsUtil {","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":" public static final Pattern NEWLINE \u003d Pattern.compile(\"\\n\");","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":" public static final Pattern TAB \u003d Pattern.compile(\"\\t\");","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" public static final Pattern SPACE \u003d Pattern.compile(\" \");","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":" public static final Pattern NUMERIC \u003d Pattern.compile(\"^\\\\d+$\");","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" private static final Pattern SPECIAL_SYMBOLS \u003d Pattern.compile(\"[@;:\u0026/\\\\\\\\!\u003c\u003e{}%#\\\"\\\\-\u003d\u0027()\\\\[\\\\].+*?^$|]\");","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Filters the {@code text}, returning only the lines that matches the given {@code regex}.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" public static String filterText(String text, String regex) {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" StringBuilder sb \u003d new StringBuilder();","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":" Pattern regexPattern \u003d Pattern.compile(regex);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":" for (String line : NEWLINE.split(text)) {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":" if (regexPattern.matcher(line).matches()) {","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":" sb.append(line).append(\"\\n\");","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" return sb.toString();","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" * Converts all special symbol characters inside {@code regexString} to the {@code replacementCharacter}.","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" public static String replaceSpecialSymbols(String regexString, String replacementCharacter) {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" return SPECIAL_SYMBOLS.matcher(regexString).replaceAll(replacementCharacter);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" * Adds quotes to the string.","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" public static String addQuotes(String original) {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" return \"\\\"\" + original + \"\\\"\";","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" * Adds the appropriate quotation marks for a file path depending on the OS.","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" public static String addQuotesForFilePath(String filePath) {","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" if (SystemUtil.isWindows()) {","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" return \"\\\"\" + filePath + \"\\\"\";","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" StringBuilder sb \u003d new StringBuilder();","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" for (int i \u003d 0; i \u003c filePath.length(); i++) {","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" char c \u003d filePath.charAt(i);","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" if (c \u003d\u003d \u0027\\\u0027\u0027) {","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" sb.append(\"\u0027\\\"\u0027\\\"\u0027\");","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" sb.append(c);","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" return \u0027\\\u0027\u0027 + sb.toString() + \u0027\\\u0027\u0027;","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" * Removes quotes at the start and end of {@code original}, if exists.","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" public static String removeQuote(String original) {","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" return (original.startsWith(\"\\\"\") \u0026\u0026 original.endsWith(\"\\\"\"))","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" ? original.substring(1, original.length() - 1)","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" : original;","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" * Removes trailing backslashes from a {@code string}, if it exists.","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" public static String removeTrailingBackslash(String string) {","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" if (string.isEmpty()) {","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" return string;","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" int lastCharIndex \u003d string.length() - 1;","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" String editedString \u003d string;","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" boolean isLastCharBackslash \u003d string.charAt(lastCharIndex) \u003d\u003d \u0027\\\\\u0027;","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" while (isLastCharBackslash) {","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" editedString \u003d editedString.substring(0, lastCharIndex--);","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" boolean isStringEmpty \u003d editedString.length() \u003d\u003d 0;","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" isLastCharBackslash \u003d !isStringEmpty \u0026\u0026 editedString.charAt(lastCharIndex) \u003d\u003d \u0027\\\\\u0027;","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" return editedString;","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" * Returns true iff {@code string} is purely numeric.","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" public static boolean isNumeric(String string) {","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"asdfghjkxd"},"content":" return NUMERIC.matcher(string).matches();","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" * Calculates the Levenshtein Distance between two strings using Dynamic Programming.","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" * Insertion, deletion, and substitution are all of cost 1.","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" * This version improves the space complexity down to O(min(s, t))","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" * \u003cp\u003e\u003c/p\u003e","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" * The dp will stop if the {@code limit} is reached, this means that if the final distance is 7 and the limit is set","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" * to 3, the algorithm ends early once it reaches 3. This is possible as we are using this method to find the string","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" * with the lowest Levenshtein distance.","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" * \u003cp\u003e\u003c/p\u003e","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" * Returns {@code Integer.MAX_VALUE} if limit is reached, else returns the computed Levenshtein distance.","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" public static int getLevenshteinDistance(String s, String t, double limit) {","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" // Early termination if either string is empty, lev dist is just the length of the other string.","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" if (s.isEmpty()) {","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" return t.length();","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" if (t.isEmpty()) {","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" return s.length();","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" // The final lev dist is at least k where k \u003d difference in length \u003d number of insert/delete.","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" if (Math.abs(s.length() - t.length()) \u003e\u003d limit) {","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" return Integer.MAX_VALUE;","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" if (s.length() \u003c t.length()) {","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" // Swap s and t to ensure s is always the longer string","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" String temp \u003d s;","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" s \u003d t;","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" t \u003d temp;","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" int[] dp \u003d new int[t.length() + 1];","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" for (int i \u003d 0; i \u003c\u003d t.length(); i++) {","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" dp[i] \u003d i;","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" for (int i \u003d 1; i \u003c\u003d s.length(); i++) {","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" // Store the value of the previous row\u0027s column","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" int prev \u003d dp[0];","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" dp[0] \u003d i;","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" // If for this row, all the values are at least k, then the final lev dist computed will also be at least k.","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" // hasLower will check for values smaller than the limit, and terminate early if limit is reached.","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" boolean hasLower \u003d false;","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" for (int j \u003d 1; j \u003c\u003d t.length(); j++) {","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" int temp \u003d dp[j];","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" if (s.charAt(i - 1) \u003d\u003d t.charAt(j - 1)) {","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" dp[j] \u003d prev;","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" dp[j] \u003d Math.min(prev, Math.min(dp[j - 1], dp[j])) + 1;","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" prev \u003d temp;","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" if (dp[j] \u003c limit) {","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" hasLower \u003d true;","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" if (!hasLower) {","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" return Integer.MAX_VALUE;","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" return dp[t.length()];","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":9,"-":161}},{"path":"src/main/java/reposense/util/TimeUtil.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.util;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.time.format.DateTimeFormatter;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.time.format.DateTimeParseException;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.time.format.ResolverStyle;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.regex.Matcher;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.SinceDateArgumentType;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" * Contains time related functionalities.","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"public class TimeUtil {","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" private static Long startTime;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" private static final String DATE_FORMAT_REGEX \u003d","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" \"^((0?[1-9]|[12][0-9]|3[01])\\\\/(0?[1-9]|1[012])\\\\/(19|2[0-9])[0-9]{2})\";","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" // \"uuuu\" is used for year since \"yyyy\" does not work with ResolverStyle.STRICT","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" private static final DateTimeFormatter CLI_ARGS_DATE_FORMAT \u003d DateTimeFormatter.ofPattern(\"d/M/uuuu HH:mm:ss\");","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final String EARLIEST_VALID_DATE \u003d \"1970-01-01T00:00:00\";","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final String LATEST_VALID_DATE \u003d \"2099-12-31T23:59:59\";","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" private static final String MESSAGE_SINCE_DATE_EARLIER_THAN_EARLIEST_VALID_DATE \u003d","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" \"Date of %s must not be earlier than \"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" + String.format(\"%s, resetting it to earliest valid date\", EARLIEST_VALID_DATE);","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private static final String MESSAGE_UNTIL_DATE_LATER_THAN_LATEST_VALID_DATE \u003d","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" \"Date of %s must not be later than \"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" + String.format(\"%s, resetting it to latest valid date\", LATEST_VALID_DATE);","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(TimeUtil.class);","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" * Sets the {@code startTime} to be the current time.","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" public static void startTimer() {","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" startTime \u003d System.nanoTime();","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" * Returns the formatted elapsed time from {@code startTime} until current time.","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" public static String getElapsedTime() {","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" long endTime \u003d System.nanoTime();","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" double elapsedTime \u003d (double) (endTime - startTime) / 1_000_000_000.0;","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" int elapsedHours \u003d (int) elapsedTime / 3600;","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" int elapsedMinutes \u003d (int) (elapsedTime % 3600) / 60;","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" double elapsedSeconds \u003d elapsedTime % 60;","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" String formattedElapsedTime \u003d \"\";","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" if (elapsedHours \u003e 0) {","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" formattedElapsedTime +\u003d String.format(\" %d hour(s)\", elapsedHours);","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" if (elapsedMinutes \u003e 0) {","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" formattedElapsedTime +\u003d String.format(\" %d minute(s)\", elapsedMinutes);","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" formattedElapsedTime +\u003d String.format(\" %.2f second(s)\", elapsedSeconds);","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" return formattedElapsedTime;","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" * Returns the formatted elapsed time from {@code startTime} until current time,","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" * with an additional explanatory string.","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" public static String getElapsedTimeMessage() {","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" return \"Elapsed processing time:\" + getElapsedTime();","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" * Returns a valid {@link LocalDateTime} that is set to midnight for the given {@code sinceDate}.","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" public static LocalDateTime getSinceDate(LocalDateTime sinceDate) {","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" return getValidDate(sinceDate).withHour(0).withMinute(0).withSecond(0);","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" * Returns a valid {@link LocalDateTime} that is set to 23:59:59 for the given {@code untilDate}.","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" public static LocalDateTime getUntilDate(LocalDateTime untilDate) {","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" return getValidDate(untilDate).withHour(23).withMinute(59).withSecond(59);","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" * Returns a valid {@link LocalDateTime} that is within {@value EARLIEST_VALID_DATE} and {@value LATEST_VALID_DATE}.","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" * Resets {@code date} passed the closest valid date if it exceeds the date range.","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" public static LocalDateTime getValidDate(LocalDateTime date) {","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" if (date.isBefore(LocalDateTime.parse(EARLIEST_VALID_DATE))) {","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_SINCE_DATE_EARLIER_THAN_EARLIEST_VALID_DATE, date));","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" return LocalDateTime.parse(EARLIEST_VALID_DATE);","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" if (date.isAfter(LocalDateTime.parse(LATEST_VALID_DATE))) {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_UNTIL_DATE_LATER_THAN_LATEST_VALID_DATE, date));","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" return LocalDateTime.parse(LATEST_VALID_DATE);","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" return date;","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} that is one month before {@code cliUntilDate} (if present) or one month","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" * before report generation date otherwise.","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" public static LocalDateTime getDateMinusAMonth(LocalDateTime cliUntilDate) {","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" return getSinceDate(cliUntilDate.minusMonths(1));","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} that is {@code numOfDays} before {@code cliUntilDate} (if present) or one month","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" * before report generation date otherwise.","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" public static LocalDateTime getDateMinusNDays(LocalDateTime cliUntilDate, int numOfDays) {","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" return getSinceDate(cliUntilDate.minusDays(numOfDays));","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} that is {@code numOfDays} after {@code cliSinceDate} (if present).","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" public static LocalDateTime getDatePlusNDays(LocalDateTime cliSinceDate, int numOfDays) {","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" return getUntilDate(cliSinceDate.plusDays(numOfDays));","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" * Returns current date with time set to 23:59:59. The time zone is adjusted to the given {@code zoneId}.","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" public static LocalDateTime getCurrentDate(ZoneId zoneId) {","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" return LocalDateTime.now(zoneId).withHour(23).withMinute(59).withSecond(59).withNano(0);","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" * Returns the {@link LocalDateTime} of {@code ARBITRARY_FIRST_COMMIT_DATE} in the UTC time zone.","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" public static LocalDateTime getArbitraryFirstCommitDateLocal() {","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" return SinceDateArgumentType.getArbitraryFirstCommitDateLocal();","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" * Returns the {@link LocalDateTime} of {@code ARBITRARY_FIRST_COMMIT_DATE} adjusted for the time zone based on","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" * {@code toZoneId}.","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" public static LocalDateTime getArbitraryFirstCommitDateConverted(ZoneId toZoneId) {","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" return SinceDateArgumentType.getArbitraryFirstCommitDateConverted(toZoneId);","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" * Checks whether the given {@code dateTime} is the {@code ARBITRARY_FIRST_COMMIT_DATE} in UTC time.","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" public static boolean isEqualToArbitraryFirstDateUtc(LocalDateTime dateTime) {","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" return dateTime.equals(getArbitraryFirstCommitDateLocal());","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" * Checks whether the given {@code dateTime} is the {@code ARBITRARY_FIRST_COMMIT_DATE} in the time zone given by","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" * {@code zoneId}.","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" public static boolean isEqualToArbitraryFirstDateConverted(LocalDateTime dateTime, ZoneId zoneId) {","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" return dateTime.equals(getArbitraryFirstCommitDateConverted(zoneId));","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" * Extracts the first substring of {@code date} string that matches the {@code DATE_FORMAT_REGEX}.","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" public static String extractDate(String date) {","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" Matcher matcher \u003d Pattern.compile(DATE_FORMAT_REGEX).matcher(date);","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" String extractedDate \u003d date;","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" if (matcher.find()) {","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" extractedDate \u003d matcher.group(1);","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" return extractedDate;","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" * Parses the given {@code date} string as a {@link LocalDateTime} based on the {@code CLI_ARGS_DATE_FORMAT}.","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" * Uses {@link ResolverStyle#STRICT} to avoid unexpected dates like 31/02/2020.","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" * @throws java.text.ParseException if date cannot be parsed by the required format.","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" public static LocalDateTime parseDate(String date) throws java.text.ParseException {","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" return LocalDateTime.parse(date, CLI_ARGS_DATE_FORMAT.withResolverStyle(ResolverStyle.STRICT));","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" } catch (DateTimeParseException e) {","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" throw new java.text.ParseException(String.format(","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" \"Exception message: %s\\n\", e.getMessage()), e.getErrorIndex());","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":191}},{"path":"src/systemtest/java/reposense/ConfigSystemTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.apache.tools.ant.types.Commandline.translateCommandline;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.AfterEach;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeEach;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.parallel.Execution;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.parallel.ExecutionMode;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.model.SupportedDomainUrlMap;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.SinceDateArgumentType;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.report.ErrorSummary;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import reposense.util.InputBuilder;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import reposense.util.SystemTestUtil;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"@Execution(ExecutionMode.SAME_THREAD)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"public class ConfigSystemTest {","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e TESTING_FILE_FORMATS \u003d Arrays.asList(\"java\", \"adoc\");","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final String TEST_TIME_ZONE \u003d \"Asia/Singapore\";","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private static final String OUTPUT_DIRECTORY \u003d \"ft_temp\";","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" private static final Path REPORT_DIRECTORY_PATH \u003d Paths.get(OUTPUT_DIRECTORY, \"reposense-report\");","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static boolean didNotCloneRepoNormally \u003d true;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" @BeforeEach","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" public void setUp() throws Exception {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" SupportedDomainUrlMap.clearAccessedSet();","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" FileUtil.deleteDirectory(OUTPUT_DIRECTORY);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" ErrorSummary.getInstance().clearErrorSet();","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" @AfterEach","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" public void tearDown() throws Exception {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" FileUtil.deleteDirectory(OUTPUT_DIRECTORY);","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" * System test with a specified until date and a {@link SinceDateArgumentType#FIRST_COMMIT_DATE_SHORTHAND}","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" * since date to capture from the first commit.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" public void testSinceBeginningDateRange() {","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d initInputBuilder()","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" .addSinceDate(SinceDateArgumentType.FIRST_COMMIT_DATE_SHORTHAND)","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" .addUntilDate(\"2/3/2019\");","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" runTest(inputBuilder, false,","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" \"ConfigSystemTest/sinceBeginningDateRange/expected\");","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" public void test30DaysFromUntilDate() {","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d initInputBuilder().addUntilDate(\"1/11/2017\");","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" runTest(inputBuilder, false,","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" \"ConfigSystemTest/30daysFromUntilDate/expected\");","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" * System test with a specified since date and until date, with the last modified date time in each","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" * line of code.","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" public void testDateRangeWithModifiedDateTimeInLines() {","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d initInputBuilder()","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" .addSinceDate(\"1/9/2017\")","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" .addUntilDate(\"30/10/2017\")","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" .addLastModifiedDateFlags();","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" runTest(inputBuilder, false,","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" \"ConfigSystemTest/dateRangeWithModifiedDateTimeInLines/expected\");","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" * System test with a specified until date and a {@link SinceDateArgumentType#FIRST_COMMIT_DATE_SHORTHAND}","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" * since date to capture from the first commit, using shallow cloning.","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" public void testSinceBeginningDateRangeWithShallowCloning() {","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d initInputBuilder()","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" .addSinceDate(SinceDateArgumentType.FIRST_COMMIT_DATE_SHORTHAND)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .addUntilDate(\"2/3/2019\")","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .addShallowCloning();","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" runTest(inputBuilder, true,","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" \"ConfigSystemTest/sinceBeginningDateRangeWithShallowCloning/expected\");","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" public void test30DaysFromUntilDateWithShallowCloning() {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d initInputBuilder()","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" .addUntilDate(\"1/11/2017\")","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" .addShallowCloning();","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" runTest(inputBuilder, true,","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" \"ConfigSystemTest/30daysFromUntilDateWithShallowCloning/expected\");","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" * System test with a specified until date and a {@link SinceDateArgumentType#FIRST_COMMIT_DATE_SHORTHAND}","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" * since date to capture from the first commit, using find previous authors.","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" public void testSinceBeginningDateRangeWithFindPreviousAuthors() {","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d initInputBuilder()","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" .addSinceDate(SinceDateArgumentType.FIRST_COMMIT_DATE_SHORTHAND)","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" .addUntilDate(\"2/3/2019\")","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" .addFindPreviousAuthors();","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" runTest(inputBuilder, true,","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" \"ConfigSystemTest/sinceBeginningDateRangeFindPreviousAuthors/expected\");","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" public void test30DaysFromUntilDateWithFindPreviousAuthors() {","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d initInputBuilder()","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" .addUntilDate(\"1/11/2017\")","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" .addFindPreviousAuthors();","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" runTest(inputBuilder, true,","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" \"ConfigSystemTest/30daysFromUntilDateFindPreviousAuthors/expected\");","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" * Returns a {@link InputBuilder} that is initialized with some default values.","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" * \u003cbr\u003eConfig Folder Path: {@code ConfigSystemTest}","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" * \u003cbr\u003eFormats: {@link ConfigSystemTest#TESTING_FILE_FORMATS TESTING_FILE_FORMATS}","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" * \u003cbr\u003eTimezone: {@link ConfigSystemTest#TEST_TIME_ZONE TEST_TIME_ZONE}","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" * \u003cbr\u003eOutput Folder Path: {@link ConfigSystemTest#OUTPUT_DIRECTORY OUTPUT_DIRECTORY}","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" * \u003cbr\u003eTest Mode: {@code Enabled}","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" private InputBuilder initInputBuilder() {","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" Path configFolder \u003d loadResource(getClass(), \"ConfigSystemTest\");","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", TESTING_FILE_FORMATS);","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" return new InputBuilder().addConfig(configFolder)","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" .addTimezone(TEST_TIME_ZONE)","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" .addTestMode()","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" .addOutput(OUTPUT_DIRECTORY);","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" * Generates the testing report and compares it with the expected report.","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" * Re-generates a normal report after the testing finished if the first report is shallow-cloned.","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" * @param inputBuilder The input builder that contains the command line input specified by user.","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" * @param shouldFreshClone Boolean for whether to clone repo again if it has been cloned before.","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" * @param pathToResource The location at which files generated during the test are stored.","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" private void runTest(InputBuilder inputBuilder, boolean shouldFreshClone, String pathToResource) {","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" if (shouldFreshClone || didNotCloneRepoNormally) {","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" inputBuilder \u003d inputBuilder.addFreshCloning();","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" RepoSense.main(translateCommandline(inputBuilder.build()));","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" Path actualFiles \u003d loadResource(getClass(), pathToResource);","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" SystemTestUtil.verifyReportJsonFiles(actualFiles, REPORT_DIRECTORY_PATH);","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" didNotCloneRepoNormally \u003d inputBuilder.isShallowCloning();","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":171}},{"path":"src/systemtest/java/reposense/LocalRepoSystemTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.apache.tools.ant.types.Commandline.translateCommandline;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.AfterAll;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.AfterEach;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeAll;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeEach;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.parallel.Execution;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.parallel.ExecutionMode;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.model.SupportedDomainUrlMap;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.SinceDateArgumentType;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import reposense.report.ErrorSummary;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import reposense.util.InputBuilder;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import reposense.util.SystemTestUtil;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import reposense.util.TestRepoCloner;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"@Execution(ExecutionMode.SAME_THREAD)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"public class LocalRepoSystemTest {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private static final String LOCAL_DIRECTORY_ONE_PARENT \u003d \"parent1\";","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" private static final String LOCAL_DIRECTORY_TWO_PARENT \u003d \"parent2\";","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private static final String LOCAL_DIRECTORY_ONE \u003d \"parent1/test-repo\";","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static final String LOCAL_DIRECTORY_TWO \u003d \"parent2/test-repo\";","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private static final String LAST_COMMIT_DATE \u003d \"31/01/2023\";","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final String OUTPUT_DIRECTORY \u003d \"local-test\";","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private static final String TIME_ZONE \u003d \"UTC+08\";","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private static final Path REPORT_DIRECTORY_PATH \u003d Paths.get(OUTPUT_DIRECTORY, \"reposense-report\");","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" @BeforeAll","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" public static void setupLocalRepos() throws Exception {","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"asdfghjkxd"},"content":" TestRepoCloner.clone(","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(\"https://github.com/reposense/testrepo-Alpha\"))","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"asdfghjkxd"},"content":" .build(),","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"asdfghjkxd"},"content":" Paths.get(\".\"), LOCAL_DIRECTORY_ONE","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"asdfghjkxd"},"content":" TestRepoCloner.clone(","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(\"https://github.com/reposense/testrepo-Alpha\"))","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"asdfghjkxd"},"content":" .build(),","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"asdfghjkxd"},"content":" Paths.get(\".\"), LOCAL_DIRECTORY_TWO","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" @BeforeEach","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" public void setupLocalTest() throws Exception {","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" SupportedDomainUrlMap.clearAccessedSet();","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" FileUtil.deleteDirectory(OUTPUT_DIRECTORY);","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" ErrorSummary.getInstance().clearErrorSet();","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" @AfterEach","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" public void deleteReportDirectory() throws Exception {","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" FileUtil.deleteDirectory(OUTPUT_DIRECTORY);","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" @AfterAll","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" public static void deleteClonedLocalRepos() throws Exception {","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" FileUtil.deleteDirectory(LOCAL_DIRECTORY_ONE_PARENT);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" FileUtil.deleteDirectory(LOCAL_DIRECTORY_TWO_PARENT);","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" public void testSameFinalDirectory() {","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d new InputBuilder()","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" .addRepos(LOCAL_DIRECTORY_ONE, LOCAL_DIRECTORY_TWO)","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" .addSinceDate(SinceDateArgumentType.FIRST_COMMIT_DATE_SHORTHAND)","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" .addUntilDate(LAST_COMMIT_DATE)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .addOutput(Paths.get(OUTPUT_DIRECTORY))","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" .addTimezone(TIME_ZONE);","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" runTest(inputBuilder, \"LocalRepoSystemTest/testSameFinalDirectory\");","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" public void testRelativePathing() {","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" String relativePathForTesting \u003d \"parent1/../parent1/./test-repo\";","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d new InputBuilder()","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" .addRepos(relativePathForTesting)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .addSinceDate(SinceDateArgumentType.FIRST_COMMIT_DATE_SHORTHAND)","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .addUntilDate(LAST_COMMIT_DATE)","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" .addOutput(Paths.get(OUTPUT_DIRECTORY))","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" .addTimezone(TIME_ZONE);","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" runTest(inputBuilder, \"LocalRepoSystemTest/testRelativePathing\");","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" * Runs RepoSense with {@code inputBuilder} and tests it against the expected","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" * files in {@code expectedFilesPathString}.","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" private void runTest(InputBuilder inputBuilder, String expectedFilesPathString) {","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" RepoSense.main(translateCommandline(inputBuilder.build()));","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" Path expectedFilesPath \u003d loadResource(getClass(), expectedFilesPathString);","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" SystemTestUtil.verifyReportJsonFiles(expectedFilesPath, REPORT_DIRECTORY_PATH);","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":13,"-":95}},{"path":"src/systemtest/java/reposense/util/SystemTestUtil.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.util;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.FileReader;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.stream.Stream;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"import com.google.gson.JsonElement;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import com.google.gson.JsonObject;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import com.google.gson.JsonParser;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Contains utility methods for system tests.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"public class SystemTestUtil {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" private static final String[] JSON_FIELDS_TO_IGNORE \u003d new String[]","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" {\"repoSenseVersion\", \"reportGeneratedTime\", \"reportGenerationTime\", \"isAuthorshipAnalyzed\"};","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" * Verifies that all JSON files in the {@code actualDirectory} matches those at the {@code expectedDirectory}.","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" public static void verifyReportJsonFiles(Path expectedDirectory, Path actualDirectory) {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" try (Stream\u003cPath\u003e pathStream \u003d Files.list(expectedDirectory)) {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" for (Path file : pathStream.collect(Collectors.toList())) {","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" Path expectedFilePath \u003d expectedDirectory.resolve(file.getFileName());","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" Path actualFilePath \u003d actualDirectory.resolve(file.getFileName());","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" if (Files.isDirectory(file)) {","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" verifyReportJsonFiles(expectedFilePath, actualFilePath);","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" } else if (file.toString().endsWith(\".json\")) {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" if (file.getFileName().toString().equals(\"summary.json\")) {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" assertSummaryJson(expectedFilePath, actualFilePath);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" assertJson(expectedFilePath, actualFilePath);","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" } catch (IOException ioe) {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" ioe.printStackTrace();","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" public static void assertSummaryJson(Path expectedSummaryJsonPath, Path actualSummaryJsonPath)","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" throws IOException {","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" try (FileReader fileReaderExpected \u003d new FileReader(expectedSummaryJsonPath.toFile());","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" FileReader fileReaderActual \u003d new FileReader(actualSummaryJsonPath.toFile())) {","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" JsonObject jsonExpected \u003d JsonParser.parseReader(fileReaderExpected).getAsJsonObject();","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" JsonObject jsonActual \u003d JsonParser.parseReader(fileReaderActual).getAsJsonObject();","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" for (String ignoredKey : JSON_FIELDS_TO_IGNORE) {","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" jsonExpected.remove(ignoredKey);","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" jsonActual.remove(ignoredKey);","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" Assertions.assertEquals(jsonExpected, jsonActual);","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" * Asserts that the contents in the given JSON file at {@code actualJsonPath} is the same as the JSON file","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" * at {@code expectedJsonPath}.","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" public static void assertJson(Path expectedJsonPath, Path actualJsonPath) {","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.exists(actualJsonPath));","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"asdfghjkxd"},"content":" try (FileReader fileReaderExpected \u003d new FileReader(expectedJsonPath.toFile());","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"asdfghjkxd"},"content":" FileReader fileReaderActual \u003d new FileReader(actualJsonPath.toFile())) {","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"asdfghjkxd"},"content":" JsonElement jsonExpected \u003d JsonParser.parseReader(fileReaderExpected);","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"asdfghjkxd"},"content":" JsonElement jsonActual \u003d JsonParser.parseReader(fileReaderActual);","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(jsonExpected, jsonActual);","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"asdfghjkxd"},"content":" } catch (IOException ex) {","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.fail(ex.getMessage());","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":11,"-":68}},{"path":"src/test/java/reposense/git/GitBranchTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeEach;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import reposense.model.FileTypeTest;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.template.GitTestTemplate;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.util.TestRepoCloner;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"public class GitBranchTest extends GitTestTemplate {","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" protected static final String TEST_REPO_UNCOMMON_DEFAULT_GIT_LOCATION \u003d","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" \"https://github.com/reposense/testrepo-UncommonDefaultBranch.git\";","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" private RepoConfiguration config;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" @BeforeEach","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" public void before() throws Exception {","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" super.before();","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" config \u003d configs.get();","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" public void getCurrentBranch_masterBranch_success() throws Exception {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" String currentBranch \u003d GitBranch.getCurrentBranch(config.getRepoRoot());","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"master\", currentBranch);","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" public void getCurrentBranch_uncommonDefaultBranch_success() throws Exception {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration uncommonDefaultConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_UNCOMMON_DEFAULT_GIT_LOCATION))","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":" .branch(RepoConfiguration.DEFAULT_BRANCH)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" uncommonDefaultConfig.setFormats(FileTypeTest.DEFAULT_TEST_FORMATS);","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(uncommonDefaultConfig);","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" String currentBranch \u003d GitBranch.getCurrentBranch(uncommonDefaultConfig.getRepoRoot());","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"uncommon\", currentBranch);","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":4,"-":39}},{"path":"src/test/java/reposense/model/BlurbMapTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"public class BlurbMapTest {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":" public void blurbBuilder_testIfBuildsSuccessfully_success() {","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap builder \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":" builder.withRecord(\"hello\", \"world\");","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap newBuilder \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":" newBuilder.withRecord(\"hello\", \"world\");","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(builder, newBuilder);","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"asdfghjkxd"},"content":" public void blurbBuilder_testIfBuildsEmpty_success() {","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap map1 \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap map2 \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(map1, map2);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":" public void blurbBuilder_testIfUnequal_success() {","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap builder1 \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap builder2 \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":" builder1.withRecord(\"this\", \"builder\");","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":" builder2.withRecord(\"other\", \"builder\");","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertNotEquals(builder1, builder2);","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":33}},{"path":"src/test/java/reposense/model/RepoConfigurationTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.apache.tools.ant.types.Commandline.translateCommandline;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.lang.reflect.Method;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeAll;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.parser.ArgsParser;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import reposense.parser.AuthorConfigCsvParser;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.ConfigurationBuildException;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import reposense.parser.GroupConfigCsvParser;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import reposense.parser.RepoConfigCsvParser;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import reposense.report.ReportGenerator;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import reposense.util.InputBuilder;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"import reposense.util.TestRepoCloner;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"import reposense.util.TestUtil;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"public class RepoConfigurationTest {","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" private static final Path IGNORE_STANDALONE_TEST_CONFIG_FILES \u003d","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" loadResource(RepoConfigurationTest.class, \"RepoConfigurationTest/repoconfig_ignoreStandAlone_test\");","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static final Path IGNORE_STANDALONE_KEYWORD_TEST_CONFIG_FILES \u003d","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" loadResource(RepoConfigurationTest.class, \"RepoConfigurationTest/repoconfig_ignoreStandAloneKeyword_test\");","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private static final Path FORMATS_TEST_CONFIG_FILES \u003d loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_formats_test\");","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final Path WITHOUT_FORMATS_TEST_CONFIG_FILES \u003d loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_withoutformats_test\");","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private static final Path GROUPS_TEST_CONFIG_FILES \u003d loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_groups_test\");","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private static final Path OVERRIDE_STANDALONE_TEST_CONFIG_FILE \u003d loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_overrideStandAlone_test\");","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" private static final Path IGNORE_AUTHORS_TEST_CONFIG_FILE \u003d loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_ignoreAuthors_test\");","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" private static final Path IGNORE_STANDALONE_FLAG_OVERRIDE_CSV_TEST \u003d loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_ignoreStandaloneOverrideCsv_test\");","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" private static final Path IGNORE_FILESIZE_LIMIT_TEST_CONFIG_FILES \u003d loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_ignoreFileSizeLimit_test\");","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" private static final Path IGNORE_FILESIZE_LIMIT_OVERRIDE_CSV_TEST_CONFIG_FILES \u003d","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_ignoreFileSizeLimitOverrideCsv_test\");","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" private static final Path SHALLOW_CLONING_TEST_CONFIG_FILES \u003d","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" loadResource(RepoConfigurationTest.class, \"RepoConfigurationTest/repoconfig_shallowCloning_test\");","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" private static final Path SHALLOW_CLONING_FLAG_OVERRIDE_TEST_CONFIG_FILES \u003d","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_shallowCloningOverrideCsv_test\");","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" private static final Path FIND_PREVIOUS_AUTHORS_TEST_CONFIG_FILES \u003d","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_findPreviousAuthors_test\");","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" private static final Path FIND_PREVIOUS_AUTHORS_FLAG_OVERRIDE_TEST_CONFIG_FILES \u003d","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_findPreviousAuthorsOverrideCsv_test\");","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_BETA \u003d \"https://github.com/reposense/testrepo-Beta.git\";","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_DELTA \u003d \"https://github.com/reposense/testrepo-Delta.git\";","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_MINIMAL_STANDALONE_CONFIG \u003d","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" \"https://github.com/reposense/testrepo-minimalstandaloneconfig.git\";","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" private static final Author FIRST_AUTHOR \u003d new Author(\"lithiumlkid\");","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" private static final Author SECOND_AUTHOR \u003d new Author(\"codeeong\");","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" private static final Author THIRD_AUTHOR \u003d new Author(\"jordancjq\");","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" private static final Author FOURTH_AUTHOR \u003d new Author(\"lohtianwei\");","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e FIRST_AUTHOR_ALIASES \u003d Collections.singletonList(\"Ahmad Syafiq\");","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e SECOND_AUTHOR_ALIASES \u003d Collections.emptyList();","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e THIRD_AUTHOR_ALIASES \u003d Collections.singletonList(\"Jordan Chong\");","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e FOURTH_AUTHOR_ALIASES \u003d Collections.singletonList(\"Tianwei\");","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e REPO_LEVEL_GLOB_LIST \u003d Collections.singletonList(\"collated**\");","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e FIRST_AUTHOR_GLOB_LIST \u003d","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" Arrays.asList(\"*.aa1\", \"**.aa2\", \"**.java\", \"collated**\");","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e SECOND_AUTHOR_GLOB_LIST \u003d Arrays.asList(\"\", \"collated**\");","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e THIRD_AUTHOR_GLOB_LIST \u003d Arrays.asList(\"**[!(.md)]\", \"collated**\");","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e FOURTH_AUTHOR_GLOB_LIST \u003d Collections.singletonList(\"collated**\");","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" private static final List\u003cFileType\u003e CONFIG_FORMATS \u003d FileType.convertFormatStringsToFileTypes(Arrays.asList(","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" \"java\", \"adoc\", \"md\"));","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" private static final List\u003cFileType\u003e FIRST_CONFIG_GROUPS \u003d Arrays.asList(","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" new FileType(\"test\", Collections.singletonList(\"src/test**\")),","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" new FileType(\"code\", Collections.singletonList(\"**.java\")),","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" new FileType(\"docs\", Collections.singletonList(\"docs**\")));","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" private static final List\u003cFileType\u003e SECOND_CONFIG_GROUPS \u003d Arrays.asList(","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" new FileType(\"docs\", Collections.singletonList(\"docs**\")));","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e CLI_FORMATS \u003d Arrays.asList(\"css\", \"html\");","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" private static RepoConfiguration repoDeltaStandaloneConfig;","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" private ReportGenerator reportGenerator \u003d new ReportGenerator();","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" @BeforeAll","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" public static void setUp() throws Exception {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" FIRST_AUTHOR.setAuthorAliases(FIRST_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" SECOND_AUTHOR.setAuthorAliases(SECOND_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" THIRD_AUTHOR.setAuthorAliases(THIRD_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" FOURTH_AUTHOR.setAuthorAliases(FOURTH_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" FIRST_AUTHOR.setIgnoreGlobList(FIRST_AUTHOR_GLOB_LIST);","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" SECOND_AUTHOR.setIgnoreGlobList(SECOND_AUTHOR_GLOB_LIST);","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" THIRD_AUTHOR.setIgnoreGlobList(THIRD_AUTHOR_GLOB_LIST);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" FOURTH_AUTHOR.setIgnoreGlobList(FOURTH_AUTHOR_GLOB_LIST);","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e expectedAuthors \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" expectedAuthors.add(FIRST_AUTHOR);","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" expectedAuthors.add(SECOND_AUTHOR);","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" expectedAuthors.add(THIRD_AUTHOR);","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" expectedAuthors.add(FOURTH_AUTHOR);","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"asdfghjkxd"},"content":" repoDeltaStandaloneConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.setAuthorList(expectedAuthors);","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.addAuthorNamesToAuthorMapEntry(FIRST_AUTHOR, FIRST_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.addAuthorNamesToAuthorMapEntry(FOURTH_AUTHOR, FOURTH_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.setAuthorDisplayName(FIRST_AUTHOR, \"Ahm\");","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.setAuthorDisplayName(SECOND_AUTHOR, \"Cod\");","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.setAuthorDisplayName(THIRD_AUTHOR, \"Jor\");","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.setAuthorDisplayName(FOURTH_AUTHOR, \"Loh\");","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" SECOND_AUTHOR.setEmails(Arrays.asList(\"codeeong@gmail.com\", \"33129797+codeeong@users.noreply.github.com\"));","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" for (Author author : expectedAuthors) {","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.addAuthorEmailsToAuthorMapEntry(author, author.getEmails());","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.setFormats(CONFIG_FORMATS);","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" public void repoConfig_usesStandaloneConfig_success() throws Exception {","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaStandaloneConfig, actualConfig);","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" public void repoConfig_ignoresStandaloneConfig_success() throws Exception {","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e expectedAuthors \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" Author author \u003d new Author(FIRST_AUTHOR);","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" author.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" expectedAuthors.add(author);","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorList(expectedAuthors);","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" expectedConfig.addAuthorNamesToAuthorMapEntry(author, FIRST_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorDisplayName(author, \"Ahm\");","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" expectedConfig.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(CONFIG_FORMATS);","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" expectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(IGNORE_STANDALONE_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e authorConfigs \u003d","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" new AuthorConfigCsvParser(cliArguments.getAuthorConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" RepoConfiguration.merge(actualConfigs, authorConfigs);","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" public void repoConfig_ignoresStandaloneConfigInCli_success() throws Exception {","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" expectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" .addIgnoreStandaloneConfig()","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d RunConfigurationDecider","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" .getRunConfiguration(cliArguments)","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" .getRepoConfigurations();","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" RepoConfiguration.setFormatsToRepoConfigs(actualConfigs, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" cliArguments.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" public void repoConfig_ignoreStandaloneConfigInCli_overrideCsv() throws Exception {","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoBetaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA))","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoDeltaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(IGNORE_STANDALONE_FLAG_OVERRIDE_CSV_TEST)","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" .addIgnoreStandaloneConfig()","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" cliArguments.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" RepoConfiguration repoBetaActualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" RepoConfiguration repoDeltaActualConfig \u003d actualConfigs.get(1);","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoBetaExpectedConfig, repoBetaActualConfig);","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaExpectedConfig, repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" public void repoConfig_ignoreFileSizeLimit_success() throws Exception {","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" expectedConfig.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(CONFIG_FORMATS);","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" expectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" expectedConfig.setFileSizeLimitIgnored(true);","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(IGNORE_FILESIZE_LIMIT_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" public void repoConfig_ignoreFileSizeLimitInCli_overrideCsv() throws Exception {","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoBetaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA))","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFileSizeLimitIgnored(true);","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoDeltaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setFileSizeLimitIgnored(true);","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(IGNORE_FILESIZE_LIMIT_OVERRIDE_CSV_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" .addIgnoreFilesizeLimit()","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" RepoConfiguration.setFileSizeLimitIgnoredToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" cliArguments.isFileSizeLimitIgnored());","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":" RepoConfiguration repoBetaActualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" RepoConfiguration repoDeltaActualConfig \u003d actualConfigs.get(1);","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoBetaExpectedConfig, repoBetaActualConfig);","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaExpectedConfig, repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" public void repoConfig_withoutIgnoreStandaloneConfigInCli_useCsv() throws Exception {","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoBetaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA))","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(IGNORE_STANDALONE_FLAG_OVERRIDE_CSV_TEST).build();","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" cliArguments.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":" RepoConfiguration repoBetaActualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" RepoConfiguration repoDeltaActualConfig \u003d actualConfigs.get(1);","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoBetaExpectedConfig, repoBetaActualConfig);","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaStandaloneConfig, repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":" public void repoConfig_wrongKeywordUseStandaloneConfig_success() throws Exception {","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(IGNORE_STANDALONE_KEYWORD_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaStandaloneConfig, actualConfig);","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":" public void repoConfig_shallowCloning_success() throws Exception {","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" expectedConfig.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(CONFIG_FORMATS);","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":" expectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"-"},"content":" expectedConfig.setIsShallowCloningPerformed(true);","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(SHALLOW_CLONING_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"-"},"content":" public void repoConfig_shallowCloningInCli_success() throws Exception {","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"-"},"content":" expectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"-"},"content":" expectedConfig.setIsShallowCloningPerformed(true);","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"-"},"content":" .addShallowCloning()","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d RunConfigurationDecider","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"-"},"content":" .getRunConfiguration(cliArguments)","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"-"},"content":" .getRepoConfigurations();","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"-"},"content":" RepoConfiguration.setFormatsToRepoConfigs(actualConfigs, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsShallowCloningPerformedToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"-"},"content":" cliArguments.isShallowCloningPerformed());","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"-"},"content":" public void repoConfig_shallowCloningInCli_overrideCsv() throws Exception {","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoBetaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA))","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setIsShallowCloningPerformed(true);","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoDeltaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setIsShallowCloningPerformed(true);","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(SHALLOW_CLONING_FLAG_OVERRIDE_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"-"},"content":" .addShallowCloning()","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsShallowCloningPerformedToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"-"},"content":" cliArguments.isShallowCloningPerformed());","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"-"},"content":" RepoConfiguration repoBetaActualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"-"},"content":" RepoConfiguration repoDeltaActualConfig \u003d actualConfigs.get(1);","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoBetaExpectedConfig, repoBetaActualConfig);","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaExpectedConfig, repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"-"},"content":" public void repoConfig_withoutShallowCloningInInCli_useCsv() throws Exception {","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoBetaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA))","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setIsShallowCloningPerformed(true);","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoDeltaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(SHALLOW_CLONING_FLAG_OVERRIDE_TEST_CONFIG_FILES).build();","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsShallowCloningPerformedToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"-"},"content":" cliArguments.isShallowCloningPerformed());","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"-"},"content":" RepoConfiguration repoBetaActualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"-"},"content":" RepoConfiguration repoDeltaActualConfig \u003d actualConfigs.get(1);","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoBetaExpectedConfig, repoBetaActualConfig);","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaExpectedConfig, repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"-"},"content":" public void repoConfig_findPreviousAuthors_success() throws Exception {","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"-"},"content":" expectedConfig.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(CONFIG_FORMATS);","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"-"},"content":" expectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"-"},"content":" expectedConfig.setIsFindingPreviousAuthorsPerformed(true);","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(FIND_PREVIOUS_AUTHORS_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":504,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":505,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":506,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":507,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":508,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":509,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":510,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":511,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":512,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":513,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":514,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":515,"author":{"gitId":"-"},"content":" public void repoConfig_findPreviousAuthorsInCli_success() throws Exception {","isFullCredit":false},{"lineNumber":516,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":517,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":518,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":519,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":520,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":521,"author":{"gitId":"-"},"content":" expectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":522,"author":{"gitId":"-"},"content":" expectedConfig.setIsFindingPreviousAuthorsPerformed(true);","isFullCredit":false},{"lineNumber":523,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":524,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":525,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":526,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":527,"author":{"gitId":"-"},"content":" .addFindPreviousAuthors()","isFullCredit":false},{"lineNumber":528,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":529,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":530,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d RunConfigurationDecider","isFullCredit":false},{"lineNumber":531,"author":{"gitId":"-"},"content":" .getRunConfiguration(cliArguments)","isFullCredit":false},{"lineNumber":532,"author":{"gitId":"-"},"content":" .getRepoConfigurations();","isFullCredit":false},{"lineNumber":533,"author":{"gitId":"-"},"content":" RepoConfiguration.setFormatsToRepoConfigs(actualConfigs, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":534,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":535,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsFindingPreviousAuthorsPerformedToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":536,"author":{"gitId":"-"},"content":" cliArguments.isFindingPreviousAuthorsPerformed());","isFullCredit":false},{"lineNumber":537,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":538,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":539,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":540,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":541,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":542,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":543,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":544,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":545,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":546,"author":{"gitId":"-"},"content":" public void repoConfig_findPreviousAuthorsInCli_overrideCsv() throws Exception {","isFullCredit":false},{"lineNumber":547,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoBetaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":548,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA))","isFullCredit":false},{"lineNumber":549,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":550,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":551,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":552,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":553,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setIsFindingPreviousAuthorsPerformed(true);","isFullCredit":false},{"lineNumber":554,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoDeltaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":555,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":556,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":557,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":558,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":559,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setIsFindingPreviousAuthorsPerformed(true);","isFullCredit":false},{"lineNumber":560,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":561,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(FIND_PREVIOUS_AUTHORS_FLAG_OVERRIDE_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":562,"author":{"gitId":"-"},"content":" .addShallowCloning()","isFullCredit":false},{"lineNumber":563,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":564,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":565,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":566,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":567,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":568,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsFindingPreviousAuthorsPerformedToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":569,"author":{"gitId":"-"},"content":" cliArguments.isFindingPreviousAuthorsPerformed());","isFullCredit":false},{"lineNumber":570,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":571,"author":{"gitId":"-"},"content":" RepoConfiguration repoBetaActualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":572,"author":{"gitId":"-"},"content":" RepoConfiguration repoDeltaActualConfig \u003d actualConfigs.get(1);","isFullCredit":false},{"lineNumber":573,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":574,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":575,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":576,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":577,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoBetaExpectedConfig, repoBetaActualConfig);","isFullCredit":false},{"lineNumber":578,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaExpectedConfig, repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":579,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":580,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":581,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":582,"author":{"gitId":"-"},"content":" public void repoConfig_withoutFindPreviousAuthorsInCli_useCsv() throws Exception {","isFullCredit":false},{"lineNumber":583,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoBetaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":584,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA))","isFullCredit":false},{"lineNumber":585,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":586,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":587,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":588,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":589,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setIsFindingPreviousAuthorsPerformed(true);","isFullCredit":false},{"lineNumber":590,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoDeltaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":591,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":592,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":593,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":594,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":595,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":596,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(FIND_PREVIOUS_AUTHORS_FLAG_OVERRIDE_TEST_CONFIG_FILES).build();","isFullCredit":false},{"lineNumber":597,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":598,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":599,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":600,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":601,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsFindingPreviousAuthorsPerformedToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":602,"author":{"gitId":"-"},"content":" cliArguments.isFindingPreviousAuthorsPerformed());","isFullCredit":false},{"lineNumber":603,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":604,"author":{"gitId":"-"},"content":" RepoConfiguration repoBetaActualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":605,"author":{"gitId":"-"},"content":" RepoConfiguration repoDeltaActualConfig \u003d actualConfigs.get(1);","isFullCredit":false},{"lineNumber":606,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":607,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":608,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":609,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":610,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoBetaExpectedConfig, repoBetaActualConfig);","isFullCredit":false},{"lineNumber":611,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaExpectedConfig, repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":612,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":613,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":614,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":615,"author":{"gitId":"-"},"content":" public void repoConfig_userEnvironmentCannotRunFindPreviousAuthors_setFindPreviousAuthorsToFalseInAllRepoConfigs()","isFullCredit":false},{"lineNumber":616,"author":{"gitId":"-"},"content":" throws Exception {","isFullCredit":false},{"lineNumber":617,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoBetaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":618,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA))","isFullCredit":false},{"lineNumber":619,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":620,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":621,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":622,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":623,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoDeltaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":624,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":625,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":626,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":627,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":628,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":629,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(FIND_PREVIOUS_AUTHORS_FLAG_OVERRIDE_TEST_CONFIG_FILES).build();","isFullCredit":false},{"lineNumber":630,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":631,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":632,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":633,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":634,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsFindingPreviousAuthorsPerformedToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":635,"author":{"gitId":"-"},"content":" cliArguments.isFindingPreviousAuthorsPerformed());","isFullCredit":false},{"lineNumber":636,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":637,"author":{"gitId":"-"},"content":" RepoConfiguration repoBetaActualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":638,"author":{"gitId":"-"},"content":" RepoConfiguration repoDeltaActualConfig \u003d actualConfigs.get(1);","isFullCredit":false},{"lineNumber":639,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":640,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":641,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":642,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":643,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoBetaExpectedConfig, repoBetaActualConfig);","isFullCredit":false},{"lineNumber":644,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaExpectedConfig, repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":645,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":646,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":647,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":648,"author":{"gitId":"-"},"content":" public void repoConfig_withFormats_ignoreCliFormats() throws Exception {","isFullCredit":false},{"lineNumber":649,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":650,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(FORMATS_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":651,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":652,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":653,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":654,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":655,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":656,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":657,"author":{"gitId":"-"},"content":" RepoConfiguration.setFormatsToRepoConfigs(actualConfigs, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":658,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":659,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, actualConfigs.size());","isFullCredit":false},{"lineNumber":660,"author":{"gitId":"-"},"content":" Assertions.assertEquals(CONFIG_FORMATS, actualConfigs.get(0).getFileTypeManager().getFormats());","isFullCredit":false},{"lineNumber":661,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":662,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":663,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":664,"author":{"gitId":"-"},"content":" public void repoConfig_withoutFormats_useCliFormats() throws Exception {","isFullCredit":false},{"lineNumber":665,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":666,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(WITHOUT_FORMATS_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":667,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":668,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":669,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":670,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":671,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":672,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":673,"author":{"gitId":"-"},"content":" RepoConfiguration.setFormatsToRepoConfigs(actualConfigs, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":674,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":675,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, actualConfigs.size());","isFullCredit":false},{"lineNumber":676,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":677,"author":{"gitId":"-"},"content":" List\u003cFileType\u003e actualFormats \u003d actualConfigs.get(0).getFileTypeManager().getFormats();","isFullCredit":false},{"lineNumber":678,"author":{"gitId":"-"},"content":" Assertions.assertEquals(FileType.convertFormatStringsToFileTypes(CLI_FORMATS), actualFormats);","isFullCredit":false},{"lineNumber":679,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":680,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":681,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":682,"author":{"gitId":"-"},"content":" public void repoConfig_withCustomGroups_useCustomGroups() throws Exception {","isFullCredit":false},{"lineNumber":683,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(GROUPS_TEST_CONFIG_FILES).build();","isFullCredit":false},{"lineNumber":684,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":685,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":686,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":687,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":688,"author":{"gitId":"-"},"content":" List\u003cGroupConfiguration\u003e groupConfigs \u003d","isFullCredit":false},{"lineNumber":689,"author":{"gitId":"-"},"content":" new GroupConfigCsvParser(cliArguments.getGroupConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":690,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":691,"author":{"gitId":"-"},"content":" RepoConfiguration.setGroupConfigsToRepos(actualConfigs, groupConfigs);","isFullCredit":false},{"lineNumber":692,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":693,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, actualConfigs.size());","isFullCredit":false},{"lineNumber":694,"author":{"gitId":"-"},"content":" Assertions.assertEquals(FIRST_CONFIG_GROUPS, actualConfigs.get(0).getFileTypeManager().getGroups());","isFullCredit":false},{"lineNumber":695,"author":{"gitId":"-"},"content":" Assertions.assertEquals(SECOND_CONFIG_GROUPS, actualConfigs.get(1).getFileTypeManager().getGroups());","isFullCredit":false},{"lineNumber":696,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":697,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":698,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":699,"author":{"gitId":"-"},"content":" public void repoConfig_withoutFormatsAndCliFormats_useAllFormats() throws Exception {","isFullCredit":false},{"lineNumber":700,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(WITHOUT_FORMATS_TEST_CONFIG_FILES).build();","isFullCredit":false},{"lineNumber":701,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":702,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":703,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":704,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":705,"author":{"gitId":"-"},"content":" RepoConfiguration.setFormatsToRepoConfigs(actualConfigs, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":706,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":707,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, actualConfigs.size());","isFullCredit":false},{"lineNumber":708,"author":{"gitId":"-"},"content":" Assertions.assertEquals(FileTypeTest.NO_SPECIFIED_FORMATS, actualConfigs.get(0).getFileTypeManager()","isFullCredit":false},{"lineNumber":709,"author":{"gitId":"-"},"content":" .getFormats());","isFullCredit":false},{"lineNumber":710,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":711,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":712,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":713,"author":{"gitId":"-"},"content":" public void repoConfig_emptyLocationDifferentBranch_equal() throws Exception {","isFullCredit":false},{"lineNumber":714,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration emptyLocationEmptyBranchRepoConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":715,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(\"\"))","isFullCredit":false},{"lineNumber":716,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"\")","isFullCredit":false},{"lineNumber":717,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":718,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration emptyLocationDefaultBranchRepoConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":719,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(\"\")).build();","isFullCredit":false},{"lineNumber":720,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration emptyLocationWithBranchRepoConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":721,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(\"\"))","isFullCredit":false},{"lineNumber":722,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":723,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":724,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":725,"author":{"gitId":"-"},"content":" Assertions.assertEquals(emptyLocationDefaultBranchRepoConfig, emptyLocationEmptyBranchRepoConfig);","isFullCredit":false},{"lineNumber":726,"author":{"gitId":"-"},"content":" Assertions.assertEquals(emptyLocationWithBranchRepoConfig, emptyLocationEmptyBranchRepoConfig);","isFullCredit":false},{"lineNumber":727,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":728,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":729,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":730,"author":{"gitId":"-"},"content":" public void repoConfig_sameLocationDifferentBranch_notEqual() throws Exception {","isFullCredit":false},{"lineNumber":731,"author":{"gitId":"-"},"content":" RepoConfiguration validLocationValidBranchRepoConfig \u003d","isFullCredit":false},{"lineNumber":732,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":733,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":734,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":735,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":736,"author":{"gitId":"-"},"content":" RepoConfiguration validLocationDefaultBranchRepoConfig \u003d","isFullCredit":false},{"lineNumber":737,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder().location(new RepoLocation(TEST_REPO_DELTA)).build();","isFullCredit":false},{"lineNumber":738,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":739,"author":{"gitId":"-"},"content":" Assertions.assertNotEquals(validLocationDefaultBranchRepoConfig, validLocationValidBranchRepoConfig);","isFullCredit":false},{"lineNumber":740,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":741,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":742,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":743,"author":{"gitId":"-"},"content":" public void repoConfig_overrideStandaloneConfig_success() throws Exception {","isFullCredit":false},{"lineNumber":744,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":745,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":746,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":747,"author":{"gitId":"asdfghjkxd"},"content":" .fileTypeManager(Collections.emptyList())","isFullCredit":false},{"lineNumber":748,"author":{"gitId":"asdfghjkxd"},"content":" .ignoreGlobList(Collections.emptyList())","isFullCredit":false},{"lineNumber":749,"author":{"gitId":"asdfghjkxd"},"content":" .fileSizeLimit(RepoConfiguration.DEFAULT_FILE_SIZE_LIMIT)","isFullCredit":false},{"lineNumber":750,"author":{"gitId":"asdfghjkxd"},"content":" .isStandaloneConfigIgnored(false)","isFullCredit":false},{"lineNumber":751,"author":{"gitId":"asdfghjkxd"},"content":" .isFileSizeLimitIgnored(false)","isFullCredit":false},{"lineNumber":752,"author":{"gitId":"asdfghjkxd"},"content":" .ignoreCommitList(Collections.emptyList())","isFullCredit":false},{"lineNumber":753,"author":{"gitId":"asdfghjkxd"},"content":" .isFormatsOverriding(true)","isFullCredit":false},{"lineNumber":754,"author":{"gitId":"asdfghjkxd"},"content":" .isIgnoreGlobListOverriding(true)","isFullCredit":false},{"lineNumber":755,"author":{"gitId":"asdfghjkxd"},"content":" .isIgnoreCommitListOverriding(true)","isFullCredit":false},{"lineNumber":756,"author":{"gitId":"asdfghjkxd"},"content":" .isFileSizeLimitOverriding(false)","isFullCredit":false},{"lineNumber":757,"author":{"gitId":"asdfghjkxd"},"content":" .isShallowCloningPerformed(false)","isFullCredit":false},{"lineNumber":758,"author":{"gitId":"asdfghjkxd"},"content":" .isFindingPreviousAuthorsPerformed(false)","isFullCredit":false},{"lineNumber":759,"author":{"gitId":"asdfghjkxd"},"content":" .isIgnoredFileAnalysisSkipped(false)","isFullCredit":false},{"lineNumber":760,"author":{"gitId":"asdfghjkxd"},"content":" .ignoredAuthorsList(Arrays.asList(\"lithiumlkid\"))","isFullCredit":false},{"lineNumber":761,"author":{"gitId":"asdfghjkxd"},"content":" .isIgnoredAuthorsListOverriding(true)","isFullCredit":false},{"lineNumber":762,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":763,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":764,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e expectedAuthorList \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":765,"author":{"gitId":"-"},"content":" Author[] authors \u003d new Author[]{FIRST_AUTHOR, SECOND_AUTHOR, THIRD_AUTHOR, FOURTH_AUTHOR};","isFullCredit":false},{"lineNumber":766,"author":{"gitId":"-"},"content":" for (Author author : authors) {","isFullCredit":false},{"lineNumber":767,"author":{"gitId":"-"},"content":" Author expectedAuthor \u003d new Author(author);","isFullCredit":false},{"lineNumber":768,"author":{"gitId":"-"},"content":" List\u003cString\u003e expectedAuthorIgnoreGlobList \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":769,"author":{"gitId":"-"},"content":" expectedAuthorIgnoreGlobList.addAll(author.getIgnoreGlobList());","isFullCredit":false},{"lineNumber":770,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":771,"author":{"gitId":"-"},"content":" // Authors\u0027 original ignoreGlobList contains values from StandaloneConfig repo level, thus need to remove","isFullCredit":false},{"lineNumber":772,"author":{"gitId":"-"},"content":" expectedAuthorIgnoreGlobList.removeAll(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":773,"author":{"gitId":"-"},"content":" expectedAuthor.setIgnoreGlobList(expectedAuthorIgnoreGlobList);","isFullCredit":false},{"lineNumber":774,"author":{"gitId":"-"},"content":" expectedAuthorList.add(expectedAuthor);","isFullCredit":false},{"lineNumber":775,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":776,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorList(expectedAuthorList);","isFullCredit":false},{"lineNumber":777,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorDisplayNameMap(repoDeltaStandaloneConfig.getAuthorDisplayNameMap());","isFullCredit":false},{"lineNumber":778,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorNamesToAuthorMap(repoDeltaStandaloneConfig.getAuthorNamesToAuthorMap());","isFullCredit":false},{"lineNumber":779,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorEmailsToAuthorMap(repoDeltaStandaloneConfig.getAuthorEmailsToAuthorMap());","isFullCredit":false},{"lineNumber":780,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":781,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":782,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(OVERRIDE_STANDALONE_TEST_CONFIG_FILE)","isFullCredit":false},{"lineNumber":783,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":784,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":785,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":786,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":787,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":788,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":789,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":790,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":791,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":792,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":793,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":794,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":795,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":796,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":797,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":798,"author":{"gitId":"-"},"content":" public void repoConfig_minimalStandaloneConfig_fieldsAssignedDefaultValues() throws Exception {","isFullCredit":false},{"lineNumber":799,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":800,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":801,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":802,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":803,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":804,"author":{"gitId":"-"},"content":" Author firstAuthor \u003d new Author(\"bluein-green\");","isFullCredit":false},{"lineNumber":805,"author":{"gitId":"-"},"content":" Author secondAuthor \u003d new Author(\"jylee-git\");","isFullCredit":false},{"lineNumber":806,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e expectedAuthors \u003d Arrays.asList(firstAuthor, secondAuthor);","isFullCredit":false},{"lineNumber":807,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorList(expectedAuthors);","isFullCredit":false},{"lineNumber":808,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":809,"author":{"gitId":"-"},"content":" expectedConfig.setIgnoreGlobList(Collections.emptyList());","isFullCredit":false},{"lineNumber":810,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(Collections.emptyList());","isFullCredit":false},{"lineNumber":811,"author":{"gitId":"-"},"content":" expectedConfig.setIgnoreCommitList(Collections.emptyList());","isFullCredit":false},{"lineNumber":812,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":813,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":814,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":815,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":816,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":817,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":818,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":819,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":820,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":821,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":822,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":823,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":824,"author":{"gitId":"-"},"content":" public void repoConfig_removeIgnoredAuthors_success() throws Exception {","isFullCredit":false},{"lineNumber":825,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e expectedAuthors \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":826,"author":{"gitId":"-"},"content":" Author author \u003d new Author(FIRST_AUTHOR);","isFullCredit":false},{"lineNumber":827,"author":{"gitId":"-"},"content":" author.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":828,"author":{"gitId":"-"},"content":" expectedAuthors.add(author);","isFullCredit":false},{"lineNumber":829,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":830,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":831,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":832,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":833,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":834,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorList(expectedAuthors);","isFullCredit":false},{"lineNumber":835,"author":{"gitId":"-"},"content":" expectedConfig.addAuthorNamesToAuthorMapEntry(author, FIRST_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":836,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorDisplayName(author, \"Ahm\");","isFullCredit":false},{"lineNumber":837,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":838,"author":{"gitId":"-"},"content":" expectedConfig.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":839,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(CONFIG_FORMATS);","isFullCredit":false},{"lineNumber":840,"author":{"gitId":"-"},"content":" expectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":841,"author":{"gitId":"-"},"content":" expectedConfig.setIgnoredAuthorsList(Arrays.asList(\"jordancjq\", \"Eugene Peh\"));","isFullCredit":false},{"lineNumber":842,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":843,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":844,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(IGNORE_AUTHORS_TEST_CONFIG_FILE)","isFullCredit":false},{"lineNumber":845,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":846,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":847,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":848,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":849,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":850,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":851,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e authorConfigs \u003d","isFullCredit":false},{"lineNumber":852,"author":{"gitId":"-"},"content":" new AuthorConfigCsvParser(cliArguments.getAuthorConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":853,"author":{"gitId":"-"},"content":" RepoConfiguration.merge(actualConfigs, authorConfigs);","isFullCredit":false},{"lineNumber":854,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":855,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":856,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":857,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":858,"author":{"gitId":"-"},"content":" Method updateAuthorList \u003d ReportGenerator.class.getDeclaredMethod(\"updateAuthorList\", RepoConfiguration.class);","isFullCredit":false},{"lineNumber":859,"author":{"gitId":"-"},"content":" updateAuthorList.setAccessible(true);","isFullCredit":false},{"lineNumber":860,"author":{"gitId":"-"},"content":" updateAuthorList.invoke(reportGenerator, actualConfig);","isFullCredit":false},{"lineNumber":861,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":862,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":863,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":864,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":865,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":866,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_displayName_success() throws Exception {","isFullCredit":false},{"lineNumber":867,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":868,"author":{"gitId":"asdfghjkxd"},"content":" .displayName(\"CS3281\")","isFullCredit":false},{"lineNumber":869,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":870,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":871,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":872,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":873,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(actualConfig.getDisplayName(), \"CS3281\");","isFullCredit":false},{"lineNumber":874,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":875,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":876,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":877,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_outputFolderName_success() throws Exception {","isFullCredit":false},{"lineNumber":878,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":879,"author":{"gitId":"asdfghjkxd"},"content":" .outputFolderName(\"CS3281 Folder\")","isFullCredit":false},{"lineNumber":880,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":881,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":882,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":883,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":884,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(actualConfig.getOutputFolderName(), \"CS3281 Folder\");","isFullCredit":false},{"lineNumber":885,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":886,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":887,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":888,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_repoFolderName_success() throws Exception {","isFullCredit":false},{"lineNumber":889,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":890,"author":{"gitId":"asdfghjkxd"},"content":" .repoFolderName(\"CS3281 Folder\")","isFullCredit":false},{"lineNumber":891,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":892,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":893,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":894,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":895,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(actualConfig.getRepoFolderName(), \"CS3281 Folder\");","isFullCredit":false},{"lineNumber":896,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":897,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":898,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":899,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_zoneID_success() throws Exception {","isFullCredit":false},{"lineNumber":900,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":901,"author":{"gitId":"asdfghjkxd"},"content":" .zoneId(ZoneId.systemDefault())","isFullCredit":false},{"lineNumber":902,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":903,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":904,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":905,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":906,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(actualConfig.getZoneId(), ZoneId.systemDefault());","isFullCredit":false},{"lineNumber":907,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":908,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":909,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":910,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_sinceDate_success() throws Exception {","isFullCredit":false},{"lineNumber":911,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":912,"author":{"gitId":"asdfghjkxd"},"content":" .sinceDate(LocalDateTime.of(2024, 1, 1, 12, 0, 0))","isFullCredit":false},{"lineNumber":913,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":914,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":915,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":916,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":917,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(actualConfig.getSinceDate(),","isFullCredit":false},{"lineNumber":918,"author":{"gitId":"asdfghjkxd"},"content":" LocalDateTime.of(2024, 1, 1, 12, 0, 0));","isFullCredit":false},{"lineNumber":919,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":920,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":921,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":922,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_untilDate_success() throws Exception {","isFullCredit":false},{"lineNumber":923,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":924,"author":{"gitId":"asdfghjkxd"},"content":" .untilDate(LocalDateTime.of(2024, 1, 1, 12, 0, 0))","isFullCredit":false},{"lineNumber":925,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":926,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":927,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":928,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":929,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(actualConfig.getUntilDate(),","isFullCredit":false},{"lineNumber":930,"author":{"gitId":"asdfghjkxd"},"content":" LocalDateTime.of(2024, 1, 1, 12, 0, 0));","isFullCredit":false},{"lineNumber":931,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":932,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":933,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":934,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_authorConfig_success() throws Exception {","isFullCredit":false},{"lineNumber":935,"author":{"gitId":"asdfghjkxd"},"content":" RepoLocation loc \u003d new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG);","isFullCredit":false},{"lineNumber":936,"author":{"gitId":"asdfghjkxd"},"content":" String branch \u003d \"master\";","isFullCredit":false},{"lineNumber":937,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":938,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":939,"author":{"gitId":"asdfghjkxd"},"content":" .authorConfig(new AuthorConfiguration(loc, branch))","isFullCredit":false},{"lineNumber":940,"author":{"gitId":"asdfghjkxd"},"content":" .location(loc)","isFullCredit":false},{"lineNumber":941,"author":{"gitId":"asdfghjkxd"},"content":" .branch(branch)","isFullCredit":false},{"lineNumber":942,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":943,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":944,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(actualConfig.getAuthorConfig(),","isFullCredit":false},{"lineNumber":945,"author":{"gitId":"asdfghjkxd"},"content":" new AuthorConfiguration(loc, branch));","isFullCredit":false},{"lineNumber":946,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":947,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":948,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":949,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_isLastModifiedDateIncluded_success() throws Exception {","isFullCredit":false},{"lineNumber":950,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":951,"author":{"gitId":"asdfghjkxd"},"content":" .isLastModifiedDateIncluded(true)","isFullCredit":false},{"lineNumber":952,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":953,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":954,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":955,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":956,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertTrue(actualConfig.isLastModifiedDateIncluded());","isFullCredit":false},{"lineNumber":957,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":958,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":959,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":960,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_buildWithInvalid_failure() {","isFullCredit":false},{"lineNumber":961,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertThrows(ConfigurationBuildException.class, () -\u003e new RepoConfiguration.Builder().build());","isFullCredit":false},{"lineNumber":962,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":963,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":244,"-":719}},{"path":"src/test/java/reposense/model/RepoLocationTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.model.RepoLocation.UNSUPPORTED_DOMAIN_NAME;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import static reposense.model.RepoLocation.getDomainNameFromDomain;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import static reposense.model.RepoLocation.isLocalRepo;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assumptions;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidLocationException;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.util.AssertUtil;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import reposense.util.SystemUtil;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"public class RepoLocationTest {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_VALID_WITHOUT_DOT_GIT_ONE \u003d \"repo\";","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_VALID_WITHOUT_DOT_GIT_TWO \u003d \"../path/to/repo\";","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_VALID_WITHOUT_DOT_GIT_THREE \u003d \"/path/to/repo\";","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_VALID_WITH_DOT_GIT_ONE \u003d \"path/to/repo/.git\";","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_VALID_WITH_DOT_GIT_TWO \u003d \"file://path/to/repo.git\";","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_FILE_URL_ONE \u003d \"file://path/to/repo\";","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_FILE_URL_TWO \u003d \"file:///path/to/repo\";","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_WINDOWS_VALID_WITHOUT_DOT_GIT_ONE \u003d \"path\\\\to\\\\repo\\\\\";","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_WINDOWS_VALID_WITHOUT_DOT_GIT_TWO \u003d \"..\\\\path\\\\to\\\\repo\";","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_WINDOWS_VALID_WITH_DOT_GIT_ONE \u003d \"path\\\\to\\\\repo\\\\.git\";","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_WINDOWS_DISK_DRIVE \u003d \"C:\\\\path\\\\to\\\\repo.git\";","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_WINDOWS_VALID_MIXED_ONE \u003d \"..\\\\path/to\\\\repo\";","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_WINDOWS_VALID_MIXED_TWO \u003d \"file://path\\\\to\\\\repo.git\";","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_WINDOWS_DISK_DRIVE_MIXED \u003d \"C:\\\\path/to/repo.git\";","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private static final String EXPECTED_REPO_NAME \u003d \"repo\";","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private static final String EXPECTED_ORGANIZATION \u003d \"path-to\";","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final String EXPECTED_DOMAIN_NAME \u003d \"github\";","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private static final String EXPECTED_UNRECOGNISED_DOMAIN_NAME \u003d UNSUPPORTED_DOMAIN_NAME;","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" public void repoLocation_parseEmptyString_success() throws Exception {","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" RepoLocation repoLocation \u003d new RepoLocation(\"\");","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" public void isLocalRepo_validLocalRepos_success() throws Exception {","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" Assertions.assertTrue(isLocalRepo(LOCAL_REPO_VALID_WITH_DOT_GIT_ONE));","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" Assertions.assertTrue(isLocalRepo(LOCAL_REPO_WINDOWS_VALID_MIXED_ONE));","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" Assertions.assertTrue(isLocalRepo(\"./abc:def\"));","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" public void isLocalRepo_remoteRepos_returnsFalse() throws Exception {","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" Assertions.assertFalse(isLocalRepo(\"https://github.com/reposense/RepoSense.git/\"));","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" Assertions.assertFalse(isLocalRepo(\"git@github.com:reposense/RepoSense.git/\"));","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" public void repoLocation_parseLocalRepoLocation_success() throws Exception {","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" // local paths not containing \".git\" should be valid","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_VALID_WITHOUT_DOT_GIT_ONE,","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"\", EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" // relative pathing should be considered part of the \u0027organization\u0027 for differentiation","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_VALID_WITHOUT_DOT_GIT_TWO,","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"..-\" + EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_VALID_WITHOUT_DOT_GIT_THREE,","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"-\" + EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" // local paths containing \".git\" should also be valid","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_VALID_WITH_DOT_GIT_ONE,","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_VALID_WITH_DOT_GIT_TWO,","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" // file-type url protocol (file://) is accepted by git clone","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_FILE_URL_ONE,","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_FILE_URL_TWO,","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"-\" + EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" public void repoLocation_parseWindowsLocalRepoLocation_success() throws Exception {","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" Assumptions.assumeTrue(SystemUtil.isWindows());","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" // repeated tests but with windows file separators","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_WINDOWS_VALID_WITHOUT_DOT_GIT_ONE,","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_WINDOWS_VALID_WITHOUT_DOT_GIT_TWO,","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"..-\" + EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_WINDOWS_VALID_WITH_DOT_GIT_ONE,","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_WINDOWS_DISK_DRIVE,","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"C--\" + EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_WINDOWS_VALID_MIXED_ONE,","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"..-\" + EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_WINDOWS_VALID_MIXED_TWO,","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_WINDOWS_DISK_DRIVE_MIXED,","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"C--\" + EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" public void repoLocation_parseValidRemoteRepoUrl_success() throws Exception {","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" // valid url without specifying branch","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense/testrepo-Beta.git\",","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" \"testrepo-Beta\", \"reposense\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense/testrepo-Delta.git\",","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" \"testrepo-Delta\", \"reposense\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://gitlab.com/reposense/RepoSense.git\",","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" \"RepoSense\", \"reposense\", \"gitlab\");","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense.git\",","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" \"reposense\", \"\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" // valid url to parse for obtaining repo and organization, just not a valid git clone target","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense/.git\",","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" \"reposense\", \"\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" // valid url from other domains","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://bitbucket.org/reposense/RepoSense.git\",","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" \"RepoSense\", \"reposense\", \"bitbucket\");","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" // valid url from unsupported domain with longer path to git directory than the standard organization/reponame","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://opensource.ncsa.illinois.edu/bitbucket/scm/u3d/3dutilities.git\",","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" \"3dutilities\", \"bitbucket-scm-u3d\", EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" // treated as valid but will be caught when git clone fails","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense/testrepo-Beta/tree/add-config-json\",","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" \"add-config-json\", \"reposense-testrepo-Beta-tree\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense/testrepo-Beta.git/tree/add-config-json\",","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" \"add-config-json\", \"reposense-testrepo-Beta.git-tree\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" // URLs without \".git\" should be accepted as git clone works even without it","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense\",","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" \"reposense\", \"\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense/RepoSense\",","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" \"RepoSense\", \"reposense\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" // Test against other types of URL protocols that are valid for git clone","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" assertParsableLocation(\"ssh://git@github.com/path/to/repo.git/\",","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" assertParsableLocation(\"git://github.com/path/to/repo.git\",","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://host.xz:9000/path/to/repo.git\",","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" // Test against the conventional ssh protocol used for GitHub, e.g. git@github.com:reposense/RepoSense.git","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" assertParsableLocation(\"repo@organization.com:path/to/repo.git/\",","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" assertParsableLocation(\"git@github.com:reposense/RepoSense.git\",","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" \"RepoSense\", \"reposense\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" public void repoLocation_parseNormalizableRepoLocations_success() throws Exception {","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense/redundant/directories/../../RepoSense.git\",","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" \"RepoSense\", \"reposense\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" assertParsableLocation(\"/path/with/redundant/directories/../.././../to/repo\",","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"-\" + EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" // Tests if there is an additional \u0027../\u0027 it is not consumed by accident","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" assertParsableLocation(\"path/with/redundant/directories/../../../../../to/repo\",","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"..-to\", EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" public void repoLocation_parseInvalidRemoteRepo_throwsInvalidLocationException() throws Exception {","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" // Invalid URL protocol","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" assertUnparsableLocation(\"ttp://github.com/reposense.RepoSense.git\");","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" assertUnparsableLocation(\"not-valid-protocol://abc.com/reposense/RepoSense.git\");","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" // URL contains illegal characters","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" assertUnparsableLocation(\"https://github.com/contains-illegal-chars/^\\\\/\");","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" public void getDomainNameFromMatcher_parseValidDomain_success() throws Exception {","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"github\", getDomainNameFromDomain(\"www.github.com\"));","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"github\", getDomainNameFromDomain(\"github.com\"));","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"gitlab\", getDomainNameFromDomain(\"www.gitlab.org\"));","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"bitbucket\", getDomainNameFromDomain(\"ww2.bitbucket.com\"));","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" // valid but unsupported","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" Assertions.assertEquals(UNSUPPORTED_DOMAIN_NAME, getDomainNameFromDomain(\"opensource.ncsa.illinois.edu\"));","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" public void getDomainNameFromMatcher_parseInvalidDomain_throwsInvalidLocationException() throws Exception {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" // no top level domain specified","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" AssertUtil.assertThrows(InvalidLocationException.class, () -\u003e getDomainNameFromDomain(\"www.github\"));","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" AssertUtil.assertThrows(InvalidLocationException.class, () -\u003e getDomainNameFromDomain(\"github\"));","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" // has a dot but still no top level domain specified","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" AssertUtil.assertThrows(InvalidLocationException.class, () -\u003e getDomainNameFromDomain(\"github.\"));","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" * Compares the information of {@code rawLocation} parsed by the RepoLocation model with {@code expectedRepoName}","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" * and {@code expectedOrganization}.","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" public void assertParsableLocation(String rawLocation, String expectedRepoName,","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" String expectedOrganization, String expectedDomainName) throws Exception {","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" RepoLocation repoLocation \u003d new RepoLocation(rawLocation);","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedRepoName, repoLocation.getRepoName());","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedOrganization, repoLocation.getOrganization());","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedDomainName, repoLocation.getDomainName());","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" private void assertUnparsableLocation(String rawLocation) {","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" AssertUtil.assertThrows(InvalidLocationException.class, () -\u003e new RepoLocation(rawLocation));","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":207}},{"path":"src/test/java/reposense/parser/ArgsParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.apache.tools.ant.types.Commandline.translateCommandline;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.io.File;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.time.Month;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import java.time.format.DateTimeFormatter;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.AfterEach;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeEach;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.helper.HelpScreenException;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import reposense.model.CliArguments;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import reposense.model.FileType;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"import reposense.model.FileTypeTest;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"import reposense.model.RunConfigurationDecider;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.ParseException;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.SinceDateArgumentType;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"import reposense.util.InputBuilder;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"import reposense.util.TestUtil;","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"import reposense.util.TimeUtil;","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"public class ArgsParserTest {","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private static final Path PROJECT_DIRECTORY \u003d Paths.get(System.getProperty(\"user.dir\"));","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" private static final Path CONFIG_DIRECTORY \u003d Paths.get(System.getProperty(\"user.dir\")","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" + File.separator + \"config\" + File.separator);","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" private static final Path CONFIG_FOLDER_ABSOLUTE \u003d loadResource(ArgsParserTest.class, \"cli_location_test\");","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" private static final Path OUTPUT_DIRECTORY_ABSOLUTE \u003d loadResource(ArgsParserTest.class, \"output\");","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" private static final Path CONFIG_FOLDER_RELATIVE \u003d PROJECT_DIRECTORY.relativize(CONFIG_FOLDER_ABSOLUTE);","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" private static final Path OUTPUT_DIRECTORY_RELATIVE \u003d PROJECT_DIRECTORY.relativize(OUTPUT_DIRECTORY_ABSOLUTE);","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_CSV_FILE \u003d","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" CONFIG_FOLDER_ABSOLUTE.resolve(RepoConfigCsvParser.REPO_CONFIG_FILENAME);","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_CSV_FILE \u003d","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" CONFIG_FOLDER_ABSOLUTE.resolve(AuthorConfigCsvParser.AUTHOR_CONFIG_FILENAME);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" private static final String NONEXISTENT_DIRECTORY \u003d \"some_non_existent_dir/\";","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" private static final InputBuilder DEFAULT_INPUT_BUILDER \u003d new InputBuilder();","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_REPOSENSE \u003d \"https://github.com/reposense/RepoSense.git\";","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_BETA \u003d \"https://github.com/reposense/testrepo-Beta.git\";","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_CHARLIE \u003d \"https://github.com/reposense/testrepo-Charlie.git\";","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_DELTA \u003d \"https://github.com/reposense/testrepo-Delta.git\";","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" private static final String DEFAULT_TIME_ZONE_STRING \u003d \"Asia/Singapore\";","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" private static final ZoneId DEFAULT_TIME_ZONE_ID \u003d TestUtil.getZoneId(DEFAULT_TIME_ZONE_STRING);","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" @BeforeEach","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" public void before() {","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" DEFAULT_INPUT_BUILDER.reset().addConfig(CONFIG_FOLDER_ABSOLUTE);","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" @AfterEach","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" public void after() {","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" FileUtil.deleteDirectory(PROJECT_DIRECTORY.resolve(NONEXISTENT_DIRECTORY).toString());","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" } catch (IOException e) {","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" System.err.println(e.getMessage());","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" public void parse_d1CorrectTimeZone_success() throws Exception {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE)","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" .addSinceDate(SinceDateArgumentType.FIRST_COMMIT_DATE_SHORTHAND)","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" .addUntilDate(\"30/11/2017\")","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING)","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" LocalDateTime expectedSinceDate \u003d TimeUtil.getArbitraryFirstCommitDateConverted(DEFAULT_TIME_ZONE_ID);","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" LocalDateTime expectedUntilDate \u003d TestUtil.getUntilDate(2017, Month.NOVEMBER.getValue(), 30);","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedSinceDate, cliArguments.getSinceDate());","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedUntilDate, cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" Assertions.assertEquals(DEFAULT_TIME_ZONE_ID, cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" public void parse_allCorrectInputs_success() throws Exception {","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE)","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" .addOutput(OUTPUT_DIRECTORY_ABSOLUTE)","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" .addSinceDate(\"01/07/2017\")","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" .addUntilDate(\"30/11/2017\")","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" .addFormats(\"java adoc html css js\")","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" .addIgnoreStandaloneConfig()","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" .addIgnoreFilesizeLimit()","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" .addView()","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING)","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" OUTPUT_DIRECTORY_ABSOLUTE.resolve(ArgsParser.DEFAULT_REPORT_NAME), cliArguments.getOutputFilePath()));","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" LocalDateTime expectedSinceDate \u003d TestUtil.getSinceDate(2017, Month.JULY.getValue(), 1);","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" LocalDateTime expectedUntilDate \u003d TestUtil.getUntilDate(2017, Month.NOVEMBER.getValue(), 30);","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedSinceDate, cliArguments.getSinceDate());","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedUntilDate, cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" List\u003cFileType\u003e expectedFormats \u003d FileType.convertFormatStringsToFileTypes(","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" Arrays.asList(\"java\", \"adoc\", \"html\", \"css\", \"js\"));","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedFormats, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isFileSizeLimitIgnored());","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" Assertions.assertEquals(DEFAULT_TIME_ZONE_ID, cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" public void parse_help_throwsHelpScreenException() {","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" String input \u003d \"--help\";","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" Assertions.assertThrows(HelpScreenException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" public void parse_allCorrectInputsAlias_success() throws Exception {","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" String input \u003d String.format(","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" \"-c \\\"%s\\\" -o \\\"%s\\\" -s 01/07/2017 -u 30/11/2017 -f java adoc html css js -i -I -v -t %s\",","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" CONFIG_FOLDER_ABSOLUTE, OUTPUT_DIRECTORY_ABSOLUTE, DEFAULT_TIME_ZONE_STRING);","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" OUTPUT_DIRECTORY_ABSOLUTE.resolve(ArgsParser.DEFAULT_REPORT_NAME), cliArguments.getOutputFilePath()));","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" LocalDateTime expectedSinceDate \u003d TestUtil.getSinceDate(2017, Month.JULY.getValue(), 1);","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" LocalDateTime expectedUntilDate \u003d TestUtil.getUntilDate(2017, Month.NOVEMBER.getValue(), 30);","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedSinceDate, cliArguments.getSinceDate());","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedUntilDate, cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" List\u003cFileType\u003e expectedFormats \u003d FileType.convertFormatStringsToFileTypes(","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" Arrays.asList(\"java\", \"adoc\", \"html\", \"css\", \"js\"));","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedFormats, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isFileSizeLimitIgnored());","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" Assertions.assertEquals(DEFAULT_TIME_ZONE_ID, cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" public void parse_withExtraWhitespaces_success() throws Exception {","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE).addWhiteSpace(5)","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" .addOutput(OUTPUT_DIRECTORY_ABSOLUTE).addWhiteSpace(4)","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" .addSinceDate(\"01/07/2017\").addWhiteSpace(3)","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" .addUntilDate(\"30/11/2017\").addWhiteSpace(6)","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" .addFormats(\"java adoc html css js \")","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" .addIgnoreStandaloneConfig().addWhiteSpace(1)","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" .addIgnoreFilesizeLimit().addWhiteSpace(2)","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" .addView().addWhiteSpace(4)","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING).addWhiteSpace(5)","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" OUTPUT_DIRECTORY_ABSOLUTE.resolve(ArgsParser.DEFAULT_REPORT_NAME), cliArguments.getOutputFilePath()));","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" LocalDateTime expectedSinceDate \u003d TestUtil.getSinceDate(2017, Month.JULY.getValue(), 1);","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" LocalDateTime expectedUntilDate \u003d TestUtil.getUntilDate(2017, Month.NOVEMBER.getValue(), 30);","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedSinceDate, cliArguments.getSinceDate());","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedUntilDate, cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" List\u003cFileType\u003e expectedFormats \u003d FileType.convertFormatStringsToFileTypes(Arrays.asList(","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" \"java\", \"adoc\", \"html\", \"css\", \"js\"));","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedFormats, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isFileSizeLimitIgnored());","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" Assertions.assertEquals(DEFAULT_TIME_ZONE_ID, cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" public void parse_configFolderOnly_success() throws Exception {","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE).build();","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" // Optional arguments have default values","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" assertDateDiffOneMonth(cliArguments.getSinceDate(), cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" assertDateDiffEndOfDay(cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" Assertions.assertEquals(ArgsParser.DEFAULT_REPORT_NAME,","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" cliArguments.getOutputFilePath().getFileName().toString());","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" Assertions.assertEquals(FileTypeTest.NO_SPECIFIED_FORMATS, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" Assertions.assertFalse(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_RELATIVE).build();","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" // Optional arguments have default values","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" assertDateDiffOneMonth(cliArguments.getSinceDate(), cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" assertDateDiffEndOfDay(cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" Assertions.assertEquals(ArgsParser.DEFAULT_REPORT_NAME,","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" cliArguments.getOutputFilePath().getFileName().toString());","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" Assertions.assertEquals(FileTypeTest.NO_SPECIFIED_FORMATS, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" Assertions.assertFalse(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" Assertions.assertEquals(ZoneId.systemDefault(), cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" public void parse_viewOnly_success() throws Exception {","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addView(OUTPUT_DIRECTORY_ABSOLUTE).build();","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" OUTPUT_DIRECTORY_ABSOLUTE, cliArguments.getReportDirectoryPath()));","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" public void parse_withIgnore_success() throws Exception {","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" .addIgnoreStandaloneConfig()","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" String inputWithAlias \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" .add(\"-i\")","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" CliArguments cliArgumentsWithAlias \u003d ArgsParser.parse(translateCommandline(inputWithAlias));","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArgumentsWithAlias.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.equals(cliArgumentsWithAlias));","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" Assertions.assertEquals(cliArguments, cliArgumentsWithAlias);","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" public void parse_withoutIgnore_success() throws Exception {","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA).build();","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" Assertions.assertFalse(cliArguments.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" public void parse_viewOnlyWithoutArgs_returnsConfigCliArguments() throws Exception {","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addView().build();","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" Assertions.assertEquals(CONFIG_DIRECTORY.toString(), (","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" cliArguments).getConfigFolderPath().toString());","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" public void parse_configFolderAndOutputDirectory_success() throws Exception {","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" Path expectedRelativeOutputDirectoryPath \u003d OUTPUT_DIRECTORY_RELATIVE.resolve(ArgsParser.DEFAULT_REPORT_NAME);","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" Path expectedAbsoluteOutputDirectoryPath \u003d OUTPUT_DIRECTORY_ABSOLUTE.resolve(ArgsParser.DEFAULT_REPORT_NAME);","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE)","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" .addOutput(OUTPUT_DIRECTORY_RELATIVE)","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(expectedRelativeOutputDirectoryPath, cliArguments.getOutputFilePath()));","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_RELATIVE)","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" .addOutput(OUTPUT_DIRECTORY_ABSOLUTE)","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(expectedAbsoluteOutputDirectoryPath, cliArguments.getOutputFilePath()));","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" public void parse_configFolderAndViewWithouthArgs_returnsConfigCliArguments() throws Exception {","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE)","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" .addView()","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":" input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_RELATIVE)","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":" .addView()","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" public void parse_configFolderAndViewWithArgs_returnsConfigCliArguments() throws Exception {","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE)","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" .addView(OUTPUT_DIRECTORY_ABSOLUTE)","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" public void sinceDate_correctFormat_success() throws Exception {","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":" .addSinceDate(\"01/07/2017\")","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING)","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"-"},"content":" LocalDateTime expectedSinceDate \u003d TestUtil.getSinceDate(2017, Month.JULY.getValue(), 1);","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedSinceDate, cliArguments.getSinceDate());","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":" public void untilDate_correctFormat_success() throws Exception {","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":" .addUntilDate(\"30/11/2017\")","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING)","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" LocalDateTime expectedUntilDate \u003d TestUtil.getUntilDate(2017, Month.NOVEMBER.getValue(), 30);","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedUntilDate, cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" public void sinceDate_withExtraDate_success() throws Exception {","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"-"},"content":" .addSinceDate(\"\\\"01/07/2017 01/07/2018\\\"\")","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING)","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":" LocalDateTime expectedSinceDate \u003d TestUtil.getSinceDate(2017, Month.JULY.getValue(), 1);","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedSinceDate, cliArguments.getSinceDate());","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"-"},"content":" public void untilDate_withExtraTime_success() throws Exception {","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"-"},"content":" .addUntilDate(\"\\\"30/11/2017 10:10:10\\\"\")","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING)","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"-"},"content":" LocalDateTime expectedUntilDate \u003d TestUtil.getUntilDate(2017, Month.NOVEMBER.getValue(), 30);","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedUntilDate, cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"-"},"content":" public void period_inDaysWithSinceDate_success() throws Exception {","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"-"},"content":" .addSinceDate(\"01/07/2017\")","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"-"},"content":" .addPeriod(\"2d\")","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING)","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"-"},"content":" LocalDateTime expectedUntilDate \u003d TestUtil.getUntilDate(2017, Month.JULY.getValue(), 3);","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedUntilDate, cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"-"},"content":" public void period_inWeeksWithUntilDate_success() throws Exception {","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"-"},"content":" .addUntilDate(\"14/07/2017\")","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING)","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"-"},"content":" .addPeriod(\"2w\")","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"-"},"content":" LocalDateTime expectedSinceDate \u003d TestUtil.getSinceDate(2017, Month.JUNE.getValue(), 30);","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedSinceDate, cliArguments.getSinceDate());","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"-"},"content":" public void formats_inAlphanumeric_success() throws Exception {","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addFormats(\"java js css 7z\").build();","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"-"},"content":" List\u003cFileType\u003e expectedFormats \u003d FileType.convertFormatStringsToFileTypes(","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"-"},"content":" Arrays.asList(\"java\", \"js\", \"css\", \"7z\"));","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedFormats, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"-"},"content":" public void numCloningThreads_default_success() throws Exception {","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.build();","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"-"},"content":" int expectedNumThreads \u003d ArgsParser.DEFAULT_NUM_CLONING_THREADS;","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedNumThreads, cliArguments.getNumCloningThreads());","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"-"},"content":" public void numCloningThreads_isNumeric_success() throws Exception {","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"-"},"content":" .addNumCloningThreads(2)","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"-"},"content":" System.out.println(input);","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"-"},"content":" int expectedNumThreads \u003d 2;","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedNumThreads, cliArguments.getNumCloningThreads());","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"-"},"content":" public void numAnalysisThreads_default_success() throws Exception {","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.build();","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"-"},"content":" int expectedNumThreads \u003d ArgsParser.DEFAULT_NUM_ANALYSIS_THREADS;","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedNumThreads, cliArguments.getNumAnalysisThreads());","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"-"},"content":" public void numAnalysisThreads_isNumeric_success() throws Exception {","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"-"},"content":" .addNumAnalysisThreads(2)","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"-"},"content":" int expectedNumThreads \u003d 2;","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedNumThreads, cliArguments.getNumAnalysisThreads());","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"-"},"content":" public void parse_validGitRepoLocations_repoConfigurationListCorrectSize() throws Exception {","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA).build();","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e repoConfigs \u003d RunConfigurationDecider","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"-"},"content":" .getRunConfiguration(cliArguments)","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"-"},"content":" .getRepoConfigurations();","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, repoConfigs.size());","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"-"},"content":" public void parse_repoLocationsAndView_returnsLocationCliArguments() throws Exception {","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"-"},"content":" .addView()","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"-"},"content":" List\u003cString\u003e expectedLocations \u003d Arrays.asList(TEST_REPO_REPOSENSE, TEST_REPO_DELTA);","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedLocations, cliArguments.getLocations());","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"-"},"content":" public void parse_repoLocationsOnly_success() throws Exception {","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA).build();","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"-"},"content":" Assertions.assertFalse(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"-"},"content":" List\u003cString\u003e expectedLocations \u003d Arrays.asList(TEST_REPO_REPOSENSE, TEST_REPO_DELTA);","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedLocations, cliArguments.getLocations());","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"-"},"content":" public void parse_repoLocationsAndViewWithArgs_returnsLocationsCliArguments() throws Exception {","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":504,"author":{"gitId":"-"},"content":" .addView(OUTPUT_DIRECTORY_ABSOLUTE)","isFullCredit":false},{"lineNumber":505,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":506,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":507,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":508,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":509,"author":{"gitId":"-"},"content":" List\u003cString\u003e expectedLocations \u003d Arrays.asList(TEST_REPO_REPOSENSE, TEST_REPO_DELTA);","isFullCredit":false},{"lineNumber":510,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedLocations, cliArguments.getLocations());","isFullCredit":false},{"lineNumber":511,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":512,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":513,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":514,"author":{"gitId":"-"},"content":" public void parse_configOrLocationsSimilar_success() throws Exception {","isFullCredit":false},{"lineNumber":515,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE).build();","isFullCredit":false},{"lineNumber":516,"author":{"gitId":"-"},"content":" CliArguments configCliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":517,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualRepoConfigs \u003d RunConfigurationDecider","isFullCredit":false},{"lineNumber":518,"author":{"gitId":"-"},"content":" .getRunConfiguration(configCliArguments)","isFullCredit":false},{"lineNumber":519,"author":{"gitId":"-"},"content":" .getRepoConfigurations();","isFullCredit":false},{"lineNumber":520,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":521,"author":{"gitId":"-"},"content":" input \u003d new InputBuilder().addRepos(TEST_REPO_BETA, TEST_REPO_CHARLIE, TEST_REPO_DELTA).build();","isFullCredit":false},{"lineNumber":522,"author":{"gitId":"-"},"content":" CliArguments locationCliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":523,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e expectedRepoConfigs \u003d RunConfigurationDecider","isFullCredit":false},{"lineNumber":524,"author":{"gitId":"-"},"content":" .getRunConfiguration(locationCliArguments)","isFullCredit":false},{"lineNumber":525,"author":{"gitId":"-"},"content":" .getRepoConfigurations();","isFullCredit":false},{"lineNumber":526,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":527,"author":{"gitId":"-"},"content":" Assertions.assertEquals(actualRepoConfigs, expectedRepoConfigs);","isFullCredit":false},{"lineNumber":528,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":529,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":530,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":531,"author":{"gitId":"-"},"content":" public void emptyArgs_defaultConfigFolderPath() throws Exception {","isFullCredit":false},{"lineNumber":532,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(new String[] {});","isFullCredit":false},{"lineNumber":533,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":534,"author":{"gitId":"-"},"content":" Assertions.assertEquals(CONFIG_DIRECTORY.toString(), cliArguments.getConfigFolderPath().toString());","isFullCredit":false},{"lineNumber":535,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":536,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":537,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":538,"author":{"gitId":"-"},"content":" public void parse_repoAliases_sameResult() throws Exception {","isFullCredit":false},{"lineNumber":539,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_BETA).build();","isFullCredit":false},{"lineNumber":540,"author":{"gitId":"-"},"content":" CliArguments repoAliasCliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":541,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":542,"author":{"gitId":"-"},"content":" input \u003d new InputBuilder().add(String.format(\"--repos %s\", TEST_REPO_BETA)).build();","isFullCredit":false},{"lineNumber":543,"author":{"gitId":"-"},"content":" CliArguments reposAliasCliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":544,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":545,"author":{"gitId":"-"},"content":" Assertions.assertEquals(repoAliasCliArguments, reposAliasCliArguments);","isFullCredit":false},{"lineNumber":546,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":547,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":548,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":549,"author":{"gitId":"-"},"content":" public void absoluteConfigFolder_withoutRequiredConfigFiles_throwsParseException() {","isFullCredit":false},{"lineNumber":550,"author":{"gitId":"-"},"content":" Path absDirectory \u003d PROJECT_DIRECTORY.getParent().toAbsolutePath();","isFullCredit":false},{"lineNumber":551,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(absDirectory).build();","isFullCredit":false},{"lineNumber":552,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":553,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":554,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":555,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":556,"author":{"gitId":"-"},"content":" public void relativeConfigFolder_withoutRequiredConfigFiles_throwsParseException() {","isFullCredit":false},{"lineNumber":557,"author":{"gitId":"-"},"content":" Path relDirectory \u003d PROJECT_DIRECTORY.getParent();","isFullCredit":false},{"lineNumber":558,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(relDirectory).build();","isFullCredit":false},{"lineNumber":559,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":560,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":561,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":562,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":563,"author":{"gitId":"-"},"content":" public void parse_notExistsConfigFolder_throwsParseException() {","isFullCredit":false},{"lineNumber":564,"author":{"gitId":"-"},"content":" Path absConfigFolder \u003d PROJECT_DIRECTORY.resolve(\"non_existing_random_folder\");","isFullCredit":false},{"lineNumber":565,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(absConfigFolder).build();","isFullCredit":false},{"lineNumber":566,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":567,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":568,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":569,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":570,"author":{"gitId":"-"},"content":" public void parse_configCsvFileAsConfigFolder_throwsParseException() {","isFullCredit":false},{"lineNumber":571,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(REPO_CONFIG_CSV_FILE).build();","isFullCredit":false},{"lineNumber":572,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":573,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":574,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":575,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":576,"author":{"gitId":"-"},"content":" public void parse_missingConfigValue_throwsParseException() {","isFullCredit":false},{"lineNumber":577,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(new File(\"\").toPath()).build();","isFullCredit":false},{"lineNumber":578,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":579,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":580,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":581,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":582,"author":{"gitId":"-"},"content":" public void outputPath_nonExistentDirectory_success() throws Exception {","isFullCredit":false},{"lineNumber":583,"author":{"gitId":"-"},"content":" Path nonExistentDirectory \u003d PROJECT_DIRECTORY.resolve(NONEXISTENT_DIRECTORY);","isFullCredit":false},{"lineNumber":584,"author":{"gitId":"-"},"content":" Path expectedRelativeOutputDirectoryPath \u003d nonExistentDirectory.resolve(ArgsParser.DEFAULT_REPORT_NAME);","isFullCredit":false},{"lineNumber":585,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addOutput(nonExistentDirectory).build();","isFullCredit":false},{"lineNumber":586,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":587,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":588,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":589,"author":{"gitId":"-"},"content":" expectedRelativeOutputDirectoryPath, cliArguments.getOutputFilePath()));","isFullCredit":false},{"lineNumber":590,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":591,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":592,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":593,"author":{"gitId":"-"},"content":" public void sinceDate_unsupportedFormats_throwsParseException() {","isFullCredit":false},{"lineNumber":594,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addSinceDate(\"01 July 17\").build();","isFullCredit":false},{"lineNumber":595,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":596,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":597,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":598,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":599,"author":{"gitId":"-"},"content":" public void untilDate_unsupportedFormats_throwsParseException() {","isFullCredit":false},{"lineNumber":600,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addUntilDate(\"11/31/2017\").build();","isFullCredit":false},{"lineNumber":601,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":602,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":603,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":604,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":605,"author":{"gitId":"-"},"content":" public void sinceDate_laterThanUntilDate_throwsParseException() {","isFullCredit":false},{"lineNumber":606,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addSinceDate(\"01/12/2017\")","isFullCredit":false},{"lineNumber":607,"author":{"gitId":"-"},"content":" .addUntilDate(\"30/11/2017\")","isFullCredit":false},{"lineNumber":608,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":609,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":610,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":611,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":612,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":613,"author":{"gitId":"-"},"content":" public void sinceDate_laterThanCurrentDate_throwsParseException() {","isFullCredit":false},{"lineNumber":614,"author":{"gitId":"-"},"content":" LocalDateTime tomorrowDateTime \u003d LocalDateTime.now()","isFullCredit":false},{"lineNumber":615,"author":{"gitId":"-"},"content":" .plusDays(1L);","isFullCredit":false},{"lineNumber":616,"author":{"gitId":"-"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(\"dd/MM/yyyy\");","isFullCredit":false},{"lineNumber":617,"author":{"gitId":"-"},"content":" String tomorrow \u003d tomorrowDateTime.format(formatter);","isFullCredit":false},{"lineNumber":618,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":619,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":620,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addSinceDate(tomorrow)","isFullCredit":false},{"lineNumber":621,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":622,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":623,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":624,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":625,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":626,"author":{"gitId":"-"},"content":" public void sinceDate_beforeUntilDateAndLaterThanCurrentDate_throwsParseException() {","isFullCredit":false},{"lineNumber":627,"author":{"gitId":"-"},"content":" LocalDateTime tomorrowDateTime \u003d LocalDateTime.now()","isFullCredit":false},{"lineNumber":628,"author":{"gitId":"-"},"content":" .plusDays(1L);","isFullCredit":false},{"lineNumber":629,"author":{"gitId":"-"},"content":" LocalDateTime dayAfterDateTime \u003d LocalDateTime.now()","isFullCredit":false},{"lineNumber":630,"author":{"gitId":"-"},"content":" .plusDays(2L);","isFullCredit":false},{"lineNumber":631,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":632,"author":{"gitId":"-"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(\"dd/MM/yyyy\");","isFullCredit":false},{"lineNumber":633,"author":{"gitId":"-"},"content":" String tomorrow \u003d tomorrowDateTime.format(formatter);","isFullCredit":false},{"lineNumber":634,"author":{"gitId":"-"},"content":" String dayAfter \u003d dayAfterDateTime.format(formatter);","isFullCredit":false},{"lineNumber":635,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":636,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addSinceDate(tomorrow)","isFullCredit":false},{"lineNumber":637,"author":{"gitId":"-"},"content":" .addUntilDate(dayAfter)","isFullCredit":false},{"lineNumber":638,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":639,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":640,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":641,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":642,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":643,"author":{"gitId":"-"},"content":" public void period_withBothSinceDateAndUntilDate_throwsParseException() {","isFullCredit":false},{"lineNumber":644,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addPeriod(\"18d\")","isFullCredit":false},{"lineNumber":645,"author":{"gitId":"-"},"content":" .addSinceDate(\"30/11/2017\")","isFullCredit":false},{"lineNumber":646,"author":{"gitId":"-"},"content":" .addUntilDate(\"01/12/2017\")","isFullCredit":false},{"lineNumber":647,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":648,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":649,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":650,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":651,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":652,"author":{"gitId":"-"},"content":" public void period_notNumeric_throwsParseExcpetion() {","isFullCredit":false},{"lineNumber":653,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addPeriod(\"abcd\").build();","isFullCredit":false},{"lineNumber":654,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":655,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":656,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":657,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":658,"author":{"gitId":"-"},"content":" public void period_isZero_throwsParseExcpetion() {","isFullCredit":false},{"lineNumber":659,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addPeriod(\"0w\").build();","isFullCredit":false},{"lineNumber":660,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":661,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":662,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":663,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":664,"author":{"gitId":"-"},"content":" public void formats_notInAlphanumeric_throwsParseException() {","isFullCredit":false},{"lineNumber":665,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addFormats(\".java\").build();","isFullCredit":false},{"lineNumber":666,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":667,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":668,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":669,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":670,"author":{"gitId":"-"},"content":" public void parse_mutuallyExclusiveArgumentsConfigAndReposTogether_throwsParseException() {","isFullCredit":false},{"lineNumber":671,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE)","isFullCredit":false},{"lineNumber":672,"author":{"gitId":"-"},"content":" .addRepos(TEST_REPO_REPOSENSE)","isFullCredit":false},{"lineNumber":673,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":674,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":675,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":676,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":677,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":678,"author":{"gitId":"-"},"content":" public void parse_extraArgumentForIgnore_throwsParseException() {","isFullCredit":false},{"lineNumber":679,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addIgnoreStandaloneConfig().add(\"true\").build();","isFullCredit":false},{"lineNumber":680,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":681,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":682,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":683,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":684,"author":{"gitId":"-"},"content":" public void parse_withTimezone_success() throws Exception {","isFullCredit":false},{"lineNumber":685,"author":{"gitId":"-"},"content":" String zoneId \u003d \"UTC+11\";","isFullCredit":false},{"lineNumber":686,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addTimezone(zoneId).build();","isFullCredit":false},{"lineNumber":687,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":688,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":689,"author":{"gitId":"-"},"content":" Assertions.assertEquals(ZoneId.of(zoneId), cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":690,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":691,"author":{"gitId":"-"},"content":" zoneId \u003d \"UTC-1030\";","isFullCredit":false},{"lineNumber":692,"author":{"gitId":"-"},"content":" input \u003d DEFAULT_INPUT_BUILDER.addTimezone(zoneId).build();","isFullCredit":false},{"lineNumber":693,"author":{"gitId":"-"},"content":" cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":694,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":695,"author":{"gitId":"-"},"content":" Assertions.assertEquals(ZoneId.of(zoneId), cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":696,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":697,"author":{"gitId":"-"},"content":" zoneId \u003d \"UTC\";","isFullCredit":false},{"lineNumber":698,"author":{"gitId":"-"},"content":" input \u003d DEFAULT_INPUT_BUILDER.addTimezone(zoneId).build();","isFullCredit":false},{"lineNumber":699,"author":{"gitId":"-"},"content":" cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":700,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":701,"author":{"gitId":"-"},"content":" Assertions.assertEquals(ZoneId.of(zoneId), cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":702,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":703,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":704,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":705,"author":{"gitId":"-"},"content":" public void parse_incorrectTimezone_throwsParseException() {","isFullCredit":false},{"lineNumber":706,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addTimezone(\"UTC+\").build();","isFullCredit":false},{"lineNumber":707,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":708,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":709,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":710,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":711,"author":{"gitId":"-"},"content":" public void parse_timezoneWithoutArgument_throwsParseException() {","isFullCredit":false},{"lineNumber":712,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addTimezone(\"\").build();","isFullCredit":false},{"lineNumber":713,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":714,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":715,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":716,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":717,"author":{"gitId":"-"},"content":" public void parse_shallowCloning_success() throws Exception {","isFullCredit":false},{"lineNumber":718,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE)","isFullCredit":false},{"lineNumber":719,"author":{"gitId":"-"},"content":" .addOutput(OUTPUT_DIRECTORY_ABSOLUTE)","isFullCredit":false},{"lineNumber":720,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":721,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":722,"author":{"gitId":"-"},"content":" Assertions.assertEquals(false, cliArguments.isShallowCloningPerformed());","isFullCredit":false},{"lineNumber":723,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":724,"author":{"gitId":"-"},"content":" String inputShallow \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE)","isFullCredit":false},{"lineNumber":725,"author":{"gitId":"-"},"content":" .addOutput(OUTPUT_DIRECTORY_ABSOLUTE)","isFullCredit":false},{"lineNumber":726,"author":{"gitId":"-"},"content":" .addShallowCloning()","isFullCredit":false},{"lineNumber":727,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":728,"author":{"gitId":"-"},"content":" CliArguments cliArgumentsShallow \u003d ArgsParser.parse(translateCommandline(inputShallow));","isFullCredit":false},{"lineNumber":729,"author":{"gitId":"-"},"content":" Assertions.assertEquals(true, cliArgumentsShallow.isShallowCloningPerformed());","isFullCredit":false},{"lineNumber":730,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":731,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":732,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":733,"author":{"gitId":"-"},"content":" public void parse_withAnalyzeAuthorship_success() throws Exception {","isFullCredit":false},{"lineNumber":734,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":735,"author":{"gitId":"-"},"content":" .addAnalyzeAuthorship()","isFullCredit":false},{"lineNumber":736,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":737,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":738,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":739,"author":{"gitId":"-"},"content":" String inputWithAlias \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":740,"author":{"gitId":"-"},"content":" .add(\"-A\")","isFullCredit":false},{"lineNumber":741,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":742,"author":{"gitId":"-"},"content":" CliArguments cliArgumentsWithAlias \u003d ArgsParser.parse(translateCommandline(inputWithAlias));","isFullCredit":false},{"lineNumber":743,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":744,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAuthorshipAnalyzed());","isFullCredit":false},{"lineNumber":745,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArgumentsWithAlias.isAuthorshipAnalyzed());","isFullCredit":false},{"lineNumber":746,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":747,"author":{"gitId":"-"},"content":" Assertions.assertEquals(cliArguments, cliArgumentsWithAlias);","isFullCredit":false},{"lineNumber":748,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":749,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":750,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":751,"author":{"gitId":"-"},"content":" public void parse_withoutAnalyzeAuthorship_success() throws Exception {","isFullCredit":false},{"lineNumber":752,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_BETA).build();","isFullCredit":false},{"lineNumber":753,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":754,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":755,"author":{"gitId":"-"},"content":" Assertions.assertFalse(cliArguments.isAuthorshipAnalyzed());","isFullCredit":false},{"lineNumber":756,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":757,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":758,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":759,"author":{"gitId":"-"},"content":" public void parse_withOriginalityThreshold_success() throws Exception {","isFullCredit":false},{"lineNumber":760,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addOriginalityThreshold(0.1234).build();","isFullCredit":false},{"lineNumber":761,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":762,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":763,"author":{"gitId":"-"},"content":" String inputWithAlias \u003d new InputBuilder().add(\"-ot 0.9876\").build();","isFullCredit":false},{"lineNumber":764,"author":{"gitId":"-"},"content":" CliArguments cliArgumentsWithAlias \u003d ArgsParser.parse(translateCommandline(inputWithAlias));","isFullCredit":false},{"lineNumber":765,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":766,"author":{"gitId":"-"},"content":" Assertions.assertEquals(0.1234, cliArguments.getOriginalityThreshold());","isFullCredit":false},{"lineNumber":767,"author":{"gitId":"-"},"content":" Assertions.assertEquals(0.9876, cliArgumentsWithAlias.getOriginalityThreshold());","isFullCredit":false},{"lineNumber":768,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":769,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":770,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":771,"author":{"gitId":"-"},"content":" public void parse_originalityThresholdWithoutArgument_throwsParseException() {","isFullCredit":false},{"lineNumber":772,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().add(\"-ot\").build();","isFullCredit":false},{"lineNumber":773,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":774,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":775,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":776,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":777,"author":{"gitId":"-"},"content":" public void parse_originalityThresholdOutOfBound_throwsParseException() {","isFullCredit":false},{"lineNumber":778,"author":{"gitId":"-"},"content":" String inputBelowBound \u003d new InputBuilder().addOriginalityThreshold(-0.001).build();","isFullCredit":false},{"lineNumber":779,"author":{"gitId":"-"},"content":" String inputAboveBound \u003d new InputBuilder().addOriginalityThreshold(1.0001).build();","isFullCredit":false},{"lineNumber":780,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":781,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(inputBelowBound)));","isFullCredit":false},{"lineNumber":782,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(inputAboveBound)));","isFullCredit":false},{"lineNumber":783,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":784,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":785,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":786,"author":{"gitId":"-"},"content":" * Ensures that {@code actualSinceDate} is exactly one month before {@code untilDate}.","isFullCredit":false},{"lineNumber":787,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":788,"author":{"gitId":"-"},"content":" * @throws AssertionError if {@code actualSinceDate} is not one month before {@code untilDate}.","isFullCredit":false},{"lineNumber":789,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":790,"author":{"gitId":"-"},"content":" private void assertDateDiffOneMonth(LocalDateTime actualSinceDate, LocalDateTime untilDate) {","isFullCredit":false},{"lineNumber":791,"author":{"gitId":"-"},"content":" LocalDateTime oneMonthBeforeUntilDate \u003d untilDate.withHour(0).withMinute(0).withSecond(0).minusMonths(1);","isFullCredit":false},{"lineNumber":792,"author":{"gitId":"-"},"content":" Assertions.assertTrue(actualSinceDate.equals(oneMonthBeforeUntilDate));","isFullCredit":false},{"lineNumber":793,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":794,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":795,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":796,"author":{"gitId":"-"},"content":" * Ensures that {@code actualUntilDate} falls on the date of report generation with time at 23:59:59.","isFullCredit":false},{"lineNumber":797,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":798,"author":{"gitId":"-"},"content":" * @throws AssertionError if {@code actualUntilDate} does not fall on the date of report generation","isFullCredit":false},{"lineNumber":799,"author":{"gitId":"-"},"content":" * with time at 23:59:59.","isFullCredit":false},{"lineNumber":800,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":801,"author":{"gitId":"-"},"content":" private void assertDateDiffEndOfDay(LocalDateTime actualUntilDate) {","isFullCredit":false},{"lineNumber":802,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":803,"author":{"gitId":"-"},"content":" LocalDateTime currentDate \u003d LocalDateTime.now().withHour(23).withMinute(59).withSecond(59).withNano(0);","isFullCredit":false},{"lineNumber":804,"author":{"gitId":"-"},"content":" Assertions.assertTrue(actualUntilDate.equals(currentDate));","isFullCredit":false},{"lineNumber":805,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":806,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":804}},{"path":"src/test/java/reposense/parser/AuthorConfigParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.AbstractMap.SimpleEntry;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.stream.Stream;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.model.AuthorConfiguration;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidCsvException;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidHeaderException;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"public class AuthorConfigParserTest {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_EMPTY_LOCATION_FILE \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_emptyLocation_test.csv\");","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_EMPTY_CONFIG_FILE \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/require_trailing_whitespaces/authorconfig_emptyConfig_test.csv\");","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_NO_SPECIAL_CHARACTER_FILE \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_noSpecialCharacter_test.csv\");","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_SPECIAL_CHARACTER_FILE \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_specialCharacter_test.csv\");","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_COMMAS_AND_DOUBLEQUOTES_FILE \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_commasAndDoubleQuotes_test.csv\");","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_MULTIPLE_EMAILS_FILE \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_multipleEmails_test.csv\");","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_DIFFERENT_COLUMN_ORDER \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_differentColumnOrder_test.csv\");","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_MISSING_OPTIONAL_HEADER \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_missingOptionalHeader_test.csv\");","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_MISSING_MANDATORY_HEADER \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_missingMandatoryHeader_test.csv\");","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_UNKNOWN_HEADER \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_unknownHeaders_test.csv\");","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_GITHUB_ID_HEADER \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_gitHubIdHeader_test.csv\");","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_GIT_HOST_ID_HEADER \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_gitHostIdHeader_test.csv\");","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_MULTIPLE_REPO_IN_ROW_FILE \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_multipleReposInRow_test.csv\");","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_MULTIPLE_REPO_IN_ROW_SINGLE_BRANCH_PER_REPO_FILE \u003d loadResource(","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_multipleReposInRowSingleBranchPerRepo_test.csv\");","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_MULTIPLE_REPO_IN_ROW_MULTIPLE_BRANCH_PER_REPO_FILE \u003d loadResource(","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_multipleReposInRowMultipleBranchPerRepo_test.csv\");","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_BETA_LOCATION \u003d \"https://github.com/reposense/testrepo-Beta.git\";","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_BETA_MASTER_BRANCH \u003d \"master\";","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" private static final Author FIRST_AUTHOR \u003d new Author(\"nbriannl\");","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" private static final Author SECOND_AUTHOR \u003d new Author(\"zacharytang\");","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" private static final List\u003cAuthor\u003e AUTHOR_CONFIG_NO_SPECIAL_CHARACTER_AUTHORS \u003d","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" Arrays.asList(FIRST_AUTHOR, SECOND_AUTHOR);","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" private static final Author FIRST_SPECIAL_CHARACTER_AUTHOR \u003d new Author(\"‘Processed�‘Cooked�\");","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" private static final Author SECOND_SPECIAL_CHARACTER_AUTHOR \u003d new Author(\"(codeeong)\");","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" private static final Author THIRD_SPECIAL_CHARACTER_AUTHOR \u003d new Author(\"^:jordancjq;$\");","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" private static final List\u003cAuthor\u003e AUTHOR_CONFIG_SPECIAL_CHARACTER_AUTHORS \u003d Arrays.asList(","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" FIRST_SPECIAL_CHARACTER_AUTHOR, SECOND_SPECIAL_CHARACTER_AUTHOR, THIRD_SPECIAL_CHARACTER_AUTHOR);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" private static final Author FIRST_COMMAS_AND_DOUBLEQUOTES_AUTHOR \u003d new Author(\"ProcessedCooked\");","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" private static final Author SECOND_COMMAS_AND_DOUBLEQUOTES_AUTHOR \u003d new Author(\"codeeong\");","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" private static final Author THIRD_COMMAS_AND_DOUBLEQUOTES_AUTHOR \u003d new Author(\"jordancjq\");","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" private static final String FIRST_COMMAS_AND_DOUBLEQUOTES_DISPLAY_NAME \u003d \"Tay Fan Gao, Douya\";","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" private static final String SECOND_COMMAS_AND_DOUBLEQUOTES_DISPLAY_NAME \u003d \"\\\"\\\"Tora, S/O,\\\" Doyua, T.\\\"\";","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" private static final String THIRD_COMMAS_AND_DOUBLEQUOTES_DISPLAY_NAME \u003d \"jordancjq\";","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e FIRST_COMMAS_AND_DOUBLEQUOTES_ALIAS \u003d","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" Collections.singletonList(\"Tay Fan Gao, Douya \\\"SOC, Y2S1\\\"\");","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e SECOND_COMMAS_AND_DOUBLEQUOTES_ALIAS \u003d Collections.emptyList();","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e THIRD_COMMAS_AND_DOUBLEQUOTES_ALIAS \u003d","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" Arrays.asList(\"Borex T\\\"ony Tong\");","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" private static final Map\u003cAuthor, List\u003cString\u003e\u003e AUTHOR_ALIAS_COMMAS_AND_DOUBLE_QUOTES_MAP \u003d","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" Stream.of(new SimpleEntry\u003c\u003e(FIRST_COMMAS_AND_DOUBLEQUOTES_AUTHOR, FIRST_COMMAS_AND_DOUBLEQUOTES_ALIAS),","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" new SimpleEntry\u003c\u003e(SECOND_COMMAS_AND_DOUBLEQUOTES_AUTHOR, SECOND_COMMAS_AND_DOUBLEQUOTES_ALIAS),","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" new SimpleEntry\u003c\u003e(THIRD_COMMAS_AND_DOUBLEQUOTES_AUTHOR, THIRD_COMMAS_AND_DOUBLEQUOTES_ALIAS))","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" .collect(Collectors.toMap(entry -\u003e entry.getKey(), entry -\u003e entry.getValue()));","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" private static final Map\u003cAuthor, String\u003e AUTHOR_DISPLAY_NAME_COMMAS_AND_DOUBLE_QUOTES_MAP \u003d","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" Stream.of(new SimpleEntry\u003c\u003e(FIRST_COMMAS_AND_DOUBLEQUOTES_AUTHOR,","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" FIRST_COMMAS_AND_DOUBLEQUOTES_DISPLAY_NAME),","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" new SimpleEntry\u003c\u003e(SECOND_COMMAS_AND_DOUBLEQUOTES_AUTHOR,","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" SECOND_COMMAS_AND_DOUBLEQUOTES_DISPLAY_NAME),","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" new SimpleEntry\u003c\u003e(THIRD_COMMAS_AND_DOUBLEQUOTES_AUTHOR, THIRD_COMMAS_AND_DOUBLEQUOTES_DISPLAY_NAME))","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" .collect(Collectors.toMap(entry -\u003e entry.getKey(), entry -\u003e entry.getValue()));","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e FIRST_AUTHOR_EMAIL_LIST \u003d","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" Arrays.asList(\"nbr@example.com\", \"nbriannl@test.net\", \"nbriannl@users.noreply.github.com\",","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" \"nbriannl@users.noreply.gitlab.com\");","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" public void authorConfig_noSpecialCharacter_success() throws Exception {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" new AuthorConfigCsvParser(AUTHOR_CONFIG_NO_SPECIAL_CHARACTER_FILE);","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" Assertions.assertEquals(AUTHOR_CONFIG_NO_SPECIAL_CHARACTER_AUTHORS, config.getAuthorList());","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" public void authorConfig_emptyLocation_success() throws Exception {","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" AuthorConfiguration expectedConfig \u003d new AuthorConfiguration(new RepoLocation(\"\"));","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_EMPTY_LOCATION_FILE);","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e authorConfigs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" AuthorConfiguration authorConfig \u003d authorConfigs.get(0);","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, authorConfigs.size());","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedConfig.getLocation(), authorConfig.getLocation());","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedConfig.getBranch(), authorConfig.getBranch());","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" Assertions.assertEquals(AUTHOR_CONFIG_NO_SPECIAL_CHARACTER_AUTHORS, authorConfig.getAuthorList());","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" public void authorConfig_emptyConfig_throwsInvalidCsvException() throws Exception {","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_EMPTY_CONFIG_FILE);","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidCsvException.class, () -\u003e authorConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" public void authorConfig_specialCharacter_success() throws Exception {","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_SPECIAL_CHARACTER_FILE);","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" Assertions.assertEquals(AUTHOR_CONFIG_SPECIAL_CHARACTER_AUTHORS, config.getAuthorList());","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" public void authorConfig_multipleEmails_success() throws Exception {","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_MULTIPLE_EMAILS_FILE);","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" Author actualAuthor \u003d config.getAuthorList().get(0);","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" Assertions.assertEquals(FIRST_AUTHOR_EMAIL_LIST.size(), actualAuthor.getEmails().size());","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" Assertions.assertTrue(actualAuthor.getEmails().containsAll(FIRST_AUTHOR_EMAIL_LIST));","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" public void authorConfig_differentColumnOrder_success() throws Exception {","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" new AuthorConfigCsvParser(AUTHOR_CONFIG_DIFFERENT_COLUMN_ORDER);","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" Assertions.assertEquals(AUTHOR_CONFIG_NO_SPECIAL_CHARACTER_AUTHORS, config.getAuthorList());","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" public void authorConfig_missingOptionalHeader_success() throws Exception {","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_MISSING_OPTIONAL_HEADER);","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" Assertions.assertEquals(4, config.getAuthorList().size());","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" public void authorConfig_newGitHostIdHeader_success() throws Exception {","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser;","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_GIT_HOST_ID_HEADER);","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configsWithGitHostIdHeader \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_GITHUB_ID_HEADER);","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configsWithGitHubIdHeader \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" Assertions.assertEquals(configsWithGitHubIdHeader, configsWithGitHostIdHeader);","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" public void authorConfig_missingMandatoryHeader_throwsInvalidCsvException() throws Exception {","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_MISSING_MANDATORY_HEADER);","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidCsvException.class, () -\u003e authorConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" public void authorConfig_unknownHeaders_throwsInvalidHeaderException() throws Exception {","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_UNKNOWN_HEADER);","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidHeaderException.class, () -\u003e authorConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" public void parse_multipleColumnsWithCommasAndDoubleQuotes_success() throws Exception {","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" new AuthorConfigCsvParser(AUTHOR_CONFIG_COMMAS_AND_DOUBLEQUOTES_FILE);","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" Assertions.assertEquals(AUTHOR_DISPLAY_NAME_COMMAS_AND_DOUBLE_QUOTES_MAP, config.getAuthorDisplayNameMap());","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" Assertions.assertEquals(AUTHOR_ALIAS_COMMAS_AND_DOUBLE_QUOTES_MAP.size(), config.getAuthorList().size());","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" config.getAuthorList().forEach(author -\u003e {","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" Assertions.assertEquals(AUTHOR_ALIAS_COMMAS_AND_DOUBLE_QUOTES_MAP.get(author), author.getAuthorAliases());","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" public void authorConfig_multipleReposInRow_success() throws Exception {","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_MULTIPLE_REPO_IN_ROW_FILE);","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" String defaultSpecifiedBranch \u003d \"master\";","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" Assertions.assertEquals(4, configs.size());","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"https://github.com/reposense/reposense.git\"), config.getLocation());","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" Assertions.assertEquals(defaultSpecifiedBranch, config.getBranch());","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" config \u003d configs.get(1);","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"https://github.com/markbind/markbind.git\"), config.getLocation());","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" Assertions.assertEquals(defaultSpecifiedBranch, config.getBranch());","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" config \u003d configs.get(2);","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"https://github.com/TEAMMATES/teammates.git\"), config.getLocation());","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" Assertions.assertEquals(defaultSpecifiedBranch, config.getBranch());","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" config \u003d configs.get(3);","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"https://github.com/CATcher-org/CATcher.git\"), config.getLocation());","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" Assertions.assertEquals(defaultSpecifiedBranch, config.getBranch());","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" public void authorConfig_multipleReposInRowSingleBranchPerRepo_success() throws Exception {","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_MULTIPLE_REPO_IN_ROW_SINGLE_BRANCH_PER_REPO_FILE);","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" Assertions.assertEquals(4, configs.size());","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" config \u003d configs.get(1);","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"add-config-json\", config.getBranch());","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" config \u003d configs.get(2);","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"https://github.com/reposense/RepoSense.git\"), config.getLocation());","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"release\", config.getBranch());","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" config \u003d configs.get(3);","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"/Users/sikai/RepoSense\"), config.getLocation());","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"master\", config.getBranch());","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":" public void authorConfig_multipleReposInRowMultipleBranchPerRepo_success() throws Exception {","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_MULTIPLE_REPO_IN_ROW_MULTIPLE_BRANCH_PER_REPO_FILE);","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" Assertions.assertEquals(5, configs.size());","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"add-config-json\", config.getBranch());","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" config \u003d configs.get(1);","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" config \u003d configs.get(2);","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"/Users/sikai/RepoSense\"), config.getLocation());","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"master\", config.getBranch());","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":" config \u003d configs.get(3);","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"/Users/sikai/RepoSense\"), config.getLocation());","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"release\", config.getBranch());","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":" config \u003d configs.get(4);","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"/Users/sikai/RepoSense\"), config.getLocation());","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"gh-pages\", config.getBranch());","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":315}},{"path":"src/test/java/reposense/parser/BlurbMarkdownParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidMarkdownException;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":"public class BlurbMarkdownParserTest {","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":" private static final Path EMPTY_BLURB_TESTER \u003d loadResource(BlurbMarkdownParserTest.class,","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":" \"BlurbMarkdownParserTest/empty_blurbs.md\");","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"asdfghjkxd"},"content":" private static final Path MALFORMED_URL_TESTER \u003d loadResource(BlurbMarkdownParserTest.class,","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"asdfghjkxd"},"content":" \"BlurbMarkdownParserTest/malformed_url_blurb.md\");","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"asdfghjkxd"},"content":" private static final Path MALFORMED_DELIMITER_TESTER \u003d loadResource(BlurbMarkdownParserTest.class,","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":" \"BlurbMarkdownParserTest/malformed_delimiter_blurb.md\");","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":" private static final Path MULTILINE_BLURB_TESTER \u003d loadResource(BlurbMarkdownParserTest.class,","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":" \"BlurbMarkdownParserTest/multiline_blurb.md\");","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":" private static final Path MULTIPLE_BLURB_TESTER \u003d loadResource(BlurbMarkdownParser.class,","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":" \"BlurbMarkdownParserTest/multiple_blurbs.md\");","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":" public void parse_emptyBlurbTest_throwsException() {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertThrows(","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":" InvalidMarkdownException.class, () -\u003e new BlurbMarkdownParser(EMPTY_BLURB_TESTER).parse()","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":" public void parse_malformedUrlBlurbTest_throwsException() {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertThrows(","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":" InvalidMarkdownException.class, () -\u003e new BlurbMarkdownParser(MALFORMED_URL_TESTER).parse()","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"asdfghjkxd"},"content":" public void parse_malformedDelimiterBlurbTest_success() throws Exception {","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMarkdownParser bmp \u003d new BlurbMarkdownParser(MALFORMED_DELIMITER_TESTER);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":" Map\u003cString, String\u003e bm \u003d bmp.parse().getAllMappings();","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertTrue(bm.containsKey(\"https://github.com/reposense/testrepo-Alpha/tree/master\"));","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"asdfghjkxd"},"content":" bm.get(\"https://github.com/reposense/testrepo-Alpha/tree/master\"),","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"asdfghjkxd"},"content":" \"Master branch of testrepo-Alpha\\n\"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"asdfghjkxd"},"content":" + \"\u003c!--repo--bunchofcharacters that don\u0027t count\u003e\\n\"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"asdfghjkxd"},"content":" + \"https://github.com/reposense/testrepo-Alpha/tree/master\\n\"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"asdfghjkxd"},"content":" + \"Master branch of testrepo-Alpha\\n\"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"asdfghjkxd"},"content":" + \"\u003c!--repo - this is not legal and will be captured as part of the text --\u003e\"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"asdfghjkxd"},"content":" public void parse_multilineBlurbTest_success() throws Exception {","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMarkdownParser bmp \u003d new BlurbMarkdownParser(MULTILINE_BLURB_TESTER);","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"asdfghjkxd"},"content":" Map\u003cString, String\u003e bm \u003d bmp.parse().getAllMappings();","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertTrue(bm.containsKey(\"https://github.com/reposense/testrepo-Alpha/tree/master\"));","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"asdfghjkxd"},"content":" bm.get(\"https://github.com/reposense/testrepo-Alpha/tree/master\"),","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"asdfghjkxd"},"content":" \"Master branch of testrepo-Alpha\\n\"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"asdfghjkxd"},"content":" + \"A\\n\"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"asdfghjkxd"},"content":" + \"long\\n\"","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"asdfghjkxd"},"content":" + \"line\\n\"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"asdfghjkxd"},"content":" + \"of\\n\"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"asdfghjkxd"},"content":" + \"description\\n\"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"asdfghjkxd"},"content":" + \"of\\n\"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"asdfghjkxd"},"content":" + \"testrepo\\n\"","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"asdfghjkxd"},"content":" + \"Alpha\"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"asdfghjkxd"},"content":" public void parse_multipleBlurbTest_success() throws Exception {","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMarkdownParser bmp \u003d new BlurbMarkdownParser(MULTIPLE_BLURB_TESTER);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"asdfghjkxd"},"content":" Map\u003cString, String\u003e bm \u003d bmp.parse().getAllMappings();","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertTrue(bm.keySet().containsAll(","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"asdfghjkxd"},"content":" List.of(\"https://github.com/reposense/testrepo-Alpha/tree/master\",","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"asdfghjkxd"},"content":" \"https://github.com/reposense/testrepo-Beta/tree/master\",","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"asdfghjkxd"},"content":" \"https://github.com/reposense/testrepo-Gamma/tree/master\",","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"asdfghjkxd"},"content":" \"https://github.com/reposense/testrepo-Sigma/tree/master\")","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"asdfghjkxd"},"content":" ));","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"asdfghjkxd"},"content":" bm.get(\"https://github.com/reposense/testrepo-Alpha/tree/master\"),","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"asdfghjkxd"},"content":" \"Master branch of testrepo-Alpha\"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"asdfghjkxd"},"content":" bm.get(\"https://github.com/reposense/testrepo-Beta/tree/master\"),","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"asdfghjkxd"},"content":" \"Master branch of testrepo-Beta\"","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"asdfghjkxd"},"content":" bm.get(\"https://github.com/reposense/testrepo-Gamma/tree/master\"),","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"asdfghjkxd"},"content":" \"Master branch of testrepo-Gamma\"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"asdfghjkxd"},"content":" bm.get(\"https://github.com/reposense/testrepo-Sigma/tree/master\"),","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"asdfghjkxd"},"content":" \"Master branch of testrepo-Sigma\"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"asdfghjkxd"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":101}},{"path":"src/test/java/reposense/parser/GroupConfigParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import reposense.model.FileType;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.model.GroupConfiguration;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidCsvException;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidHeaderException;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"public class GroupConfigParserTest {","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" private static final Path GROUP_CONFIG_MULTI_LOCATION_FILE \u003d loadResource(GroupConfigParserTest.class,","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" \"GroupConfigParserTest/groupconfig_multipleLocation_test.csv\");","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" private static final Path GROUP_CONFIG_EMPTY_LOCATION_FILE \u003d loadResource(GroupConfigParserTest.class,","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" \"GroupConfigParserTest/groupconfig_emptyLocation_test.csv\");","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private static final Path GROUP_CONFIG_DIFFERENT_COLUMN_ORDER_FILE \u003d loadResource(GroupConfigParserTest.class,","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" \"GroupConfigParserTest/groupconfig_differentColumnOrder_test.csv\");","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private static final Path GROUP_CONFIG_MISSING_OPTIONAL_HEADER_FILE \u003d loadResource(GroupConfigParserTest.class,","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" \"GroupConfigParserTest/groupconfig_missingOptionalHeader_test.csv\");","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final Path GROUP_CONFIG_MISSING_MANDATORY_HEADER_FILE \u003d loadResource(GroupConfigParserTest.class,","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" \"GroupConfigParserTest/groupconfig_missingMandatoryHeader_test.csv\");","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private static final Path GROUP_CONFIG_UNKNOWN_HEADER_FILE \u003d loadResource(GroupConfigParserTest.class,","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" \"GroupConfigParserTest/groupconfig_unknownHeader_test.csv\");","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_BETA_LOCATION \u003d \"https://github.com/reposense/testrepo-Beta.git\";","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" private static final List\u003cFileType\u003e TEST_REPO_BETA_GROUPS \u003d Arrays.asList(","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" new FileType(\"Code\", Arrays.asList(\"**/*.java\", \"**/*.py\")),","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" new FileType(\"Docs\", Collections.singletonList(\"docs/**\")));","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_DELTA_LOCATION \u003d \"https://github.com/reposense/testrepo-Delta.git\";","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private static final List\u003cFileType\u003e TEST_REPO_DELTA_GROUPS \u003d Arrays.asList(","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" new FileType(\"Main\", Collections.singletonList(\"src/main/**\")),","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" new FileType(\"Test\", Arrays.asList(\"src/test/**\", \"src/systest/**\")));","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" public void groupConfig_emptyLocation_success() throws Exception {","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" GroupConfigCsvParser groupConfigCsvParser \u003d new GroupConfigCsvParser(GROUP_CONFIG_EMPTY_LOCATION_FILE);","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" List\u003cGroupConfiguration\u003e groupConfigs \u003d groupConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, groupConfigs.size());","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" GroupConfiguration actualReposenseConfig \u003d groupConfigs.get(0);","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, actualReposenseConfig.getGroupsList().size());","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" GroupConfiguration actualEmptyLocationConfig \u003d groupConfigs.get(1);","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, actualEmptyLocationConfig.getGroupsList().size());","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" public void groupConfig_multipleLocations_success() throws Exception {","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" GroupConfigCsvParser groupConfigCsvParser \u003d new GroupConfigCsvParser(GROUP_CONFIG_MULTI_LOCATION_FILE);","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" List\u003cGroupConfiguration\u003e groupConfigs \u003d groupConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, groupConfigs.size());","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" GroupConfiguration actualBetaConfig \u003d groupConfigs.get(0);","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_LOCATION, actualBetaConfig.getLocation().toString());","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_GROUPS, actualBetaConfig.getGroupsList());","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" GroupConfiguration actualDeltaConfig \u003d groupConfigs.get(1);","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_DELTA_LOCATION, actualDeltaConfig.getLocation().toString());","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_DELTA_GROUPS, actualDeltaConfig.getGroupsList());","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" public void groupConfig_differentColumnOrder_success() throws Exception {","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" GroupConfigCsvParser groupConfigCsvParser \u003d new GroupConfigCsvParser(GROUP_CONFIG_DIFFERENT_COLUMN_ORDER_FILE);","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" List\u003cGroupConfiguration\u003e groupConfigs \u003d groupConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, groupConfigs.size());","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" GroupConfiguration actualBetaConfig \u003d groupConfigs.get(0);","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_LOCATION, actualBetaConfig.getLocation().toString());","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_GROUPS, actualBetaConfig.getGroupsList());","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" GroupConfiguration actualDeltaConfig \u003d groupConfigs.get(1);","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_DELTA_LOCATION, actualDeltaConfig.getLocation().toString());","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_DELTA_GROUPS, actualDeltaConfig.getGroupsList());","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" public void groupConfig_missingOptionalHeader_success() throws Exception {","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" GroupConfigCsvParser groupConfigCsvParser \u003d new GroupConfigCsvParser(GROUP_CONFIG_MISSING_OPTIONAL_HEADER_FILE);","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" List\u003cGroupConfiguration\u003e groupConfigs \u003d groupConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, groupConfigs.size());","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" Assertions.assertEquals(3, groupConfigs.get(0).getGroupsList().size());","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" public void groupConfig_missingMandatoryHeader_throwsInvalidCsvException() throws Exception {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" GroupConfigCsvParser groupConfigCsvParser \u003d new GroupConfigCsvParser(","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" GROUP_CONFIG_MISSING_MANDATORY_HEADER_FILE);","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidCsvException.class, () -\u003e groupConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" public void groupConfig_unknownHeader_throwsInvalidHeaderException() throws Exception {","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" GroupConfigCsvParser groupConfigCsvParser \u003d new GroupConfigCsvParser(","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" GROUP_CONFIG_UNKNOWN_HEADER_FILE);","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidHeaderException.class, () -\u003e groupConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":109}},{"path":"src/test/java/reposense/parser/RepoConfigParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.apache.tools.ant.types.Commandline.translateCommandline;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import static reposense.model.RepoConfiguration.DEFAULT_FILE_SIZE_LIMIT;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import reposense.model.AuthorConfiguration;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.model.CliArguments;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.model.CommitHash;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.model.FileType;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidCsvException;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidHeaderException;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import reposense.util.InputBuilder;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import reposense.util.TestUtil;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"public class RepoConfigParserTest {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" private static final Path TEST_CONFIG_FOLDER \u003d loadResource(RepoConfigParserTest.class, \"repoconfig_merge_test\");","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private static final Path TEST_EMPTY_BRANCH_CONFIG_FOLDER \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" \"repoconfig_empty_branch_test\");","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_NO_SPECIAL_CHARACTER_FILE \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_noSpecialCharacter_test.csv\");","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_OVERRIDE_KEYWORD_FILE \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_overrideKeyword_test.csv\");","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_REDUNDANT_LINES_FILE \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/require_trailing_whitespaces/repoconfig_redundantLines_test.csv\");","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_UNRECOGNIZED_VALUES_FOR_YES_KEYWORD_HEADERS_FILE \u003d","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_unrecognizedValuesForYesKeywordHeaders_test.csv\");","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_DUPLICATE_HEADERS_CASE_SENSITIVE_FILE \u003d","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_duplicateHeadersCaseSensitive_test.csv\");","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_DUPLICATE_HEADERS_CASE_INSENSITIVE_FILE \u003d","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_duplicateHeadersCaseInsensitive_test.csv\");","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_DIFFERENT_COLUMN_ORDER_FILE \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_differentColumnOrder_test.csv\");","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_OPTIONAL_HEADER_MISSING_FILE \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_missingOptionalHeader_test.csv\");","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_MANDATORY_HEADER_MISSING_FILE \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_missingMandatoryHeader_test.csv\");","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" private static final Path MERGE_EMPTY_LOCATION_FOLDER \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_merge_empty_location_test\");","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_UNKNOWN_HEADER_FILE \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_unknownHeaders_test.csv\");","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_INVALID_FILE_SIZE_LIMIT \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_invalidFileSizeLimit_test.csv\");","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_IGNORE_FILE_SIZE_LIMIT \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_ignoreFileSizeLimit_test.csv\");","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_ZERO_VALID_RECORDS \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" \"CsvParserTest/repoconfig_zeroValidRecords_test.csv\");","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_BETA_LOCATION \u003d \"https://github.com/reposense/testrepo-Beta.git\";","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_BETA_MASTER_BRANCH \u003d \"master\";","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_BETA_ADD_CONFIG_JSON_BRANCH \u003d \"add-config-json\";","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_DELTA_LOCATION \u003d \"https://github.com/reposense/testrepo-Delta.git\";","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_DELTA_BRANCH \u003d \"HEAD\";","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" private static final List\u003cFileType\u003e TEST_REPO_DELTA_FORMATS \u003d","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" FileType.convertFormatStringsToFileTypes(Arrays.asList(\"java\", \"fxml\"));","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" private static final List\u003cFileType\u003e TEST_REPO_BETA_CONFIG_FORMATS \u003d","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" FileType.convertFormatStringsToFileTypes(Arrays.asList(\"java\", \"adoc\", \"md\"));","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e TEST_REPO_BETA_CONFIG_IGNORED_COMMITS \u003d","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" Arrays.asList(\"abcde12345\", \"67890fdecba\");","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" private static final int FILE_SIZE_LIMIT_VALUE \u003d 100000;","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_CHARLIE_LOCATION \u003d \"https://github.com/reposense/testrepo-Charlie.git\";","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_CHARLIE_BRANCH \u003d \"HEAD\";","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" private static final Author FIRST_AUTHOR \u003d new Author(\"nbriannl\");","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" private static final Author SECOND_AUTHOR \u003d new Author(\"zacharytang\");","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e SECOND_AUTHOR_ALIASES \u003d Arrays.asList(\"Zachary Tang\");","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e REPO_LEVEL_GLOB_LIST \u003d Arrays.asList(\"collated**\");","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e FIRST_AUTHOR_GLOB_LIST \u003d Arrays.asList(\"**.java\", \"collated**\");","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e SECOND_AUTHOR_GLOB_LIST \u003d Arrays.asList(\"**.doc\", \"collated**\");","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" public void repoConfig_noSpecialCharacter_success() throws Exception {","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d new RepoConfigCsvParser(REPO_CONFIG_NO_SPECIAL_CHARACTER_FILE);","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d repoConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" RepoConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_CONFIG_FORMATS, config.getFileTypeManager().getFormats());","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" Assertions.assertEquals(config.getIgnoreCommitList(),","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" CommitHash.convertStringsToCommits(TEST_REPO_BETA_CONFIG_IGNORED_COMMITS));","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" Assertions.assertEquals(config.getFileSizeLimit(), FILE_SIZE_LIMIT_VALUE);","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isShallowCloningPerformed());","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isFormatsOverriding());","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isIgnoreGlobListOverriding());","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isIgnoreCommitListOverriding());","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isFileSizeLimitOverriding());","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isFileSizeLimitIgnored());","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isIgnoredFileAnalysisSkipped());","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" public void merge_twoRepoConfigs_success() throws Exception {","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" FIRST_AUTHOR.setIgnoreGlobList(FIRST_AUTHOR_GLOB_LIST);","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" SECOND_AUTHOR.setIgnoreGlobList(SECOND_AUTHOR_GLOB_LIST);","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" SECOND_AUTHOR.setAuthorAliases(SECOND_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e expectedAuthors \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" expectedAuthors.add(FIRST_AUTHOR);","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" expectedAuthors.add(SECOND_AUTHOR);","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration firstRepo \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA_LOCATION))","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"asdfghjkxd"},"content":" .branch(TEST_REPO_BETA_MASTER_BRANCH)","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" firstRepo.setAuthorList(expectedAuthors);","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" firstRepo.setAuthorDisplayName(FIRST_AUTHOR, \"Nbr\");","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" firstRepo.setAuthorDisplayName(SECOND_AUTHOR, \"Zac\");","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" firstRepo.addAuthorNamesToAuthorMapEntry(SECOND_AUTHOR, Arrays.asList(\"Zachary Tang\"));","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" firstRepo.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration secondRepo \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA_LOCATION))","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"asdfghjkxd"},"content":" .branch(TEST_REPO_BETA_ADD_CONFIG_JSON_BRANCH)","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" secondRepo.setAuthorList(Arrays.asList(SECOND_AUTHOR));","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" secondRepo.setAuthorDisplayName(SECOND_AUTHOR, \"Zac\");","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" secondRepo.addAuthorNamesToAuthorMapEntry(SECOND_AUTHOR, Arrays.asList(\"Zachary Tang\"));","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" secondRepo.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(TEST_CONFIG_FOLDER).build();","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e authorConfigs \u003d","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" new AuthorConfigCsvParser(cliArguments.getAuthorConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" RepoConfiguration.merge(actualConfigs, authorConfigs);","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, actualConfigs.size());","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(firstRepo, actualConfigs.get(0));","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(secondRepo, actualConfigs.get(1));","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" public void merge_emptyLocation_success() throws Exception {","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" FIRST_AUTHOR.setIgnoreGlobList(FIRST_AUTHOR_GLOB_LIST);","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" SECOND_AUTHOR.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" SECOND_AUTHOR.setAuthorAliases(SECOND_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e expectedBetaAuthors \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" expectedBetaAuthors.add(FIRST_AUTHOR);","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" expectedBetaAuthors.add(SECOND_AUTHOR);","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e expectedDeltaAuthors \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" expectedDeltaAuthors.add(FIRST_AUTHOR);","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" RepoConfiguration expectedBetaConfig \u003d","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA_LOCATION))","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"asdfghjkxd"},"content":" .branch(TEST_REPO_BETA_MASTER_BRANCH)","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" expectedBetaConfig.setAuthorList(expectedBetaAuthors);","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" expectedBetaConfig.setAuthorDisplayName(FIRST_AUTHOR, \"Nbr\");","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" expectedBetaConfig.setAuthorDisplayName(SECOND_AUTHOR, \"Zac\");","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" expectedBetaConfig.addAuthorNamesToAuthorMapEntry(SECOND_AUTHOR, Arrays.asList(\"Zachary Tang\"));","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" expectedBetaConfig.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" expectedBetaConfig.setIsShallowCloningPerformed(true);","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" RepoConfiguration expectedDeltaConfig \u003d","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA_LOCATION))","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"asdfghjkxd"},"content":" .branch(TEST_REPO_DELTA_BRANCH)","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" expectedDeltaConfig.setAuthorList(expectedDeltaAuthors);","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" expectedDeltaConfig.setAuthorDisplayName(FIRST_AUTHOR, \"Nbr\");","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" expectedDeltaConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" expectedDeltaConfig.setFormats(TEST_REPO_DELTA_FORMATS);","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e expectedConfigs \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" expectedConfigs.add(expectedBetaConfig);","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" expectedConfigs.add(expectedDeltaConfig);","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(MERGE_EMPTY_LOCATION_FOLDER).build();","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e authorConfigs \u003d","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" new AuthorConfigCsvParser(cliArguments.getAuthorConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" RepoConfiguration.merge(actualConfigs, authorConfigs);","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, actualConfigs.size());","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedConfigs, actualConfigs);","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfigs.get(0), actualConfigs.get(0));","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfigs.get(1), actualConfigs.get(1));","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" public void repoConfig_defaultBranch_success() throws Exception {","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA_LOCATION))","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"asdfghjkxd"},"content":" .branch(RepoConfiguration.DEFAULT_BRANCH)","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(TEST_EMPTY_BRANCH_CONFIG_FOLDER).build();","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e authorConfigs \u003d","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" new AuthorConfigCsvParser(cliArguments.getAuthorConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" RepoConfiguration.merge(actualConfigs, authorConfigs);","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, actualConfigs.size());","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedConfig.getBranch(), actualConfigs.get(0).getBranch());","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedConfig.getBranch(), authorConfigs.get(0).getBranch());","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" public void repoConfig_overrideKeyword_success() throws Exception {","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d new RepoConfigCsvParser(REPO_CONFIG_OVERRIDE_KEYWORD_FILE);","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d repoConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" RepoConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_CONFIG_FORMATS, config.getFileTypeManager().getFormats());","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" Assertions.assertEquals(CommitHash.convertStringsToCommits(TEST_REPO_BETA_CONFIG_IGNORED_COMMITS),","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" config.getIgnoreCommitList());","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" Assertions.assertEquals(FILE_SIZE_LIMIT_VALUE, config.getFileSizeLimit());","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isFormatsOverriding());","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isIgnoreGlobListOverriding());","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isIgnoreCommitListOverriding());","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isFileSizeLimitOverriding());","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" public void repoConfig_redundantLines_success() throws Exception {","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d new RepoConfigCsvParser(REPO_CONFIG_REDUNDANT_LINES_FILE);","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d repoConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" Assertions.assertEquals(3, configs.size());","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" RepoConfiguration betaConfig \u003d configs.get(0);","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" RepoConfiguration charlieConfig \u003d configs.get(1);","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" RepoConfiguration deltaConfig \u003d configs.get(2);","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), betaConfig.getLocation());","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, betaConfig.getBranch());","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_CHARLIE_LOCATION), charlieConfig.getLocation());","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_CHARLIE_BRANCH, charlieConfig.getBranch());","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_DELTA_LOCATION), deltaConfig.getLocation());","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_DELTA_BRANCH, deltaConfig.getBranch());","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" Assertions.assertTrue(deltaConfig.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" public void repoConfig_differentColumnOrder_success() throws Exception {","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d new RepoConfigCsvParser(REPO_CONFIG_DIFFERENT_COLUMN_ORDER_FILE);","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d repoConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" RepoConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_CONFIG_FORMATS, config.getFileTypeManager().getFormats());","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" Assertions.assertEquals(config.getIgnoreCommitList(),","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" CommitHash.convertStringsToCommits(TEST_REPO_BETA_CONFIG_IGNORED_COMMITS));","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isFormatsOverriding());","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isIgnoreGlobListOverriding());","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isIgnoreCommitListOverriding());","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":" public void repoConfig_missingOptionalHeader_success() throws Exception {","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d new RepoConfigCsvParser(REPO_CONFIG_OPTIONAL_HEADER_MISSING_FILE);","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d repoConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":" RepoConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_CONFIG_FORMATS, config.getFileTypeManager().getFormats());","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" Assertions.assertEquals(DEFAULT_FILE_SIZE_LIMIT, config.getFileSizeLimit());","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isFormatsOverriding());","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isIgnoreGlobListOverriding());","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isIgnoreCommitListOverriding());","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isFileSizeLimitOverriding());","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" public void repoConfig_withUnrecognizedValuesForYesKeywordHeaders_valuesIgnored() throws Exception {","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(REPO_CONFIG_UNRECOGNIZED_VALUES_FOR_YES_KEYWORD_HEADERS_FILE);","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d repoConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":" Assertions.assertFalse(configs.get(0).isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" Assertions.assertFalse(configs.get(0).isShallowCloningPerformed());","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" Assertions.assertFalse(configs.get(0).isFindingPreviousAuthorsPerformed());","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" Assertions.assertFalse(configs.get(0).isFileSizeLimitIgnored());","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":" Assertions.assertFalse(configs.get(0).isIgnoredFileAnalysisSkipped());","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" public void repoConfig_invalidFileSizeLimit_valueIgnored() throws Exception {","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(REPO_CONFIG_INVALID_FILE_SIZE_LIMIT);","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d repoConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" Assertions.assertEquals(configs.get(0).getFileSizeLimit(), DEFAULT_FILE_SIZE_LIMIT);","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":" Assertions.assertFalse(configs.get(0).isFileSizeLimitOverriding());","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":" public void repoConfig_ignoreFileSizeLimit_ignoreFileSizeColumns() throws Exception {","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(REPO_CONFIG_IGNORE_FILE_SIZE_LIMIT);","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d repoConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" Assertions.assertTrue(configs.get(0).isFileSizeLimitIgnored());","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":" Assertions.assertFalse(configs.get(0).isFileSizeLimitOverriding());","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":" Assertions.assertFalse(configs.get(0).isIgnoredFileAnalysisSkipped());","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"-"},"content":" public void repoConfig_mandatoryHeaderMissing_throwsInvalidCsvException() throws Exception {","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d new RepoConfigCsvParser(REPO_CONFIG_MANDATORY_HEADER_MISSING_FILE);","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidCsvException.class, () -\u003e repoConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"-"},"content":" public void repoConfig_zeroValidRecords_throwsInvalidCsvException() throws Exception {","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d new RepoConfigCsvParser(REPO_CONFIG_ZERO_VALID_RECORDS);","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidCsvException.class, () -\u003e repoConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"-"},"content":" public void repoConfig_duplicateHeadersCaseSensitive_throwsInvalidCsvException() throws Exception {","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(REPO_CONFIG_DUPLICATE_HEADERS_CASE_SENSITIVE_FILE);","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidCsvException.class, () -\u003e repoConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"-"},"content":" public void repoConfig_duplicateHeadersCaseInsensitive_throwsInvalidCsvException() throws Exception {","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(REPO_CONFIG_DUPLICATE_HEADERS_CASE_INSENSITIVE_FILE);","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidCsvException.class, () -\u003e repoConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"-"},"content":" public void repoConfig_unknownHeaders_throwsInvalidHeaderException() throws Exception {","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(REPO_CONFIG_UNKNOWN_HEADER_FILE);","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidHeaderException.class, () -\u003e repoConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":22,"-":370}},{"path":"src/test/java/reposense/parser/StandaloneConfigJsonParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeAll;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import com.google.gson.JsonSyntaxException;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.model.CommitHash;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import reposense.model.FileType;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.model.FileTypeTest;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import reposense.model.StandaloneConfig;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import reposense.util.TestUtil;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"public class StandaloneConfigJsonParserTest {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private static final Path STANDALONE_MALFORMED_CONFIG \u003d loadResource(","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" StandaloneConfigJsonParserTest.class, \"StandaloneConfigJsonParserTest/standaloneConfig_malformedJson.json\");","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" private static final Path STANDALONE_UNKNOWN_PROPERTY_CONFIG \u003d loadResource(","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" StandaloneConfigJsonParserTest.class,","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" \"StandaloneConfigJsonParserTest/standaloneConfig_unknownPropertyInJson.json\");","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static final Path STANDALONE_CONFIG_FULL \u003d loadResource(","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" StandaloneConfigJsonParserTest.class,","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" \"StandaloneConfigJsonParserTest/standaloneConfig_full.json\");","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final Path STANDALONE_CONFIG_EMPTY_TEXT_FILE \u003d loadResource(","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" StandaloneConfigJsonParserTest.class,","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" \"StandaloneConfigJsonParserTest/standaloneConfig_emptyText.json\");","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private static final Path STANDALONE_CONFIG_EMPTY_JSON_FILE \u003d loadResource(","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" StandaloneConfigJsonParserTest.class,","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" \"StandaloneConfigJsonParserTest/standaloneConfig_emptyJson.json\");","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" private static final Path STANDALONE_CONFIG_GITHUBID_ONLY \u003d loadResource(","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" StandaloneConfigJsonParserTest.class,","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" \"StandaloneConfigJsonParserTest/standaloneConfig_githubId_only.json\");","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" private static final String TEST_DUMMY_LOCATION \u003d \"https://github.com/reposense/RepoSense.git\";","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" private static RepoConfiguration expectedGithubIdOnlyRepoconfig;","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" private static RepoConfiguration expectedFullRepoConfig;","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" @BeforeAll","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" public static void setUp() throws Exception {","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" Author author \u003d new Author(\"yong24s\");","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" author.setAuthorAliases(Arrays.asList(\"Yong Hao TENG\"));","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" author.setIgnoreGlobList(Arrays.asList(\"**.css\", \"**.html\", \"**.jade\", \"**.js\"));","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"asdfghjkxd"},"content":" expectedGithubIdOnlyRepoconfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_DUMMY_LOCATION)).build();","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" expectedGithubIdOnlyRepoconfig.setFormats(FileTypeTest.NO_SPECIFIED_FORMATS);","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" expectedGithubIdOnlyRepoconfig.setAuthorList(Arrays.asList(new Author(\"yong24s\")));","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" expectedGithubIdOnlyRepoconfig.addAuthorEmailsToAuthorMapEntry(author, author.getEmails());","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"asdfghjkxd"},"content":" expectedFullRepoConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_DUMMY_LOCATION)).build();","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.setFormats(FileType.convertFormatStringsToFileTypes(","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" Arrays.asList(\"gradle\", \"jade\", \"java\", \"js\", \"md\", \"scss\", \"yml\")));","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.setIgnoreCommitList(Arrays.asList(new CommitHash(","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" \"7b96c563eb2d3612aa5275364333664a18f01491\")));","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.setIgnoreGlobList(Arrays.asList(\"**.adoc\", \"collate**\"));","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.setIgnoredAuthorsList(Arrays.asList(\"yong24s\"));","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.setAuthorList(Arrays.asList(author));","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.setAuthorDisplayName(author, \"Yong Hao\");","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.addAuthorNamesToAuthorMapEntry(author, Arrays.asList(author.getGitId()));","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.addAuthorNamesToAuthorMapEntry(author, author.getAuthorAliases());","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.addAuthorEmailsToAuthorMapEntry(author, author.getEmails());","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" public void standaloneConfig_parseEmptyTextFile_success() throws Exception {","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" new StandaloneConfigJsonParser().parse(STANDALONE_CONFIG_EMPTY_TEXT_FILE);","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" public void standaloneConfig_parseEmptyJsonFile_success() throws Exception {","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" new StandaloneConfigJsonParser().parse(STANDALONE_CONFIG_EMPTY_JSON_FILE);","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" public void standaloneConfig_ignoresUnknownProperty_success() throws Exception {","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" new StandaloneConfigJsonParser().parse(STANDALONE_UNKNOWN_PROPERTY_CONFIG);","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" public void standaloneConfig_correctConfig_success() throws Exception {","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" StandaloneConfig config \u003d new StandaloneConfigJsonParser().parse(STANDALONE_CONFIG_FULL);","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" assertSameConfig(expectedFullRepoConfig, config);","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" public void standaloneConfig_githubIdOnlyConfig_success() throws Exception {","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" StandaloneConfig config \u003d new StandaloneConfigJsonParser().parse(STANDALONE_CONFIG_GITHUBID_ONLY);","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" assertSameConfig(expectedGithubIdOnlyRepoconfig, config);","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" public void standaloneConfig_malformedJsonFile_throwsJsonSyntaxException() {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" Assertions.assertThrows(JsonSyntaxException.class, () -\u003e new StandaloneConfigJsonParser()","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" .parse(STANDALONE_MALFORMED_CONFIG));","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" private void assertSameConfig(RepoConfiguration expectedRepoConfig, StandaloneConfig actualStandaloneConfig)","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" throws Exception {","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualRepoConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_DUMMY_LOCATION)).build();","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" actualRepoConfig.update(actualStandaloneConfig);","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedRepoConfig, actualRepoConfig);","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":6,"-":114}},{"path":"src/test/java/reposense/report/ErrorSummaryTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.report;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidLocationException;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"public class ErrorSummaryTest {","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" public void errorSummary_addRepeatedErrorMessage_containsNoDuplicates() {","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" String invalidLocation1 \u003d \"ttp://github.com/reposense.RepoSense.git\";","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" String invalidLocation2 \u003d \"https://github.com/contains-illegal-chars/^\\\\/\";","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" String invalidLocation3 \u003d \"not-valid-protocol://abc.com/reposense/RepoSense.git\";","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" ErrorSummary errorSummaryInstance \u003d ErrorSummary.getInstance();","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" errorSummaryInstance.clearErrorSet();","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" new RepoLocation(invalidLocation1);","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" } catch (InvalidLocationException e) {","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" // not relevant to the test","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, errorSummaryInstance.getErrorSet().size());","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" new RepoLocation(invalidLocation1);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" } catch (InvalidLocationException e) {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" // not relevant to the test","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, errorSummaryInstance.getErrorSet().size());","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" new RepoLocation(invalidLocation2);","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" } catch (InvalidLocationException e) {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" // not relevant to the test","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, errorSummaryInstance.getErrorSet().size());","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" new RepoLocation(invalidLocation1);","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" } catch (InvalidLocationException e) {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" // not relevant to the test","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, errorSummaryInstance.getErrorSet().size());","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" new RepoLocation(invalidLocation3);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" } catch (InvalidLocationException e) {","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" // not relevant to the test","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" Assertions.assertEquals(3, errorSummaryInstance.getErrorSet().size());","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":53}},{"path":"src/test/java/reposense/report/RepoClonerTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.report;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import reposense.util.TestRepoCloner;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"public class RepoClonerTest {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_EMPTY_GIT_LOCATION \u003d \"https://github.com/reposense/testrepo-Empty.git\";","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_GIT_LOCATION \u003d \"https://github.com/reposense/testrepo-Alpha.git\";","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" private static final Path REPOCLONE_LOCAL_TEST_PATH \u003d","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" Paths.get(FileUtil.REPOS_ADDRESS, \"repoclone test/dummy-repo\");","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" public void repoCloner_emptyRepo_failsGracefully() throws Exception {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" RepoConfiguration emptyRepositoryRepoConfig \u003d","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_EMPTY_GIT_LOCATION)).build();","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" RepoCloner repoCloner \u003d new RepoCloner();","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" repoCloner.cloneBare(emptyRepositoryRepoConfig);","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" RepoLocation clonedRepoLocation \u003d repoCloner.getClonedRepoLocation();","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" Assertions.assertNull(clonedRepoLocation);","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" public void repoCloner_validRepoLocationWithRelativePathingAndSpaces_success() throws Exception {","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" // Clones a test repository into the test directory for testing of relative pathing","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration tempRemoteConfiguration \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_GIT_LOCATION)).build();","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneBare(tempRemoteConfiguration, Paths.get(\".\"), REPOCLONE_LOCAL_TEST_PATH.toString());","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" RepoConfiguration repoWithRelativePathingAndSpacesAndEndingBackslash \u003d","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(REPOCLONE_LOCAL_TEST_PATH.toString())).build();","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" RepoCloner repoCloner \u003d new RepoCloner();","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" repoCloner.cloneBare(repoWithRelativePathingAndSpacesAndEndingBackslash);","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.exists(REPOCLONE_LOCAL_TEST_PATH));","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":6,"-":43}},{"path":"src/test/java/reposense/template/GitTestTemplate.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.template;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import static reposense.parser.ArgsParser.DEFAULT_ORIGINALITY_THRESHOLD;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.io.File;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.Iterator;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.function.Supplier;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.AfterEach;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeAll;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeEach;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.authorship.FileInfoAnalyzer;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import reposense.authorship.FileInfoExtractor;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import reposense.authorship.model.FileInfo;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import reposense.authorship.model.FileResult;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import reposense.authorship.model.LineInfo;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import reposense.git.GitCheckout;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import reposense.git.GitShow;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"import reposense.git.exception.CommitNotFoundException;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"import reposense.model.CommitHash;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"import reposense.model.FileTypeTest;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"import reposense.util.TestRepoCloner;","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" * Contains templates for git testing.","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"public class GitTestTemplate {","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" protected static final String TEST_REPO_GIT_LOCATION \u003d \"https://github.com/reposense/testrepo-Alpha.git\";","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" protected static final String IGNORE_REVS_FILE_NAME \u003d \".git-blame-ignore-revs\";","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" protected static final String TEST_REPO_BLAME_WITH_PREVIOUS_AUTHORS_BRANCH \u003d \"1565-find-previous-authors\";","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" protected static final String FIRST_COMMIT_HASH \u003d \"7d7584f\";","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" protected static final String ROOT_COMMIT_HASH \u003d \"fd425072e12004b71d733a58d819d845509f8db3\";","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" protected static final String TEST_COMMIT_HASH \u003d \"2fb6b9b\";","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" protected static final String TEST_COMMIT_HASH_LONG \u003d \"2fb6b9b2dd9fa40bf0f9815da2cb0ae8731436c7\";","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" protected static final String TEST_COMMIT_HASH_PARENT \u003d \"c5a6dc774e22099cd9ddeb0faff1e75f9cf4f151\";","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" protected static final String SECOND_COMMIT_HASH \u003d \"05310e79fe8e54c5096bacc97b886ab24304d12b\";","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" protected static final String MERGE_COMMIT_HASH \u003d \"7937ff5334ee45cb51e8cfd83a2237d33568a20c\";","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" protected static final List\u003cString\u003e MERGE_COMMIT_PARENTS_HASHES \u003d Arrays.asList(","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" \"22aec0be218b0c71065e65460ab48a2d95c8c681\", \"271bfbb0f0624481825abd812ff1d27768f9aba0\");","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" protected static final String MAIN_AUTHOR_NAME \u003d \"harryggg\";","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" protected static final String FAKE_AUTHOR_NAME \u003d \"fakeAuthor\";","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" protected static final String UNCONVENTIONAL_AUTHOR_NAME \u003d \"-unconventional_author-\";","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" protected static final String WHITESPACE_AUTHOR_NAME \u003d \"whitespace author\";","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" protected static final String IGNORED_AUTHOR_NAME \u003d \"FH-30\";","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" protected static final String EUGENE_AUTHOR_NAME \u003d \"eugenepeh\";","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" protected static final String YONG_AUTHOR_NAME \u003d \"Yong Hao TENG\";","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" protected static final String MINGYI_AUTHOR_NAME \u003d \"myteo\";","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" protected static final String SHICHEN_AUTHOR_NAME \u003d \"SkyBlaise\";","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" protected static final String JAMES_AUTHOR_NAME \u003d \"jamessspanggg\";","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" protected static final String JAMES_ALTERNATIVE_AUTHOR_NAME \u003d \"James Pang\";","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" protected static final String JINYAO_AUTHOR_NAME \u003d \"jylee-git\";","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" protected static final String CHENGYU_AUTHOR_NAME \u003d \"HCY123902\";","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" protected static final String LATEST_COMMIT_HASH \u003d \"abbd5888d5cd4e411c6a8e58e661b0eafdae1335\";","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" protected static final String LATEST_COMMIT_HASH_PARENT \u003d \"f768b9b1d9d1478f8ac8cf3b4c7f868479edc07a\";","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" protected static final String EMPTY_TREE_HASH \u003d \"4b825dc642cb6eb9a060e54bf8d69288fbee4904\";","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" protected static final String EUGENE_AUTHOR_README_FILE_COMMIT_07052018_STRING \u003d","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" \"2d87a431fcbb8f73a731b6df0fcbee962c85c250\";","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" protected static final CommitHash EUGENE_AUTHOR_README_FILE_COMMIT_07052018 \u003d","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" new CommitHash(EUGENE_AUTHOR_README_FILE_COMMIT_07052018_STRING);","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" protected static final String FAKE_AUTHOR_BLAME_TEST_FILE_COMMIT_08022018_STRING \u003d","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" \"768015345e70f06add2a8b7d1f901dc07bf70582\";","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" protected static final CommitHash FAKE_AUTHOR_BLAME_TEST_FILE_COMMIT_08022018 \u003d","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" new CommitHash(FAKE_AUTHOR_BLAME_TEST_FILE_COMMIT_08022018_STRING);","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" protected static final String MAIN_AUTHOR_BLAME_TEST_FILE_COMMIT_06022018_STRING \u003d","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" \"8d0ac2ee20f04dce8df0591caed460bffacb65a4\";","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" protected static final CommitHash MAIN_AUTHOR_BLAME_TEST_FILE_COMMIT_06022018 \u003d","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" new CommitHash(MAIN_AUTHOR_BLAME_TEST_FILE_COMMIT_06022018_STRING);","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" protected static final String AUTHOR_TO_IGNORE_BLAME_TEST_FILE_COMMIT_07082021_STRING \u003d","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" \"1d29339e7d16eb5b2bc8fb542e08acedd3d4b0eb\";","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" protected static final CommitHash AUTHOR_TO_IGNORE_BLAME_TEST_FILE_COMMIT_07082021 \u003d","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" new CommitHash(AUTHOR_TO_IGNORE_BLAME_TEST_FILE_COMMIT_07082021_STRING);","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" protected static final String FAKE_AUTHOR_BLAME_RANGED_COMMIT_ONE_06022018_STRING \u003d","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" \"7d7584fc204922cc5ff3bd5ca073cad6bed2c46a\";","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" protected static final String FAKE_AUTHOR_BLAME_RANGED_COMMIT_TWO_06022018_STRING \u003d","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" \"8d0ac2ee20f04dce8df0591caed460bffacb65a4\";","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" protected static final String FAKE_AUTHOR_BLAME_RANGED_COMMIT_THREE_07022018_STRING \u003d","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" \"8e4ca1da5d413e9ab84a1e8d1474918afa97f7a1\";","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" protected static final String FAKE_AUTHOR_BLAME_RANGED_COMMIT_FOUR_08022018_STRING \u003d","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" \"768015345e70f06add2a8b7d1f901dc07bf70582\";","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" protected static final List\u003cCommitHash\u003e FAKE_AUTHOR_BLAME_RANGED_COMMIT_LIST_09022018 \u003d Arrays.asList(","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" new CommitHash(FAKE_AUTHOR_BLAME_RANGED_COMMIT_ONE_06022018_STRING),","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" new CommitHash(FAKE_AUTHOR_BLAME_RANGED_COMMIT_TWO_06022018_STRING),","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" new CommitHash(FAKE_AUTHOR_BLAME_RANGED_COMMIT_THREE_07022018_STRING),","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" new CommitHash(FAKE_AUTHOR_BLAME_RANGED_COMMIT_FOUR_08022018_STRING));","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" protected static final List\u003cCommitHash\u003e AUTHOR_TO_IGNORE_BLAME_COMMIT_LIST_07082021 \u003d Collections.singletonList(","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" new CommitHash(AUTHOR_TO_IGNORE_BLAME_TEST_FILE_COMMIT_07082021_STRING)","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" );","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" protected static final String NONEXISTENT_COMMIT_HASH \u003d \"nonExistentCommitHash\";","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" protected static final ZoneId TIME_ZONE_ID \u003d ZoneId.of(\"Asia/Singapore\");","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" protected static final Author MAIN_AUTHOR \u003d new Author(MAIN_AUTHOR_NAME);","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" protected static final Author FAKE_AUTHOR \u003d new Author(FAKE_AUTHOR_NAME);","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" protected static final Author UNCONVENTIONAL_AUTHOR \u003d new Author(UNCONVENTIONAL_AUTHOR_NAME);","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" protected static final Author WHITESPACE_AUTHOR \u003d new Author(WHITESPACE_AUTHOR_NAME);","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" protected static ThreadLocal\u003cRepoConfiguration\u003e configs \u003d ThreadLocal.withInitial(() -\u003e {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" return newRepoConfiguration();","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" } catch (Exception e) {","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" throw new RuntimeException(e);","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" private static final Supplier\u003cString\u003e EXTRA_OUTPUT_FOLDER_NAME_SUPPLIER \u003d () -\u003e","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" String.valueOf(Thread.currentThread().getId());","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" private FileInfoExtractor fileInfoExtractor \u003d new FileInfoExtractor();","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" private FileInfoAnalyzer fileInfoAnalyzer \u003d new FileInfoAnalyzer();","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" @BeforeEach","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" public void before() throws Exception {","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" RepoConfiguration config \u003d newRepoConfiguration();","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" config.setAuthorList(Collections.singletonList(getAlphaAllAliasAuthor()));","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" config.setFormats(FileTypeTest.DEFAULT_TEST_FORMATS);","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" config.setZoneId(TIME_ZONE_ID);","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" config.setIsLastModifiedDateIncluded(false);","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" configs.set(config);","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" @BeforeAll","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" public static void beforeClass() throws Exception {","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" RepoConfiguration config \u003d newRepoConfiguration();","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" config.setZoneId(TIME_ZONE_ID);","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" configs.set(config);","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(config, EXTRA_OUTPUT_FOLDER_NAME_SUPPLIER.get());","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" @AfterEach","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" public void after() {","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" GitCheckout.checkout(configs.get().getRepoRoot(), \"master\");","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" private static RepoConfiguration newRepoConfiguration() throws Exception {","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"asdfghjkxd"},"content":" return new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_GIT_LOCATION))","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"asdfghjkxd"},"content":" .extraOutputFolderName(EXTRA_OUTPUT_FOLDER_NAME_SUPPLIER.get())","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" * Generates the .git-blame-ignore-revs file containing {@link CommitHash}es","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" * from {@code toIgnore} for the test repo.","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" public List\u003cCommitHash\u003e createTestIgnoreRevsFile(List\u003cCommitHash\u003e toIgnore) {","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" String repoRoot \u003d configs.get().getRepoRoot();","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" List\u003cCommitHash\u003e expandedIgnoreCommitList \u003d toIgnore.stream()","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" .map(CommitHash::toString)","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" .map(commitHash -\u003e {","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" return GitShow.getExpandedCommitHash(repoRoot, commitHash);","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" } catch (CommitNotFoundException e) {","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" return new CommitHash(commitHash);","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" })","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" String fileLocation \u003d repoRoot + IGNORE_REVS_FILE_NAME;","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" FileUtil.writeIgnoreRevsFile(fileLocation, expandedIgnoreCommitList);","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" return expandedIgnoreCommitList;","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" public void removeTestIgnoreRevsFile() {","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" String fileLocation \u003d configs.get().getRepoRoot() + IGNORE_REVS_FILE_NAME;","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" new File(fileLocation).delete();","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" * For each line in {@link FileResult}, assert that it is attributed to the expected author provided by","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" * {@code expectedLineAuthors}.","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" public void assertFileAnalysisCorrectness(FileResult fileResult, List\u003cAuthor\u003e expectedLineAuthors) {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" List\u003cLineInfo\u003e lines \u003d fileResult.getLines();","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" assertEquals(expectedLineAuthors.size(), lines.size());","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" Iterator\u003cAuthor\u003e lineAuthorsItr \u003d expectedLineAuthors.iterator();","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" Iterator\u003cLineInfo\u003e linesItr \u003d lines.iterator();","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" while (linesItr.hasNext() \u0026\u0026 lineAuthorsItr.hasNext()) {","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" assertEquals(lineAuthorsItr.next(), linesItr.next().getAuthor());","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" public FileResult getFileResult(String relativePath) {","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" FileInfo fileInfo \u003d fileInfoExtractor.generateFileInfo(configs.get(), relativePath);","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" return fileInfoAnalyzer.analyzeTextFile(configs.get(), fileInfo, false, DEFAULT_ORIGINALITY_THRESHOLD);","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" * Returns a {@link Author} that has git id and aliases of all authors in testrepo-Alpha, so that no commits","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" * will be filtered out in the `git log` command.","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" protected Author getAlphaAllAliasAuthor() {","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" Author author \u003d new Author(MAIN_AUTHOR_NAME);","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" author.setAuthorAliases(Arrays.asList(FAKE_AUTHOR_NAME, EUGENE_AUTHOR_NAME, YONG_AUTHOR_NAME));","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" return author;","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":5,"-":206}},{"path":"src/test/java/reposense/util/TestUtil.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.util;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.net.URISyntaxException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.net.URL;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.HashSet;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.Set;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.git.GitLog;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" * Contains testing related functionalities.","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"public class TestUtil {","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private static final int[] END_OF_DAY_TIME \u003d {23, 59, 59};","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final int[] START_OF_DAY_TIME \u003d {0, 0, 0};","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final String MESSAGE_COMPARING_FILES \u003d \"Comparing files %s \u0026 %s\\n\";","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private static final String MESSAGE_LINE_CONTENT_DIFFERENT \u003d \"Content different at line number %d:\\n\"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" + \"\u003c\u003c %s\\n\"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" + \"\u003e\u003e %s\\n\";","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" private static final String MESSAGE_LINES_LENGTH_DIFFERENT \u003d \"The files\u0027 lines count do not match.\";","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private static final String MOVED_FILE_INDICATION \u003d \"\u003d\u003e \";","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private static final int STAT_FILE_PATH_INDEX \u003d 2;","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" * Returns true if the contents of the files at {@code expected} and {@code actual} are the same.","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" * Also prints out error message if the lines count are different,","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" * else prints out the first line of content difference (if any).","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" public static boolean compareFileContents(Path expected, Path actual) throws Exception {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" return compareFileContents(expected, actual, 1);","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" * Returns true if the contents of the files at {@code expected} and {@code actual} are the same.","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" * Also prints out error message if the lines count are different,","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" * else prints out maximum {@code maxTraceCounts} lines of content difference (if any).","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" public static boolean compareFileContents(Path expected, Path actual, int maxTraceCounts) throws Exception {","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" int traceCounts \u003d 0;","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" System.out.println(String.format(MESSAGE_COMPARING_FILES, expected, actual));","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"asdfghjkxd"},"content":" String[] expectedContent \u003d StringsUtil.NEWLINE.split(new String(Files.readAllBytes(expected))","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"asdfghjkxd"},"content":" .replace(\"\\r\", \"\"));","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"asdfghjkxd"},"content":" String[] actualContent \u003d StringsUtil.NEWLINE.split(new String(Files.readAllBytes(actual))","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"asdfghjkxd"},"content":" .replace(\"\\r\", \"\"));","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" for (int i \u003d 0; i \u003c Math.min(expectedContent.length, actualContent.length); i++) {","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" if (!expectedContent[i].equals(actualContent[i])) {","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" System.out.println(","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" String.format(MESSAGE_LINE_CONTENT_DIFFERENT, i + 1, expectedContent[i], actualContent[i]));","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" if (++traceCounts \u003e\u003d maxTraceCounts) {","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" break;","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" if (expectedContent.length !\u003d actualContent.length) {","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" System.out.println(MESSAGE_LINES_LENGTH_DIFFERENT);","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" } else if (traceCounts \u003e\u003d maxTraceCounts) {","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" * Returns true if {@code expected} directory has all files with same content as {@code actual} directory.","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" public static boolean compareDirectories(Path expected, Path actual) throws Exception {","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" List\u003cPath\u003e expectedPaths \u003d Files.walk(expected)","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" .sorted()","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" List\u003cPath\u003e actualPaths \u003d Files.walk(actual)","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" .sorted()","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" if (expectedPaths.size() !\u003d actualPaths.size()) {","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" for (int i \u003d 0; i \u003c expectedPaths.size(); i++) {","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" if (!(Files.isDirectory(expectedPaths.get(i)) || Files.isDirectory(actualPaths.get(i)))","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" \u0026\u0026 !TestUtil.compareFileContents(expectedPaths.get(i), actualPaths.get(i))) {","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" * Creates and returns a {@link LocalDateTime} object with the specified {@code year}, {@code month}, {@code day}","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" * and {@code time}.","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" public static LocalDateTime getDate(int year, int month, int date, int[] time) {","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" return LocalDateTime.of(year, month, date, time[0], time[1], time[2], 0);","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" * Wrapper for {@code getDate} method to get since date with time 00:00:00","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" * from the parameters {@code year}, {@code month}, {@code date}.","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" public static LocalDateTime getSinceDate(int year, int month, int date) {","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" return getDate(year, month, date, START_OF_DAY_TIME);","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" * Wrapper for {@code getDate} method to get until date with time 23:59:59","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" * from the parameters {@code year}, {@code month}, {@code date}.","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" public static LocalDateTime getUntilDate(int year, int month, int date) {","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" return getDate(year, month, date, END_OF_DAY_TIME);","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" * Returns a {@link ZoneId} object for the specified {@code timezone}.","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" public static ZoneId getZoneId(String timezone) {","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" return ZoneId.of(timezone);","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" * Compares attributes of {@code expectedRepoConfig} and {@code actualRepoConfig}.","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" * @throws AssertionError if any attributes fail equality check.","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" public static void compareRepoConfig(RepoConfiguration expectedRepoConfig, RepoConfiguration actualRepoConfig) {","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedRepoConfig, actualRepoConfig);","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" for (int i \u003d 0; i \u003c expectedRepoConfig.getAuthorList().size(); i++) {","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" compareAuthor(expectedRepoConfig.getAuthorList().get(i), actualRepoConfig.getAuthorList().get(i));","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" * Compares attributes of {@code expectedAuthor} and {@code actualAuthor}, with exception of it\u0027s display name.","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" * The display name is not compared as it varies with object construction.","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" * It is a transient value and it is not needed for object matching.","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" * @throws AssertionError if any attributes fail equality check.","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" public static void compareAuthor(Author expectedAuthor, Author actualAuthor) {","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedAuthor.getGitId(), actualAuthor.getGitId());","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedAuthor.getIgnoreGlobList(), actualAuthor.getIgnoreGlobList());","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedAuthor.getAuthorAliases(), actualAuthor.getAuthorAliases());","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" * Returns true if the {@code expectedNumberCommits} is equal to the expected number of commits captured in","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" * {@code gitLogResult}.","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" public static boolean compareNumberExpectedCommitsToGitLogLines(int expectedNumberCommits, String gitLogResult) {","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" // if git log result is empty, then there are no commits","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" if (gitLogResult.isEmpty()) {","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" return expectedNumberCommits \u003d\u003d 0;","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" // (actualSplitGitLogResilt - 1) as the 1st token is always empty.","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" return expectedNumberCommits \u003d\u003d (gitLogResult.split(GitLog.COMMIT_INFO_DELIMITER).length - 1);","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" * Returns true if the {@code expectedNumberFilesChanged} is equal to the actual number of files changed in","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" * {@code gitLogResult}.","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" public static boolean compareNumberFilesChanged(int expectedNumberFilesChanged, String gitLogResult) {","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" // if git log result is empty, then there are no files changed","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" if (gitLogResult.isEmpty()) {","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" return expectedNumberFilesChanged \u003d\u003d 0;","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" String[] changesLogged \u003d gitLogResult.split(GitLog.COMMIT_INFO_DELIMITER);","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" HashSet\u003cString\u003e filesChanged \u003d new HashSet\u003c\u003e();","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" // start from index 1 as index 0 is always empty.","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" for (int i \u003d 1; i \u003c changesLogged.length; i++) {","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" filesChanged.addAll(getFilesChangedInCommit(changesLogged[i]));","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" return filesChanged.size() \u003d\u003d expectedNumberFilesChanged;","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" * Returns the {@link Set} of files changed in the commit {@code rawCommitInfo}.","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" private static Set\u003cString\u003e getFilesChangedInCommit(String rawCommitInfo) {","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" Set\u003cString\u003e filesChanged \u003d new HashSet\u003c\u003e();","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"asdfghjkxd"},"content":" String[] commitInfo \u003d StringsUtil.NEWLINE.split(rawCommitInfo.replaceAll(\"\\n+$\", \"\"));","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" int fileChangedNum \u003d Integer.parseInt(commitInfo[commitInfo.length - 1].trim().split(\" \")[0]);","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" for (int fileNum \u003d 0; fileNum \u003c fileChangedNum; fileNum++) {","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" filesChanged.add(getFileChanged(commitInfo[commitInfo.length - 2 - fileNum]));","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" return filesChanged;","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" * Returns the file changed given a {@code rawFileChangedString}.","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" private static String getFileChanged(String rawFileChangedString) {","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"asdfghjkxd"},"content":" String fileChanged \u003d StringsUtil.TAB.split(rawFileChangedString)[STAT_FILE_PATH_INDEX].trim();","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" if (fileChanged.contains(MOVED_FILE_INDICATION)) {","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" fileChanged \u003d fileChanged.substring(fileChanged.indexOf(MOVED_FILE_INDICATION)","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" + MOVED_FILE_INDICATION.length());","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" return fileChanged;","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" * Returns true if the test environment is on Windows OS.","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" public static boolean isWindows() {","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" return System.getProperty(\"os.name\").toLowerCase().contains(\"win\");","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" * Returns the {@link Path} to a resource given by {@code pathToResource} string, using {@code classForLoading}.","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" public static Path loadResource(Class\u003c?\u003e classForLoading, String pathToResource) {","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" ClassLoader classLoader \u003d classForLoading.getClassLoader();","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" URL url \u003d classLoader.getResource(pathToResource);","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" Path path \u003d null;","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" path \u003d Paths.get(url.toURI());","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" } catch (URISyntaxException e) {","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" System.out.println(\"URL format does not follow required standard\");","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" return path;","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":6,"-":234}},{"path":"src/test/resources/BlurbMarkdownParserTest/malformed_delimiter_blurb.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/testrepo-Alpha/tree/master","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"Master branch of testrepo-Alpha","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--bunchofcharacters that don\u0027t count\u003e","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/testrepo-Alpha/tree/master","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"Master branch of testrepo-Alpha","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo - this is not legal and will be captured as part of the text --\u003e","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003ebut this is legal and will be ignored","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":7}},{"path":"src/test/resources/BlurbMarkdownParserTest/malformed_url_blurb.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"://github/reposense/testrepo-Alp","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"Malformed URL Test","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2}},{"path":"src/test/resources/BlurbMarkdownParserTest/multiline_blurb.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/testrepo-Alpha/tree/master","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"Master branch of testrepo-Alpha","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"A","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"long","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"line","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"of","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"description","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"of","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"testrepo","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"Alpha","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":10}},{"path":"src/test/resources/BlurbMarkdownParserTest/multiple_blurbs.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/testrepo-Alpha/tree/master","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"Master branch of testrepo-Alpha","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003e","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/testrepo-Beta/tree/master","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"Master branch of testrepo-Beta","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003e","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/testrepo-Gamma/tree/master","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"Master branch of testrepo-Gamma","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/testrepo-Sigma/tree/master","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"Master branch of testrepo-Sigma","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003e","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":12}}] +[{"path":".github/workflows/gh-pages.yml","fileType":"yml","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# This workflow executes the various RepoSense tests","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"name: GitHub Pages","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"on:","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" push:","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" branches:","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" - master","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"jobs:","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" deploy-gh-pages:","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" name: Deploy MarkBind to GitHub Pages","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" runs-on: ubuntu-latest","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" env:","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" NODE_VERSION: \"lts/*\"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" steps:","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" - name: Checkout repository","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" uses: actions/checkout@v3","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" - name: Set up Node.js","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" uses: actions/setup-node@v3","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"sopa301"},"content":" node-version: \u002718.x\u0027","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" - name: Set up Node caching","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" uses: actions/cache@v3","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" path: ~/.npm","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" key: ${{ runner.os }}-node-${{ hashFiles(\u0027**/package-lock.json\u0027) }}","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" restore-keys: |","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" ${{ runner.os }}-node-","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" - name: Install Graphviz","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" run: sudo apt-get -y install graphviz","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" - name: Install MarkBind CLI","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" run: npm i -g markbind-cli","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" - name: Build MarkBind website","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" run: cd docs \u0026\u0026 markbind build --baseUrl /RepoSense","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" - name: Deploy to GitHub Pages","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" if: success()","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" uses: crazy-max/ghaction-github-pages@v2","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" target_branch: gh-pages","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" build_dir: docs/_site","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" keep_history: true","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" env:","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}","isFullCredit":false}],"authorContributionMap":{"sopa301":1,"-":50}},{"path":".github/workflows/integration.yml","fileType":"yml","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# This workflow executes the various RepoSense tests","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"name: Continuous Integration","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"on:","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" push:","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" branches-ignore:","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" - gh-pages","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" pull_request:","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" branches-ignore:","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" - gh-pages","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"env:","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"sopa301"},"content":" NODE_VER: \u002718.x\u0027","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" JAVA_DISTRIBUTION: \u0027zulu\u0027","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":" JAVA_VER: 11","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"jobs:","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" mainbuild:","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":" name: ${{ matrix.os }} JDK 11","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" strategy:","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" fail-fast: false","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" matrix:","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" os: [ubuntu-20.04, ubuntu-22.04, macos-11, macos-12, windows-2019, windows-2022]","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" runs-on: ${{ matrix.os }}","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" env:","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" HOMEBREW_NO_AUTO_UPDATE: 1 # Prevent time-consuming brew update","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" steps:","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" - name: Checkout repository","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" uses: actions/checkout@v3","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" fetch-depth: 0","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":" - name: Set up JDK 11","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" uses: actions/setup-java@v3","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" distribution: ${{ env.JAVA_DISTRIBUTION }}","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" java-version: ${{ env.JAVA_VER }}","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" - name: Verify Java version","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" run: echo \"Actual JDK in use -- \"; java -version","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" - name: Set up Node.js","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" uses: actions/setup-node@v3","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" node-version: ${{ env.NODE_VER }}","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" - name: Set up Gradle caching","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" uses: actions/cache@v3","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" path: |","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" $HOME/.gradle/caches","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" $HOME/.gradle/wrapper","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" key: ${{ matrix.os }}-gradle-${{ hashFiles(\u0027**/*.gradle*\u0027) }}","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" restore-keys: |","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" ${{ matrix.os }}-gradle-","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" - name: Set up Node caching","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" uses: actions/cache@v3","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" path: $HOME/.npm","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" key: ${{ matrix.os }}-node-${{ hashFiles(\u0027**/package-lock.json\u0027) }}","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" restore-keys: |","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" ${{ matrix.os }}-node-","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" - name: Grant execute permission for gradlew","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" if: ${{ runner.os !\u003d \u0027Windows\u0027 }}","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" run: chmod +x gradlew # Windows does not need this","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" - name: Run environmental checks","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" run: ./gradlew environmentalChecks","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" - name: Run linter","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" run: ./gradlew lintFrontend","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" - name: Build with Gradle","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" run: ./gradlew clean checkstyleAll test systemTest coverage","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" - name: Run code coverage","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" if: ${{ success() \u0026\u0026 ( matrix.os \u003d\u003d \u0027ubuntu-20.04\u0027 || matrix.os \u003d\u003d \u0027macos-11\u0027 || matrix.os \u003d\u003d \u0027windows-2022\u0027 ) }}","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" uses: codecov/codecov-action@v3","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" directory: ${{ github.workspace }}/build/reports/jacoco/coverage","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" files: coverage.xml","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"asdfghjkxd"},"content":" fail_ci_if_error: false","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" - name: Build preview website (pull request)","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" if: ${{ success() \u0026\u0026 github.event_name \u003d\u003d \u0027pull_request\u0027 \u0026\u0026 matrix.os \u003d\u003d \u0027ubuntu-20.04\u0027 }}","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" run: |","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" git fetch --all \u0026\u0026 git config --global user.email \"-\" \u0026\u0026 git config --global user.name \"-\" \u0026\u0026 ./gradlew run -Dargs\u003d\"--since d1\"","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" sudo apt-get -y install graphviz","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" npm install -g markbind-cli","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" (cd docs \u0026\u0026 markbind build)","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" - name: Save PR number and HEAD commit (pull request)","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" if: ${{ success() \u0026\u0026 github.event_name \u003d\u003d \u0027pull_request\u0027 \u0026\u0026 matrix.os \u003d\u003d \u0027ubuntu-20.04\u0027 }}","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" run: |","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" mkdir -p ./pr","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" echo ${{ github.event.number }} \u003e ./pr/NUMBER","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" echo ${{ github.event.pull_request.head.sha }} \u003e ./pr/SHA","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" - name: Upload artifacts (pull request)","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" if: ${{ success() \u0026\u0026 github.event_name \u003d\u003d \u0027pull_request\u0027 \u0026\u0026 matrix.os \u003d\u003d \u0027ubuntu-20.04\u0027 }}","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" uses: actions/upload-artifact@v3","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" name: reposense-deployment","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" path: |","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" ./reposense-report","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" ./docs/_site","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" ./pr","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" cypress:","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" name: Cypress frontend tests","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" runs-on: ubuntu-20.04","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" steps:","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" - name: Checkout repository","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" uses: actions/checkout@v3","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" fetch-depth: 0","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"asdfghjkxd"},"content":" - name: Set up JDK 11","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" uses: actions/setup-java@v3","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" distribution: ${{ env.JAVA_DISTRIBUTION }}","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" java-version: ${{ env.JAVA_VER }}","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" - name: Verify Java version","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" run: echo \"Actual JDK in use -- \"; java -version","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" - name: Set up Node.js","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" uses: actions/setup-node@v3","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" node-version: ${{ env.NODE_VER }}","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" - name: Set up Gradle caching","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" uses: actions/cache@v3","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" path: |","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" $HOME/.gradle/caches","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" $HOME/.gradle/wrapper","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" key: ${{ runner.os }}-gradle-${{ hashFiles(\u0027**/*.gradle*\u0027) }}","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" restore-keys: |","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" ${{ runner.os }}-gradle-","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" - name: Set up Node caching","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" uses: actions/cache@v3","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" path: $HOME/.npm","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" key: ${{ runner.os }}-node-${{ hashFiles(\u0027**/package-lock.json\u0027) }}","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" restore-keys: |","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" ${{ runner.os }}-node-","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" - name: Grant execute permission for gradlew","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" run: chmod +x gradlew","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" - name: Set up environment","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" run: sudo apt-get install -y libgtk2.0-0 libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" - name: Run frontend tests","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" run: ./gradlew frontendTest -Pci","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":5,"sopa301":1,"-":156}},{"path":".github/workflows/surge.yml","fileType":"yml","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# This workflow deploys a RepoSense report and the MarkBind documentation","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"# website to surge.sh in a secure manner for pull requests","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"name: Surge.sh build preview","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"on:","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" workflow_run:","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" workflows: [\"Continuous Integration\"]","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" types:","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" - completed","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"jobs:","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" deploy:","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" name: Deploy to surge.sh","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" runs-on: ubuntu-latest","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" if: ${{ github.event.workflow_run.event \u003d\u003d \u0027pull_request\u0027 \u0026\u0026 github.event.workflow_run.conclusion \u003d\u003d \u0027success\u0027 }}","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" env:","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" NODE_VERSION: \"lts/*\"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" GITHUB_TOKEN: ${{ github.token }}","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" steps:","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" - name: Checkout repository","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" uses: actions/checkout@v3","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" - name: Set up Node.js","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" uses: actions/setup-node@v3","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"sopa301"},"content":" node-version: \u002718.x\u0027","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" - name: Download deployment artifacts","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" uses: dawidd6/action-download-artifact@v2","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" workflow: integration.yml","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" run_id: ${{ github.event.workflow_run.id }}","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" name: reposense-deployment","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" path: .","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" - name: Extract PR number","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" id: pr-number","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" run: echo \u0027ACTIONS_PR_NUMBER\u003d\u0027$(cat ./pr/NUMBER) \u003e\u003e $GITHUB_OUTPUT","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" - name: Download deployment status artifacts","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" uses: dawidd6/action-download-artifact@v2","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" with:","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" workflow: pending.yml","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" pr: ${{ steps.pr-number.outputs.ACTIONS_PR_NUMBER }}","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" workflow_conclusion: success","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" name: reposense-deployment-id","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" path: ./pr","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" - name: Update PR checklist for surge.sh as in progress","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" if: ${{ success() }}","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" run: ./config/gh-actions/deploy.sh in_progress","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" - name: Install surge","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" if: ${{ success() }}","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" run: npm install -g surge","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" - name: Deploy to surge.sh","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" if: ${{ success() }}","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" env:","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" SURGE_LOGIN: ${{ secrets.SURGE_LOGIN }}","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" SURGE_TOKEN: ${{ secrets.SURGE_TOKEN }}","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" run: ./config/gh-actions/deploy.sh success","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" - name: Update PR checklist for surge.sh as failure","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" if: ${{ failure() }}","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" run: ./config/gh-actions/deploy.sh failure","isFullCredit":false}],"authorContributionMap":{"sopa301":1,"-":67}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"plugins {","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027application\u0027","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027checkstyle\u0027","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" id \u0027idea\u0027","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" id \u0027jacoco\u0027","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" id \u0027java\u0027","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" id \u0027com.liferay.node\u0027 version \u00277.2.18\u0027","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" id \u0027com.github.psxpaul.execfork\u0027 version \u00270.2.0\u0027","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" id \u0027com.palantir.git-version\u0027 version \u00270.13.0\u0027","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"OperatingSystem os \u003d DefaultNativePlatform.currentOperatingSystem;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"mainClassName \u003d \u0027reposense.RepoSense\u0027","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"node.download \u003d false // The Liferay Node Gradle Plugin will use the system PATH to find the Node/npm executable.","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":"sourceCompatibility \u003d JavaVersion.VERSION_11","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":"targetCompatibility \u003d JavaVersion.VERSION_11","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"repositories {","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" mavenCentral()","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"configurations {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" systemtestImplementation.extendsFrom testImplementation","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" systemtestRuntime.extendsFrom testRuntime","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"dependencies {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" String jUnitVersion \u003d \u00275.8.2\u0027","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" implementation group: \u0027com.google.code.gson\u0027 ,name: \u0027gson\u0027, version:\u00272.9.0\u0027","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" implementation group: \u0027net.freeutils\u0027, name: \u0027jlhttp\u0027, version: \u00272.6\u0027","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" implementation group: \u0027net.sourceforge.argparse4j\u0027, name: \u0027argparse4j\u0027, version: \u00270.9.0\u0027","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" implementation group: \u0027org.apache.ant\u0027, name: \u0027ant\u0027, version: \u00271.10.12\u0027","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" implementation group: \u0027org.apache.commons\u0027, name: \u0027commons-csv\u0027, version: \u00271.9.0\u0027","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" implementation group: \u0027org.fusesource.jansi\u0027, name: \u0027jansi\u0027, version: \u00272.4.0\u0027","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"asdfghjkxd"},"content":" implementation group: \u0027com.fasterxml.jackson.dataformat\u0027, name: \u0027jackson-dataformat-yaml\u0027, version: \u00272.17.0\u0027","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: jUnitVersion","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: jUnitVersion","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"sourceSets {","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" systemtest {","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" compileClasspath +\u003d main.output + test.output","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" runtimeClasspath +\u003d main.output + test.output","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" java.srcDir file(\u0027src/systemtest/java\u0027)","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" resources.srcDir file(\u0027src/systemtest/resources\u0027)","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"def installFrontend \u003d tasks.register(\u0027installFrontend\u0027, com.liferay.gradle.plugins.node.tasks.ExecutePackageManagerTask) {","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" workingDir \u0027frontend/\u0027","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" args \u003d [\u0027ci\u0027]","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"def buildFrontend \u003d tasks.register(\u0027buildFrontend\u0027, com.liferay.gradle.plugins.node.tasks.ExecutePackageManagerTask) {","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" dependsOn installFrontend","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" workingDir \u0027frontend/\u0027","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" args \u003d [\u0027run\u0027, \u0027devbuild\u0027]","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"def zipReport \u003d tasks.register(\u0027zipReport\u0027, Zip) {","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" dependsOn buildFrontend","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" from \u0027frontend/build/\u0027","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" archiveBaseName \u003d \u0027templateZip\u0027","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" destinationDirectory \u003d file(\u0027src/main/resources\u0027)","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"def copyCypressConfig \u003d tasks.register(\u0027copyCypressConfig\u0027, Copy) {","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" description \u0027Copies the config files used by the backend to generate the test report for Cypress testing into an isolated working directory\u0027","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" from \u0027frontend/cypress/config\u0027","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" into \u0027build/serveTestReport/exampleconfig\u0027","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"def copyMainClasses \u003d tasks.register(\u0027copyMainClasses\u0027, Copy) {","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" description \u0027Copies the backend classes used to generate the test report for Cypress testing into an isolated working directory\u0027","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" dependsOn classes","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" from \u0027build/classes/java/main\u0027","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" into \u0027build/serveTestReport/java/main\u0027","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"def compileJava \u003d tasks.compileJava","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"tasks.named(\"processSystemtestResources\").configure {","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" duplicatesStrategy \u003d DuplicatesStrategy.INCLUDE","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"tasks.run.dependsOn(zipReport);","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"run {","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" //the second arguments indicates the default value associated with the property.","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" tasks.compileJava.mustRunAfter(zipReport)","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" args System.getProperty(\u0027args\u0027, \u0027\u0027).split()","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" systemProperty \"version\", getRepoSenseVersion()","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"checkstyle {","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" toolVersion \u003d \u00279.3\u0027","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" getConfigDirectory().set(file(\"$rootProject.projectDir/config/checkstyle\"))","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"idea {","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" module {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" sourceSets.systemtest.allSource.srcDirs.each { srcDir -\u003e module.testSourceDirs +\u003d srcDir }","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"test {","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" environment(\"REPOSENSE_ENVIRONMENT\", \"TEST\")","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" testLogging {","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" events \u0027passed\u0027, \u0027skipped\u0027, \u0027failed\u0027","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" showStandardStreams \u003d true","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" doFirst {","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" deleteReposAddressDirectory()","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" useJUnitPlatform()","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" doLast {","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" deleteReposAddressDirectory()","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"tasks.shadowJar.dependsOn(zipReport);","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":"shadowJar {","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" tasks.compileJava.mustRunAfter(zipReport)","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" tasks.processResources.mustRunAfter(zipReport)","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" archiveFileName \u003d \u0027RepoSense.jar\u0027","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" destinationDirectory \u003d file(\"${buildDir}/jar/\")","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" manifest {","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" attributes \u0027Implementation-Version\u0027: getRepoSenseVersion()","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":"tasks.register(\u0027lintFrontend\u0027, com.liferay.gradle.plugins.node.tasks.ExecutePackageManagerTask) {","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" dependsOn installFrontend","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" workingDir \u0027frontend/\u0027","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" args \u003d [\u0027run\u0027, \u0027lint\u0027]","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"def checkstyleMain \u003d tasks.checkstyleMain","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":"def checkstyleTest \u003d tasks.checkstyleTest","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":"def checkstyleSystemtest \u003d tasks.checkstyleSystemtest","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"tasks.register(\u0027checkstyleAll\u0027, Checkstyle) {","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" dependsOn checkstyleMain, checkstyleTest, checkstyleSystemtest","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" tasks.checkstyleTest.mustRunAfter(\u0027checkstyleMain\u0027)","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" tasks.checkstyleSystemtest.mustRunAfter(\u0027checkstyleTest\u0027)","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"tasks.register(\u0027environmentalChecks\u0027, Exec) {","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" workingDir \u0027config/checks/\u0027","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" if (os.isWindows()){","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" commandLine \u0027cmd\u0027, \u0027/c\u0027, \u0027run-checks.bat\u0027","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" commandLine \u0027sh\u0027, \u0027./run-checks.sh\u0027","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"tasks.register(\u0027systemtest\u0027, Test) {","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" testClassesDirs \u003d sourceSets.systemtest.output.classesDirs","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" classpath \u003d sourceSets.systemtest.runtimeClasspath","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" environment(\"REPOSENSE_ENVIRONMENT\", \"TEST\")","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" testLogging {","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" events \u0027passed\u0027, \u0027skipped\u0027, \u0027failed\u0027","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" showStandardStreams \u003d true","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" doFirst {","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" deleteReposAddressDirectory()","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" useJUnitPlatform()","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" doLast {","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" deleteReposAddressDirectory()","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"def serveTestReportInBackground \u003d tasks.register(\u0027serveTestReportInBackground\u0027, com.github.psxpaul.task.JavaExecFork) {","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" description \u0027Creates a background server process for the test report that is to be used by Cypress\u0027","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" dependsOn zipReport, compileJava, processResources, copyCypressConfig, copyMainClasses","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" tasks.compileJava.mustRunAfter(zipReport)","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" tasks.processResources.mustRunAfter(zipReport)","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" workingDir \u003d \u0027build/serveTestReport\u0027","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" main \u003d mainClassName","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" classpath \u003d sourceSets.main.runtimeClasspath","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" args \u003d [\u0027--config\u0027, \u0027./exampleconfig\u0027, \u0027--since\u0027, \u0027d1\u0027, \u0027--view\u0027, \u0027-A\u0027]","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" String versionJvmArgs \u003d \u0027-Dversion\u003d\u0027 + getRepoSenseVersion()","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" jvmArgs \u003d [ versionJvmArgs ]","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" waitForPort \u003d 9000","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":"def installCypress \u003d tasks.register(\u0027installCypress\u0027, com.liferay.gradle.plugins.node.tasks.ExecutePackageManagerTask) {","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" workingDir \u0027frontend/cypress/\u0027","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" args \u003d [\u0027ci\u0027]","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"tasks.register(\u0027cypress\u0027, com.liferay.gradle.plugins.node.tasks.ExecutePackageManagerTask) {","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" dependsOn installCypress, serveTestReportInBackground","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" tasks.serveTestReportInBackground.mustRunAfter(installCypress)","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" workingDir \u003d file(\u0027frontend/cypress/\u0027)","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" args \u003d [\"run-script\", \"debug\"]","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":"tasks.register(\u0027frontendTest\u0027, com.liferay.gradle.plugins.node.tasks.ExecutePackageManagerTask) {","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" dependsOn installCypress, serveTestReportInBackground","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" tasks.serveTestReportInBackground.mustRunAfter(installCypress)","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" workingDir \u003d file(\u0027frontend/cypress/\u0027)","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" args \u003d [\"run-script\", \"tests\"]","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" // Run tests in CI without slow motion","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" if (project.hasProperty(\u0027ci\u0027)) {","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" args \u003d [\"run-script\", \"ci\"]","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":"tasks.withType(Copy) {","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" includeEmptyDirs \u003d true","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":"jacoco {","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" toolVersion \u003d \"0.8.7\"","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":"jacocoTestReport {","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" reports {","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" html.required \u003d true","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" xml.required \u003d true","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" csv.required \u003d false","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" html.destination file(\"${buildDir}/jacocoHtml\")","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" executionData systemtest, frontendTest","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":"tasks.register(\u0027coverage\u0027, JacocoReport)","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":"coverage.configure {","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" sourceDirectories.from files(sourceSets.main.allSource.srcDirs)","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" classDirectories.from files(sourceSets.main.output)","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" executionData.from files(jacocoTestReport.executionData)","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" afterEvaluate {","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" classDirectories.from files(classDirectories.files.collect {","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" fileTree(dir: it, exclude: [\u0027**/*.jar\u0027])","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" })","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" reports {","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" html.required \u003d true","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" xml.required \u003d true","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":"String getRepoSenseVersion() {","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" String repoSenseVersion \u003d project.property(\"version\")","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" if (repoSenseVersion.equals(\"unspecified\")) {","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" repoSenseVersion \u003d versionDetails().commitDistance \u003d\u003d 0 ? versionDetails().lastTag : versionDetails().gitHash","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" return repoSenseVersion","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":"def syncFrontendPublic \u003d tasks.register(\u0027syncFrontendPublic\u0027, Sync) {","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" from \u0027reposense-report\u0027","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" into \u0027frontend/public/\u0027","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" include \u0027**/*.json\u0027","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" includeEmptyDirs \u003d false","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":" preserve {","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" include \u0027index.html\u0027","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" include \u0027favicon.ico\u0027","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"sopa301"},"content":" include \u0027title.md\u0027","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":"def macHotReloadFrontend \u003d tasks.register(\u0027macHotReloadFrontend\u0027, Exec) {","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" dependsOn installFrontend","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" onlyIf {os.isMacOsX()}","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" workingDir \u0027frontend/\u0027","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" commandLine \u0027npm\u0027, \u0027run\u0027, \u0027serveOpen\u0027","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":"def windowsHotReloadFrontend \u003d tasks.register(\u0027windowsHotReloadFrontend\u0027, Exec) {","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" dependsOn installFrontend","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" onlyIf {os.isWindows()}","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" workingDir \u0027frontend/\u0027","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" commandLine \u0027cmd\u0027,\u0027/c\u0027, \u0027START\u0027, \u0027\"hotreload RepoSense frontend\"\u0027, \u0027npm\u0027, \u0027run\u0027, \u0027serveOpen\u0027","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":"def linuxHotReloadFrontend \u003d tasks.register(\u0027linuxHotReloadFrontend\u0027, Exec) {","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" dependsOn installFrontend","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" onlyIf {os.isLinux()}","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" workingDir \u0027frontend/\u0027","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" commandLine \u0027npm\u0027, \u0027run\u0027, \u0027serveOpen\u0027","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":"tasks.register(\u0027hotReloadFrontend\u0027) {","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" dependsOn syncFrontendPublic","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":" finalizedBy windowsHotReloadFrontend","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":" finalizedBy macHotReloadFrontend","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" finalizedBy linuxHotReloadFrontend","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":"// End of hot reload Tasks","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":"void deleteReposAddressDirectory() {","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":" final String REPOS_ADDRESS \u003d \"repos\"","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" def reposDirectory \u003d new File(REPOS_ADDRESS)","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":" reposDirectory.deleteDir()","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":"defaultTasks \u0027clean\u0027, \u0027build\u0027, \u0027systemtest\u0027, \u0027frontendTest\u0027, \u0027coverage\u0027","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":3,"sopa301":1,"-":321}},{"path":"config/blurbs.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/testrepo-Alpha/tree/master","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"Master branch of testrepo-Alpha","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2}},{"path":"docs/about.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"About us\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-3\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"RepoSense is a project based in the [National University of Singapore, School of Computing](http://www.comp.nus.edu.sg/), funded by a _Teaching Enhancement Grant_ from the [NUS Center for Development of Teaching and Learning](https://nus.edu.sg/cdtl).","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"## Current team","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"### [Damith C. Rajapakse](http://www.comp.nus.edu.sg/~damithch)","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"![](https://avatars.githubusercontent.com/u/1673303?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"**Role**: Project Advisor","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":"### [Charisma Kausar](https://www.github.com/ckcherry23)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Senior Developer [2024 January - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":"Contributor [2022 December - 2024 January]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":"### [David Gareth Ong](https://www.github.com/vvidday)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Senior Developer [2024 January - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":"Contributor [2023 January - 2024 January]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":"### [Gokul Rajiv](https://github.com/gok99)","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Senior Developer [2024 January - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":"Contributor [2022 January - 2024 January]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":"### [Marcus Tang Xin Kye](https://www.github.com/MarcusTXK)","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Senior Developer [2024 January - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"asdfghjkxd"},"content":"Contributor [2023 January - 2024 January]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":"## [Chang Si Kai](https://github.com/sikai00)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Contributor [2023 Jan - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"asdfghjkxd"},"content":"### [Alvis Ng](https://www.github.com/supermii2)","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Contributor [2024 January - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"asdfghjkxd"},"content":"### [George Tay Quan Yao](https://www.github.com/jonasongg)","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Contributor [2024 January - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"asdfghjkxd"},"content":"### [Jonas Ong Si Wei](https://www.github.com/jonasongg)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Contributor [2024 January - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"asdfghjkxd"},"content":"### [Poon Yip Hang, Ryan](https://www.github.com/sopa301)","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Contributor [2024 January - ]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"asdfghjkxd"},"content":"## Past Members","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"### [Wang Chao](https://github.com/fzdy1914)","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"![](https://avatars3.githubusercontent.com/u/35621726?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Project Lead [2021 Jan - 2021 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"Maintainer [2020 May - 2021 Jan]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"### [Hsu Zhong Jun](https://github.com/dcshzj)","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"![](https://avatars.githubusercontent.com/u/27919917?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Project Lead [2022 Jan - 2022 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"asdfghjkxd"},"content":"Committer [2021 June - 2021 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"### [Chan Ger Hean](https://github.com/gerhean)","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Committer [2022 Jan - 2022 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":"### [Huang Chengyu](https://github.com/HCY123902)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Project Co-Lead [2023 Jan - 2023 Apr]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"asdfghjkxd"},"content":"Senior Dev [2023 Jan - 2023 Apr]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"asdfghjkxd"},"content":"Committer [2022 Jan - 2022 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"asdfghjkxd"},"content":"Contributor [2021 July - 2021 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"### [Chan Jun Da](https://github.com/chan-j-d)","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Project Co-Lead [2023 Apr- 2023 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"asdfghjkxd"},"content":"Senior Dev [2023 Jan - 2023 Apr]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"asdfghjkxd"},"content":"Committer [2022 Jan - 2022 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"asdfghjkxd"},"content":"Contributor [2021 July - 2021 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"### [Tay Yi Hsuen](https://github.com/yhtMinceraft1010X)","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Senior Dev [2023 Jan - 2023 Apr]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"asdfghjkxd"},"content":"Committer [2022 Jan - 2022 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"asdfghjkxd"},"content":"Contributor [2021 July - 2021 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"### [Zhou Jiahao](https://github.com/zhoukerrr)","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"asdfghjkxd"},"content":"**Role**: Senior Dev [2023 Jan - 2023 Apr]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"asdfghjkxd"},"content":"Committer [2022 Jan - 2022 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"asdfghjkxd"},"content":"Contributor [2021 July - 2021 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"### [Ma Tanghao](https://github.com/harryggg)","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":"Main developer for the initial version [2017 May - 2018 May]","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":"### [Ong Shu Peng](https://github.com/ongspxm)","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"![](https://avatars0.githubusercontent.com/u/1430854?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"**Role**: Area Lead for UI [2018 Dec - 2019 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"Committer [2018 Aug - 2018 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":"Contributor [2018 May - 2018 Aug]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"### [Tan Jun An](https://github.com/yamidark)","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":"![](https://avatars3.githubusercontent.com/u/18352498?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"**Role**: Area Lead for Code Quality [2018 Aug - 2019 April]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"Committer [2018 May - 2018 Aug]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"### [Teng Yong Hao](https://github.com/yong24s)","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"![](https://avatars2.githubusercontent.com/u/2003406?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":"**Role**:","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":"Mentor [2018 Dec - 2020 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"Committer [2018 Aug - 2018 Dec]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":"Contributor [2018 May - 2018 Aug]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"### [Peh Xian Bin, Eugene](https://github.com/eugenepeh)","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":"![](https://avatars.githubusercontent.com/u/19277206?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"**Role**: Maintainer [2020 May - 2021 Jan]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":"Project Lead [2018 May - 2020 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"### [Aditya Agarwal](https://github.com/adityaa1998)","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"Contributor [2018 May - 2018 Aug]","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"### [Apoorva Ullas](https://github.com/apoorva17)","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"Contributor [2018 Aug - 2019 May]","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"### [Chelsey Ong Hee](https://github.com/chel-seyy)","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"Contributor [2018 Dec - 2019 May]","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"### [Gilbert Emerson](https://github.com/emer7)","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"Contributor [2018 Dec - 2019 May]","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":"### [Teo Ming Yi](https://github.com/myteo)","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"Contributor [2018 Dec - 2019 May]","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":"### [Jin Minjia](https://github.com/bluein-green)","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":"**Role**: Contributor [2019 May - 2019 Aug]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"### [James Pang Mun Wai](https://github.com/jamessspanggg)","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"![](https://avatars1.githubusercontent.com/u/32864116?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":"**Role**: Committer [2020 May - 2021 Jan]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":"Contributor [2019 May - 2020 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":"### [Lee Jin Yao](https://github.com/jinyao-lee)","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":"![](https://avatars3.githubusercontent.com/u/35756209?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":"**Role**: Contributor [2019 May - 2020 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"### [Chong Chee Yuan](https://github.com/ccyccyccy)","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":"**Role**: Contributor [2020 January - 2020 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":"### [Ni Tianzhen](https://github.com/niqiukun)","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":"**Role**: Contributor [2020 January - 2020 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":"### [Yash Chowdhary](https://github.com/yash-chowdhary)","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":"![](https://avatars2.githubusercontent.com/u/21968718?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"**Role**: Contributor [2020 January - 2020 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":"### [Liu Yiwen](https://github.com/0blivious)","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":"**Role**: Contributor [2019 August - 2021 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":"### [Tejas Bhuwania](https://github.com/Tejas2805)","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":"![](https://avatars2.githubusercontent.com/u/35946746?s\u003d150\u0026v\u003d4)\u003cbr/\u003e","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":"**Role**: Contributor [2019 August - 2021 August]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":"### [Anubhav](https://github.com/anubh-v)","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":"**Role**: Contributor [2019 September - 2020 August]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":"### [Ang Ze Yu](https://github.com/ang-zeyu)","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":"**Role**: Contributor [2020 January - 2021 May]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":"### [Roland Yu Wenyang](https://github.com/rolandyuwy)","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":"**Role**: Contributor [2021 January - 2021 March]\u003cbr/\u003e","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":"","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":69,"-":169}},{"path":"docs/dg/devOpsGuide.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"DevOps Guide\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"{% from \u0027scripts/macros.njk\u0027 import embed with context %}","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"This page documents the various components that form part of the DevOps infrastructure that RepoSense uses.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"## GitHub Actions","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"[GitHub Actions](https://docs.github.com/en/actions) is a platform that is used by RepoSense for running the test suite and is primarily used for continuous integration and testing. The test suite is stored in `.github/workflows/` and comprises of:","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"- Unit tests (in `src/tests/`)","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"- System tests (in `src/systemtest/`)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"- Frontend tests (in `frontend/cypress/tests/`)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"### Continuous integration","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"All three types of tests in the test suite are run in a single GitHub Actions workflow called \"Continuous Integration\". The steps are defined in [`integration.yml`](https://github.com/reposense/RepoSense/blob/master/.github/workflows/integration.yml) and are split into two types of jobs:","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":"1. Ubuntu/macOS/Windows JDK 11 (`mainbuild`): Runs both unit tests and system tests on JDK 11 running on supported Ubuntu, macOS and Windows versions. For Ubuntu, this job also produces a RepoSense report and the MarkBind documentation website for previewing.","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":"2. Cypress frontend tests (`cypress`): Runs only the frontend tests on JDK 11 running on Ubuntu.","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"The list of supported OS versions are [available on the GitHub Docs website](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources). These jobs should be updated regularly whenever RepoSense supports newer versions of the Java Development Kit (JDK) as well as when new OS versions are made available (via the job OS matrix). Frontend tests are run separately to take advantage of parallel job execution.","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"Some of the jobs execute some commands that are too complicated to be included in the workflow configuration files. Such commands are written in the form of a bash script and are located in the [`config/gh-actions`](https://github.com/reposense/RepoSense/tree/master/config/gh-actions) folder.","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"This workflow is run for both incoming pull requests to any branch as well as direct commits to any branch in the repository.","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"Cypress frontend tests are run against reports generated from config files in `frontend/cypress/config`. It uses the `cypress` branch of the RepoSense repository which is kept independent of `master` and should be updated only when there are new frontend tests that need to be accommodated.","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"### Report and documentation previews","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"For each pull request to any branch in the repository, a RepoSense report and the MarkBind documentation website is generated based on the code submitted in the pull request. This is to facilitate pull request reviewers in being able to quickly preview how the RepoSense report and/or the documentation website will change after the pull request is merged.","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"Due to [security considerations in preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests), the deployment of the report and documentation previews were split across two workflows in [pull request #1411](https://github.com/reposense/RepoSense/pull/1411):","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"1. Surge.sh pending build (defined in [`pending.yml`](https://github.com/reposense/RepoSense/blob/master/.github/workflows/pending.yml)): Used for gathering information about the pull request and update the pull request checklist to indicate that the previews are pending.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"2. Surge.sh build preview (defined in [`surge.yml`](https://github.com/reposense/RepoSense/blob/master/.github/workflows/surge.yml)): Used for actually deploying the RepoSense report and documentation website to Surge.sh and updating the pull request checklist to link to the preview websites.","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"The previews are recognised as GitHub deployments and are named `dashboard-$PRNUMBER` and `docs-$PRNUMBER`, where `$PRNUMBER` is the pull request number. Once a preview is ready, the reviewer would be able to click on \"View deployment\" or \"Show environments\" in the pull request to open the preview websites.","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"Both the \"Surge.sh pending build\" and \"Continuous Integration\" workflows produce an artifact respectively, which is then downloaded by the \"Surge.sh build preview\" workflow to be deployed to Surge.sh. Due to limitations in GitHub Actions in determining the workflow execution order, the \"Surge.sh pending build\" workflow is assumed to have been completed before the \"Continuous Integration\" workflow is completed.","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"This task is not performed on commits to the repository, as there is no need to do so.","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"After the pull request is closed or merged, the Surge.sh deployments are retained, while the GitHub environments for them are cleared by another workflow \"Clear deployments for closed pull requests\" (defined in [`delete-deploy.yml`](https://github.com/reposense/RepoSense/blob/master/.github/workflows/delete-deploy.yml)). The workflow uses [`delete-deploy.sh`](https://github.com/reposense/RepoSense/blob/master/config/gh-actions/delete-deploy.sh) (found in the `config/gh-actions/` folder) to remove the environments on GitHub, and to leave a comment on the pull request with links to the Surge.sh previews for later reference.","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"### GitHub Pages","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"This task builds the MarkBind documentation website on every push to the `master` branch. The steps are defined in [`gh-pages.yml`](https://github.com/reposense/RepoSense/blob/master/.github/workflows/gh-pages.yml).","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"### Stale pull requests","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"This task automates the cleaning up of the pull requests by automatically marking inactive pull requests as stale and subsequently closing them. The steps and configurations are defined in [`stale.yml`](https://github.com/reposense/RepoSense/blob/master/.github/workflows/stale.yml) and the job is triggered automatically once per day.","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"## Codecov","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"[Codecov](https://app.codecov.io/gh/reposense/RepoSense) is a platform for checking the code coverage status of the project and the pull request patch. It runs automatically on each pull request and the settings are located in [`codecov.yml`](https://github.com/reposense/RepoSense/blob/master/codecov.yml).","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"## Surge.sh","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"Surge.sh is a platform for hosting the RepoSense report and documentation preview builds. The deployment is automatically performed by the \"Surge.sh build preview\" job using the [`deploy.sh`](https://github.com/reposense/RepoSense/blob/master/config/gh-actions/deploy.sh) script in the `config/gh-actions/` folder.","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"For authentication, two secrets are stored and used in GitHub Actions:","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"1. `SURGE_LOGIN` - Holds the email address to use for the Surge.sh account","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"2. `SURGE_TOKEN` - Holds the secret account token generated for the above account (generated using `surge token`)","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"The `surge` command automatically detects the existence of these two environment variables and use them for authentication when deploying the RepoSense report and documentation build previews.","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"Currently, deployments are kept forever, even after the pull request is merged or closed. There is currently no existing functionality to automatically clean up deployments after they are no longer useful.","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":84}},{"path":"docs/dg/learningBasics.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Learning the Basics\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"{% from \u0027scripts/macros.njk\u0027 import embed, step with context %}","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"This is a learning guide for developers who are new to RepoSense.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"warning\" seamless\u003e","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"Depending on what you know already and what you would like to work on (i.e., backend or frontend), you may find certain sections irrelevant to you and you can skip them accordingly.","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"## Backend","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"This section is for developers who want to contribute to the backend of RepoSense. You may skip this section if you want to contribute as a pure frontend developer. Before you get started, you should have set up the project on your computer according to [the _Setting up_ page](settingUp.html).","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"The backend implementation of RepoSense is located in `src/main`.","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"{{ step(1) }} **Know Java**","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":"The RepoSense backend is mostly written in `Java 11`.","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":"1. You need to have a basic knowledge of Java before getting started, including its syntax, [API](https://docs.oracle.com/javase/11/docs/api/), and certain frameworks such as [JUnit](https://se-education.org/learningresources/contents/java/JUnit.html).","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"1. Once you are familiar with the basic syntax, you may wish to learn more advanced topics such as [concurrency](https://se-education.org/learningresources/contents/java/JavaConcurrency.html), [synchronization](https://se-education.org/learningresources/contents/java/JavaSynchronization.html), and [streams](https://se-education.org/learningresources/contents/java/streams-an-introduction.html). These topics can help you to understand certain part of the backend implementation (concurrent cloning and analysis of multiple repositories, etc.). They are optional but you may find them useful when working on certain issues.","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"{{ step(2) }} **Learn the RepoSense backend architecture**","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"You may want to refer to the [backend architecture](architecture.html) to understand the RepoSense backend implementation logic.","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"To gain a more concrete idea of how the backend works, you can use the IDE Debugger and run RepoSense under the debugging mode to trace through the steps of how arguments from command line and CSV files are parsed, how repositories are cloned and analyzed, and how the JSON files are generated.","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"warning\" seamless\u003e","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"The information below is for **Intellij**. If you are using a different IDE, you may need to check the documentation of how to use the debugger separately.","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"* Check the [debugging guide](https://www.jetbrains.com/help/idea/debugging-your-first-java-application.html) if you are not familiar with debugging in **Intelij**.","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"* In `RepoSense.java`, the main class, set appropriate break points. Here are some relevant method calls in the `main` method at which you can set the breakpoints:","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" * `ArgsParser.parse(args)`: RepoSense parses the CLI arguments from the command given by the user.","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" * `getRepoConfigurations(cliArguments)`: RepoSense gets the configuration for each repository by parsing the CSV files.","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" * `getReportConfigurations(cliArguments)`: RepoSense gets the report configuration (report title) by parsing the JSON files.","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" * `ReportGenerator.generateReposReport(...)` This is where the bulk of the work is conducted, including cloning repositories, analyzing repositories, and generating the JSON files to be used by the report.","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"* To supply debugging arguments, right-click on the run button of `RepoSense.main`, click `Modify Run Configuration`, and add [CLI flags](https://reposense.org/ug/customizingReports.html#customize-using-cli-flags) in `Program arguments`. Examples: `--since 16/12/2021 --until 18/12/2022`; `-s 16/12/2021 -u 18/12/2022`.","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"When tracing through the program execution, you can cross reference the architecture diagram and Javadoc of the class and method to check your understanding of the procedure.","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"{{ step(3) }} **Gain some hands-on experience**","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"Here are some small tasks for you to gain some basic knowledge of the code related to the RepoSense backend. You can do each in a separate branch in your local copy of the code.","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"\u003cpanel header\u003d\"**Task 1: Add a flag to pretty-print the JSON file**\" type\u003d\"primary\"\u003e","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" **Task 1: Add a flag to pretty-print the JSON file**","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" 1. [Generate a report locally](../ug/generatingReports.html#generating-reports-locally).","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" 2. Open a generated JSON file. For example, you can open `summary.json` of the generated report.","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" 3. You should see that the content in the JSON is compactly organized in 1 single line. This may affect readability for developer who wants to investigate the content in the JSON file.","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" **Your Task**","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" Add a new CLI argument `--use-json-pretty-printing`, such that when a user runs the command `java -jar RepoSense.jar --repos LIST_OF_REPO_URLS --view --use-json-pretty-printing`, the JSON files `summary.json`, `authorship.json`, and `commits.json` will be printed in a more readable way.","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 1\"\u003e","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" Try to understand the parsing process of the Command Line Arguments, which starts from `ArgsParser.parse(args)` in `RepoSense.java` and uses `ArgumentParser` to capture the arguments in the command string.","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" Therefore, the first step you can take is to add the following to `ArgsParser`.","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" public static final String[] JSON_PRINT_MODE_FLAGS \u003d new String[]{\"--use-json-pretty-printing\", \"-j\"};","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" In `getArgumentParser` method, add the following content to make `ArgumentParser` capture the new argument.","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" parser.addArgument(JSON_PRINT_MODE_FLAGS)","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" .dest(JSON_PRINT_MODE_FLAGS[0])","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" .help(\"A flag to use json pretty printing when generating the json files.\");","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 2\"\u003e","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" After the step in hint 1, the argument is captured by `ArgumentParser`. Now make corresponding changes to `CliArguments.java`, `ConfigCliArguments.java`, and the `parse` method in `ArgsParser.java` to make the return result of `parse` include the new argument.","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" 1. Add the following content to `CliArguments` to include `isPrettyPrintingUsed` as a new attribute to the class.","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" protected boolean isPrettyPrintingUsed;","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" public boolean isPrettyPrintingUsed() {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" return isPrettyPrintingUsed;","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" 2. In the constructor of `ConfigCliArguments`, add `isPrettyPrintingUsed` as a new parameter of the method, and add the following instruction to the method body.","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" this.isPrettyPrintingUsed \u003d isPrettyPrintingUsed;","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" 3. In the `parse` method of `ArgsParser`, add the following instruction to get `isJsonPrettyPrintingUsed` from `ArgmentParser`.","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" boolean isJsonPrettyPrintingUsed \u003d results.get(JSON_PRINT_MODE_FLAGS[0]);","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" 4. Additionally, change the return statement of the `parse` method so that the `ConfigCliArguments` object returned will now include `isJsonPrettyPrintingUsed`.","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 3\"\u003e","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" After the steps in hint 1 and hint 2, the result returned from `ArgsParser.parse(args)` in `RepoSense.java` should be able to capture the new argument when it is specified in the command.","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" The next step is to extract the argument from the `CliArguments` object, and pass it to JSON file writer to notify it of the specified printing mode.","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" Note that the creation and writing of JSON file is invoked in `ReportGenerator.generateReposReport`, which calls `FileUtil.writeJsonFile` directly to write the `summary.json` file or indirectly (Check `generateIndividualRepoReport` and `generateEmptyRepoReport`) to write the `commits.json` or `authorship.json` files of individual repositories.","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" Therefore, the task now is to make `FileUtil.writeJsonFile` switch between different printing mode.","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" 1. You can find out what [`Gson.setPrettyPrinting`](https://www.javadoc.io/doc/com.google.code.gson/gson/2.8.5/com/google/gson/GsonBuilder.html#setPrettyPrinting--) does and how it can be used in the `writeJsonFile` method of [`FileUtil.java`](https://github.com/reposense/RepoSense/blob/master/src/main/java/reposense/util/FileUtil.java).","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" 2. Add the following content to `FileUtil`.","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" private static boolean isPrettyPrintingUsed \u003d false;","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" 3. In the `writeJsonFile` method, Replace the creation of the `Gson` object with the following instructions.","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" GsonBuilder gsonBuilder \u003d new GsonBuilder()","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" .registerTypeAdapter(LocalDateTime.class, (JsonSerializer\u003cLocalDateTime\u003e) (date, typeOfSrc, context)","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" -\u003e new JsonPrimitive(date.format(DateTimeFormatter.ofPattern(GITHUB_API_DATE_FORMAT))))","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" .registerTypeAdapter(FileType.class, new FileType.FileTypeSerializer());","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" Gson gson;","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" if (isPrettyPrintingUsed) {","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" gson \u003d gsonBuilder.setPrettyPrinting().create();","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" gson \u003d gsonBuilder.create();","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" 4. To notify `FileUtil` of the switch between different printing mode, add the following method to `FileUtil`.","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" public static void setPrettyPrintingMode(boolean isPrettyPrintingAdopted) {","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" isPrettyPrintingUsed \u003d isPrettyPrintingAdopted;","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" 5. It is now possible to notify `FileUtil` of the printing mode switch by extracting the argument from the `CliArguments` object in the `main` method of `RepoSense.java` and passing it to the corresponding method in `FileUtil`.","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" FileUtil.setPrettyPrintingMode(cliArguments.isPrettyPrintingUsed());","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" Now the parsing of argument and changing of printing mode should have been completed.","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Suggested solution\"\u003e","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" There is more than 1 way to achieve this. By combining the changes in hint 1, hint 2, and hint 3, you should be able to get a possible solution.","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" Try the command `java -jar RepoSense.jar --repos https://github.com/reposense/RepoSense.git --view --use-json-pretty-printing` and check the generated JSON files to see if it works.","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"\u003c/panel\u003e","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"\u003cpanel header\u003d\"**Task 2: Add exception message during repository cloning to the summary view**\" type\u003d\"primary\"\u003e","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" **Task 2: Add exception message during repository cloning to the summary view**","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" 1. Open a [report](https://dashboard-1507-pr-reposense-reposense.surge.sh/).","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" 2. You should see that there is a red panel in the summary view containing the following message, indicating that there is an issue in the cloning process of the repository `reposense/testrepo-Empty`.","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" reposense/testrepo-Empty[master]","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" Failed to clone from https://github.com/reposense/testrepo-Empty.git","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" **Your task**","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" For the repository with the message `Failed to clone from ...`, find out what exception causes this cloning error, and add that exception message to the panel as well.","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 1\"\u003e","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" You can find out what [`ErrorSummary.java`](https://github.com/reposense/RepoSense/blob/master/src/main/java/reposense/report/ErrorSummary.java) and [`RepoCloner.java`](https://github.com/reposense/RepoSense/blob/master/src/main/java/reposense/report/RepoCloner.java) do, and where they are used.","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 2\"\u003e","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" Try to understand the cloning process.","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" * The cloning process is invoked by [`RepoGenerator.java`](https://github.com/reposense/RepoSense/blob/master/src/main/java/reposense/report/ReportGenerator.java) in the `cloneAndAnalyzeRepos` method, which subsequently calls `cloneBare` in `RepoCloner.java` to start the cloning.","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" * The `cloneAndAnalyzeRepos` method will then call `getRepoLocation` in `RepoCloner.java` to try to get the repository location.","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" * Beneath the surface, `RepoCloner` will first execute `spawnCloneProcess` and then execute `waitForCloneProcess` when it is invoked by `RepoGenerator` for the first and second time respectively.","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 3\"\u003e","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" In `RepoCloner`, the potential exceptions in `spawnCloneProcess` and `waitForCloneProcess` are caught but not recorded by `ErrorSummary`.","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Suggested solution\"\u003e","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" There is more than 1 way to achieve this. One solution is shown as the following:","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" Add this to the catch block of `spawnCloneProcess` and `waitForCloneProcess`, so that the message will be captured in `summary.json`.","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"asdfghjkxd"},"content":" ```java","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" ErrorSummary.getInstance().addErrorMessage(config.getDisplayName(), e.getMessage());","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":"\u003c/panel\u003e","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":"This is only for your practice. There is no need for you to commit this change and submit it in a pull request.","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":"{{ step(4) }} **Next Step**","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":"You can now proceed to learn the [contributing workflow](workflow.html).","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":"## Frontend","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":"This section is for developers who want to contribute to the frontend of RepoSense. You may skip this section if you want to contribute as a pure backend developer.","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":"The frontend implementation of RepoSense is located in `frontend/src`.","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":"{{ step(1) }} **Learn the necessary tools**","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":"It is necessary for you to learn the basics of Vue.js, Pug, and SCSS before working on the project.","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":"### Vue.js","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":"Vue.js uses JavaScript as its programming language. Before learning **Vue.js**, you may need to first get yourself familiar with JavaScript syntax first.","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":"You can refer to the [Javascript documentation](https://devdocs.io/javascript/) to learn the basic syntax. There are plenty of other resources available and please feel free to find the resource most suitable for you.","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":"RepoSense uses **Vue.js** (Vue3) in its front-end implementation. In particular, major user interface components, such as [summary view](report.html#summary-view-v-summary-js), [authorship view](report.html#authorship-view-v-authorship-js), and [zoom view](report.html#zoom-view-v-zoom-js), are implemented as Vue components. The corresponding source files are in `frontend/src`.","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":"* If you are new to Vue.js, you may want to start learning by looking at [the beginner tutorial](https://www.vuemastery.com/courses/intro-to-vue-js/).","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":"* You can dive deeper later by checking the [Vue.js documentation](https://vuejs.org/guide/introduction.html) to learn about essential concepts such as component life cycle hooks, and component properties.","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":"* It is recommended if you can work on some small projects first to gain more solid understanding of Vue.js.","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"warning\" seamless\u003e","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":"The guide above uses HTML as the component template, which is not the case with RepoSense. You may wish to learn more about [Pug](#pug) and its connection with HTML.","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":"#### Vuex","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":"RepoSense uses **Vuex** for the state management of the Vue components.","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":"* You can check the [Vuex guide](https://vuex.vuejs.org/guide/#the-simplest-store) to find out how Vuex can be used in a Vue project.","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":"* There is also a [course](https://vueschool.io/courses/vuex-for-everyone) available that will walk you through an example of creating Vue application with Vuex.","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":"### Pug","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":"RepoSense uses Pug files as the template of each Vue component. The corresponding HTML templates will later be generated from the Pug files by [spuild](https://github.com/ongspxm/spuild2) when generating the report.","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":"Since Pug is used to generate the HTML template, it is recommended that you have a basic knowledge of HTML before starting to learn Pug. Once you understand how HTML works, you can proceed to focus on how Pug is translated into HTML.","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":"* You can refer to the [official documentation](https://pugjs.org/api/getting-started.html) or [this tutorial](https://www.youtube.com/watch?v\u003dkt3cEjjkCZA) to learn about the syntax of pug and how it is translated into HTML.","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":"* To get a hands-on experience, here is a [Pug to HTML converter](https://pughtml.com/). Feel free to try out a couple of examples on your own.","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":"### Scss","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":"SCSS is used for styling the Pug template. The corresponding CSS will later be generated from the SCSS files by [spuild](https://github.com/ongspxm/spuild2) when generating the report. The corresponding source files are in `frontend/src/styles`.","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":"It is recommended that you have a basic knowledge of CSS before starting to learn SCSS. Once you understand how CSS works, you can proceed to focus on how SCSS is translated into CSS.","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":"* You can refer to the [style rules](https://sass-lang.com/documentation/style-rules) to learn about the similarities and differences between SCSS and CSS.","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":"{{ step(2) }} **Learn the RepoSense frontend architecture**","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":"* You may want to refer to the [frontend architecture](report.html#report-architecture) to understand the implementation.","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":"* Another way for you to understand the frontend is to use **Vue.js devtools** to learn how the various Vue Components interact with each other. You can refer to the [frontend debugging guide](workflow.html#debugging-front-end) for more information.","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":"{{ step(3) }} **Gain some hands-on experience**","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":"Here are some small tasks for you to gain some basic knowledge of the code related to the RepoSense frontend. You can do each in a separate branch in your local copy of the code.","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":"\u003cpanel header\u003d\"**Task 1: Highlight the selected author name in the summary view**\" type\u003d\"primary\"\u003e","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":" **Task 1: Highlight the selected author name in the summary view**","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" 1. Open a [report](https://dashboard-1507-pr-reposense-reposense.surge.sh/).","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" 2. Randomly open the authorship contribution panel of an author (The icon is `\u003c/\u003e`).","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":" 3. You should see that, after you open the panel, the author title background on the chart panel becomes yellow, and the background of the `\u003c/\u003e` icon you clicked becomes green.","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" **Your Task**","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" Make corresponding changes to `summary charts` so that in step 3, after opening the panel, the font colour of the author title (in the form of `authorDisplayName(authorName)`) on the chart panel also becomes green.","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 1\"\u003e","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" Try to locate where the author title is in [`c-summary-charts.vue`](https://github.com/reposense/RepoSense/blob/master/frontend/src/components/c-summary-charts.vue).","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 2\"\u003e","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":" You can check what `activeUser` and `activeRepo` do in [`c-summary-charts.vue`](https://github.com/reposense/RepoSense/blob/master/frontend/src/components/c-summary-charts.vue).","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 3\"\u003e","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":" Refer to how changes are made to the title background and icon background in [`c-summary-charts.vue`](https://github.com/reposense/RepoSense/blob/master/frontend/src/components/c-summary-charts.vue).","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 4\"\u003e","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"-"},"content":" Some of the CSS styling for `c-summary-charts.vue` is in [`style.scss`](https://github.com/reposense/RepoSense/blob/master/frontend/src/styles/style.scss). You can add corresponding class selector if necessary.","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Suggested solution\"\u003e","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":" There is more than 1 way to achieve this. One solution is shown as the following:","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":" Add this to `c_summary.scss`.","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"asdfghjkxd"},"content":" ```css","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"-"},"content":" .active-text {","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"-"},"content":" color: mui-color(\u0027green\u0027);","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"-"},"content":" In `c-summary-charts.vue`, locate `summary-chart__title--name`, and add the following to its `v-bind:class` attribute map.","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"-"},"content":" \u0027active-text\u0027: user.name \u003d\u003d\u003d activeUser \u0026\u0026 user.repoName \u003d\u003d\u003d activeRepo","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":"\u003c/panel\u003e","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":"\u003cpanel header\u003d\"**Task 2: Add tooltip for file path in authorship panel**\" type\u003d\"primary\"\u003e","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":" **Task 2: Add tooltip for file path in authorship panel**","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"-"},"content":" 1. Open a [report](https://dashboard-1507-pr-reposense-reposense.surge.sh/).","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"-"},"content":" 2. Randomly open the authorship contribution panel of an author (The icon is `\u003c/\u003e`).","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"-"},"content":" 3. Select a random file in the authorship contribution panel, and hover your mouse on an icon on the file title, a corresponding tooltip will show up, suggesting what the purpose of the icon is. However, when you hover the mouse over the file path on the file title, there is no tool tip shown, even if clicking the path itself will also trigger some event.","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" \u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"-"},"content":" For example, if you open the authorship contribution panel of an author in `reposense/RepoSense[master]` and hover the mouse over the triangular icon beside the file path `src/main/java/reposense/model/Author.java`, you should see a tooltip saying `Click to hide file details` above the icon. However, when you hover the mouse over the file path `src/main/java/reposense/model/Author.java`, there is no corresponding tooltip shown.","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"-"},"content":" \u003c/box\u003e","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"-"},"content":" **Your Task**","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"-"},"content":" Make corresponding `authorship contribution panel` so that in step 3, when hovering your mouse over the file path:","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":" * A tip saying `This is the file path. Click to hide file details` will show up when the file details are shown","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"-"},"content":" * A tip saying `This is the file path. Click to show file details` will show up when the file details are not shown.","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 1\"\u003e","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"-"},"content":" Try to locate where the file title and the file path are in [`c-authorship.vue`](https://github.com/reposense/RepoSense/blob/master/frontend/src/views/c-authorship.vue).","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 2\"\u003e","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"-"},"content":" You can check how tooltip is added for the triangular icon in the file title in [`c-authorship.vue`](https://github.com/reposense/RepoSense/blob/master/frontend/src/views/c-authorship.vue).","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 3\"\u003e","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"-"},"content":" You can check what `file.active` does and how it is used to switch between different tooltip messages when hovering the mouse on the corresponding icon.","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Suggested solution\"\u003e","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"-"},"content":" There is more than 1 way to achieve this. One solution is shown as the following:","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"-"},"content":" 1. In `c-authorship.vue`, locate the section that iterates through each file in `selectedFiles`.","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"-"},"content":" 2. There is a specific portion of the section that renders the toggle icon, the file index, and the file path of the file title.","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"-"},"content":" 3. Try to locate the `span` tag that renders `file.path`, and wraps it inside a new `tooptip`.","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"-"},"content":" 4. In the `tooltip`, use the following instructions to handle the switch of tooltip message.","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"-"},"content":" span.tooltip-text(v-show\u003d\"file.active\") This is the file path. Click to hide file details","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"-"},"content":" span.tooltip-text(v-show\u003d\"!file.active\") This is the file path. Click to show file details","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"-"},"content":"\u003c/panel\u003e","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"-"},"content":"\u003cpanel header\u003d\"**Task 3: Add tooltip for commit message title in zoom panel**\" type\u003d\"primary\"\u003e","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"-"},"content":" **Task 3: Add tooltip for commit message title in zoom panel**","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"-"},"content":" 1. Open a [report](https://dashboard-1507-pr-reposense-reposense.surge.sh/).","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"-"},"content":" 2. Randomly open the commits panel of an author.","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"-"},"content":" 3. Select a random commit in the commits panel, and hover your mouse on the icons on the commit title, there is no tooltip shown saying that it will redirect you to a different site.","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"-"},"content":" \u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"-"},"content":" For example, given the [report](https://dashboard-1507-pr-reposense-reposense.surge.sh/?search\u003d\u0026sort\u003dgroupTitle\u0026sortWithin\u003dtitle\u0026since\u003d\u0026timeframe\u003dcommit\u0026mergegroup\u003d\u0026groupSelect\u003dgroupByRepos\u0026breakdown\u003dfalse\u0026tabOpen\u003dtrue\u0026tabType\u003dzoom\u0026zA\u003deugenepeh\u0026zR\u003dreposense%2FRepoSense%5Bmaster%5D\u0026zACS\u003d99.28792569659443\u0026zS\u003d2017-10-09\u0026zFS\u003d\u0026zU\u003d2021-04-04\u0026zMG\u003dundefined\u0026zFTF\u003dcommit\u0026zFGS\u003dgroupByRepos\u0026zFR\u003dfalse), if you hover the mouse over the commit title `README: add acknowledgements section (#978)`, there is no corresponding tooltip shown, but when you click on the commit title, you will be redirected to a different site to see the commit details.","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"-"},"content":" \u003c/box\u003e","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"-"},"content":" **Your Task**","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"-"},"content":" Make corresponding changes to `zoom panel` so that in step 3, when hovering your mouse over the commit title, a tooltip saying `Click to view the detailed file changes in the commit` will show up on the commit title.","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 1\"\u003e","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"-"},"content":" Try to locate where the commit title is in [`c-zoom.vue`](https://github.com/reposense/RepoSense/blob/master/frontend/src/views/c-zoom.vue).","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 2\"\u003e","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"-"},"content":" You can check how tooltip is added for other icons in [`c-zoom.vue`](https://github.com/reposense/RepoSense/blob/master/frontend/src/views/c-zoom.vue).","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Hint 3\"\u003e","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"-"},"content":" Check what `selectedCommits` does and how the link and commit title of each commit is retrieved.","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"-"},"content":" \u003cpanel header\u003d\"Suggested solution\"\u003e","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"-"},"content":" There is more than 1 way to achieve this. One solution is shown as the following:","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"-"},"content":" 1. In `c-zoom.vue`, locate the section that iterates through each `day` in `selectedCommits`.","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"-"},"content":" 2. The component that helps render the commit message title should be an `a` tag which uses the `getSliceLink` method to set the link to the commit details and uses `slice.messageTitle` to show the commit message title.","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"-"},"content":" 3. Wrap the `a` tag in a new `tooltip`.","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"-"},"content":" 4. In the `tooltip`, add the following content to show the tooltip message.","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"-"},"content":" span.tooltip-text Click to view the detailed file changes in the commit","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"-"},"content":" ```","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"-"},"content":" \u003c/panel\u003e","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"-"},"content":"\u003c/panel\u003e","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"-"},"content":"This is only for your practice. There is no need for you to commit this change and submit it in a pull request.","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"-"},"content":"{{ step(4) }} **Next Step**","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"-"},"content":"You can now proceed to learn the [contributing workflow](workflow.html).","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"-"},"content":"## DevOps","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"supermii2"},"content":"If you want to understand and contribute to the DevOps aspect of RepoSense, you can refer to the [DevOps guide](devOpsGuide.html) for more information.","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":13,"supermii2":1,"-":474}},{"path":"docs/dg/projectManagement.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Project management\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"This page contains information about project management tasks. The target audience is senior developers (and above).","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"## Merging PRs","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"* **Use the \u0027squash and merge\u0027 option** unless the situation warrants a different option.","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"* **For the merge commit**, follow conventions at [_GitHub conventions_ @SE-EDU](https://se-education.org/guides/conventions/github.html).","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"## Making a release on GitHub","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"Before making a release, please check the following prerequisites:","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":"* Ensure that you have **JDK `11`** installed (\u003d\u003dNot other major release versions such as **JDK `12`** or **JDK `13`**\u003d\u003d).","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"* Ensure that the `JAVA_HOME` environment variable is correctly set to your JDK installation directory. You can refer to the [JDK Installation Guide](https://docs.oracle.com/cd/E19182-01/821-0917/inst_jdk_javahome_t/index.html).","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"* Ensure that you have merged the [upstream](https://github.com/RepoSense/reposense) `master` branch into both the local and upstream `release` branch according to the following steps:","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" 1. In your local repository, reset your `master` branch to be exactly the same as the upstream `master` branch.","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" 1. Switch to the local `release` branch, and merge the `master` branch into it with `git merge master --no-ff` (no fast forward to keep the commit history for releases).","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" 1. Push the local `release` branch directly to the [upstream `release` branch](https://github.com/reposense/RepoSense/tree/release) (make sure you have the push access).","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"To make a release for RepoSense on GitHub, please follow the `Creating a release` section in the [GitHub Docs](https://docs.github.com/en/github/administering-a-repository/managing-releases-in-a-repository).\u003cbr\u003e","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"Take note of the following when making the release according to the above guide:","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"* When entering a release version number, use semantic versioning with some small tweaks:","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" * Use `MAJOR.MINOR` as the version number when the release includes new features and/or major changes.","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" * Use `MAJOR.MINOR.PATCH` as the version number when the release only includes bug fixes and/or minor changes.","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" * Append `rc` to the version number to indicate that the release is a pre-release that is not ready to be used in production.","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"* Enter the release title as `RepoSense vxxx` where `xxx` is the version number. Enter the release description by referring to the previous [RepoSense releases](https://github.com/reposense/RepoSense/releases).","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"* Before launching the release, generate the `RepoSense.jar` file and attach it to the release.","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" 1. Switch to the `release` branch.","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" 1. In the terminal, change the directory to the project root directory.","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"asdfghjkxd"},"content":" 1. Run `gradlew --version` to check that the JDK version is 11.","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" 1. Run `gradlew shadowJar`, and the Jar file will be generated at `{buildDir}/jar/`.","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" 1. Check that the Jar file is working. You may need to check that the report can be generated from the Jar file both locally and remotely by following the [Generating Reports Guide](../ug/generatingReports.html).","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"After making the release, please also remember to deploy the production website using the [deploy guide](#deploying-the-production-website).","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"## Deploying the production website","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"We have two versions of the website:","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"1. **Production website** at https://reposense.org","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" * matches the latest released version","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" * deployed manually after each new release","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"1. **Dev website** at https://reposense.org/RepoSense","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" * matches the latest `master` branch","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" * deployed automatically by Travis whenever the `master` branch is updated","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"The production website differs from the dev website in some ways, e.g.,","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"* It has a `CNAME` file (to indicate that it is the target destination for the `reposense.org` domain name)","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"* Its DG pages show a warning that it is not the latest version of the DG.","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"MarkBind mainly manages these variations via the `site.config` file. That is why the `site.config` file in the `release` branch is slightly different from the one in the `master` branch.","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"After each release, do the following steps to deploy the production website:","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"1. Switch to the `release` branch","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"1. `cd docs`","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"1. `markbind build`","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"1. `markbind deploy` (make sure you have the push access to https://github.com/reposense/reposense.github.io)","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"1. After a few minutes, check https://reposense.org to ensure it has been updated as intended.","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"## Hot patching after the release","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"If critical bugs are found in the release, take the following steps to hot patch it:","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"1. Switch to the `release` branch.","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"1. Implement the fixes, commit them, and create a pull request from your forked `release` branch to the upstream `release` branch.","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"1. After merging, release a new version of RepoSense with the `release` branch according to the above guide.","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"1. Merge the `release` branch back into the `master` branch by creating a separate pull request.","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":85}},{"path":"docs/dg/settingUp.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Setting up\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"{% from \u0027scripts/macros.njk\u0027 import embed with context %}","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"**Prerequisites:**","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"* **JDK `11.0.21+9`** up to **`17`** ([download :fas-download:](https://www.oracle.com/technetwork/java/javase/downloads/index.html)).","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"sopa301"},"content":"* **Node.js** **`18`** up to the latest minor version of **`19`** ([download :fas-download:](https://www.npmjs.com/get-npm)).","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"* **git `2.23`** or later ([download :fas-download:](https://git-scm.com/downloads)).","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" \u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"supermii2"},"content":" Type `java -version`, `node -v` and `git --version` respectively on your OS terminal and ensure that you have the correct version of each prerequisite installed.","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" \u003c/box\u003e","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"## Getting the code","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"1. **Fork** the [reposense/reposense](https://github.com/reposense/RepoSense) repo.","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"1. **Clone** the fork to your computer.","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"## Setting up the IDE","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"warning\" seamless\u003e","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"The recommended IDE is **Intellij IDEA**. While it is not compulsory to use it, note that we will not be able to help you troubleshoot IDE problems if you use any other IDE.","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"1. **Ensure you have configured IDEA for the correct JDK**, as explained in [this tutorial](https://se-education.org/guides/tutorials/intellijJdk.html).","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"1. **Import the project as a Gradle project**, as explained in [this tutorial](https://se-education.org/guides/tutorials/intellijImportGradleProject.html).","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"## Verifying the setup","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"This project is already configured to use Gradle for build automation. If you are new to Gradle, see [this tutorial](https://se-education.org/guides/tutorials/gradle.html) to learn how to use it.","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"1. Open a command prompt and navigate to the project root.","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"1. Run `gradlew clean build` (`./gradlew clean build` if you on a Unix-like OS), and ensure that it finishes with a `BUILD SUCCESSFUL` message.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"1. Run the tests using the `gradlew test systemtest` command and ensure it succeeds too.","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"1. You can also try running the app using code, as given in the panel below.","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"{{ embed(\u0027Developer guide → **Workflow → Running the app from code**\u0027, \u0027workflow.md#section-running-from-code\u0027, level\u003d2) }}","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"## Before you start coding","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"... read the [Workflow](workflow.html) section.","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"supermii2":1,"sopa301":1,"-":53}},{"path":"docs/dg/styleGuides.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Appendix: Style guides\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"Our coding standards are mostly based on those at [se-education.org/guides](https://se-education.org/guides).","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"* [**CSS** coding standard](https://se-education.org/guides/conventions/css.html)","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"* [**Files/folders** naming conventions](https://se-education.org/guides/conventions/files.html)","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"* [**HTML** coding standard](https://se-education.org/guides/conventions/html.html)","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"* [**Markdown/MarkBind** coding standard](https://se-education.org/guides/conventions/markdown.html)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"* [**Java** coding standard](https://se-education.org/guides/conventions/java/index.html)","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"* [**JavaScript** coding standard](https://se-education.org/guides/conventions/javascript.html)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"* **TypeScript**: In addition to the JavaScript coding standard, follow the [**recommended ESLint rules**](https://typescript-eslint.io/rules/) and the formatting rules [described below](#typescript-specific-formatting).","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"* **Vue Components**: Follow the [**Vue style guide**](https://vuejs.org/style-guide/), up to the **Recommended** section.","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"* **Documentation**: Follow the [**Google developer documentation style guide**](https://developers.google.com/style).","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"## Note on Ternary Operators:","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"Ternary operators can be used to shorten if-else blocks such as this:","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":"```java","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"LocalDateTime min \u003d ARBITRARY_FIRST_COMMIT_DATE_UTC.withZoneSameInstant(zoneId).toLocalDateTime();","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"if (!commitInfos.isEmpty()) {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" min \u003d commitInfos.get(0).getTime();","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"return min;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"The result would look something like this:","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":"```java","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"return (commitInfos.isEmpty())","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" ? ARBITRARY_FIRST_COMMIT_DATE_UTC.withZoneSameInstant(zoneId).toLocalDateTime()","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" : commitInfos.get(0).getTime();","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"To preserve readability, it is recommended that if-else blocks should only be","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"converted to ternary operators if the resultant code can be kept at most 3 lines long","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"(in accordance to the coding standard).","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"## Additional Javadoc requirements:","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"In addition to what has been mentioned in the [**Java** coding standard (SE-EDU)](https://se-education.org/guides/conventions/java/index.html) and [**Google Java Style Guide**](https://google.github.io/styleguide/javaguide.html), we also stipulate the following standards for Javadoc:","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"* If Javadoc is written for a method, all input parameters should be described in the Javadoc, either in the description with `@code tags` or through `@param` block tags.","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" * If `@param` block tags are used, they must be used for all parameters.","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" * This is not necessary (although still recommended) for methods with `@Override` annotations if Javadoc is used. However, if the method that is being overriden is part of your code and has Javadoc, all parameters must be described.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"Negative Examples:","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"asdfghjkxd"},"content":"```java","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"asdfghjkxd"},"content":"// Not okay (Only mentions zoneId parameter):","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} object adjusted for timezone given by {@code zoneId}.","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"public LocalDateTime adjustTimeZone(LocalDateTime sinceDate, ZoneId zoneId) {","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" //Code here","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"asdfghjkxd"},"content":"// Not okay (@param tag used only for zoneId)","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} object by adjusting {@code sinceDate}","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" * to the timezone given by {@code zoneId}.","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" * @param zoneId The timezone ID to adjust the sinceDate to.","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"public LocalDateTime adjustTimeZone(LocalDateTime sinceDate, ZoneId zoneId) {","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" //Code here","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"Positive Example #1:","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"asdfghjkxd"},"content":"```java","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"asdfghjkxd"},"content":"// Okay (No @param tags):","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} object by adjusting {@code sinceDate}","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" * to the timezone given by {@code zoneId}.","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"public LocalDateTime adjustTimeZone(LocalDateTime sinceDate, ZoneId zoneId) {","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" //Code here","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"Positive Example #2:","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"asdfghjkxd"},"content":"```java","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"asdfghjkxd"},"content":"// Okay (@param tags used for all inputs):","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} object by adjusting {@code sinceDate}","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" * to the timezone given by {@code zoneId}.","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" * @param sinceDate The date prior to the timezone conversion.","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" * @param zoneId The timezone ID to adjust the sinceDate to.","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"public LocalDateTime adjustTimeZone(LocalDateTime sinceDate, ZoneId zoneId) {","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" //Code here","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"* Within the main code, if an exception is thrown in a method (both header and body) for which Javadoc is written, a `@throws` tag must be used to describe how the exception is likely to arise.","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" * This requirement does not apply to test code.","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" * One `@throws` tag per unique exception.","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" * The order of exceptions in the `@throws` tag block should match that of the method\u0027s `throws` statement.","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"asdfghjkxd"},"content":"```java","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"asdfghjkxd"},"content":"// Not okay (order of exceptions in tag block and method signature do not match):","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} object from {@code dateString}.","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" * @throws ParseException if {@code dateString} cannot be parsed.","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" * @throws NullPointerException if {@code dateString} is null.","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"public LocalDateTime parseDate(String dateString) throws NullPointerException, ParseException {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" String trimmedString \u003d dateString.toUpperCase(); // NullPointerException may happen here.","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" // Code here","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"asdfghjkxd"},"content":"// Should be:","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} object from {@code dateString}.","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" * @throws NullPointerException if {@code dateString} is null.","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" * @throws ParseException if {@code dateString} cannot be parsed.","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":"public LocalDateTime parseDate(String dateString) throws NullPointerException, ParseException {","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" String trimmedString \u003d dateString.toUpperCase(); // NullPointerException may happen here.","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" // Code here","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"## TypeScript specific formatting","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"For TypeScript specific code, such as within an `interface` or type annotations, we also stipulate the following standards:","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":"* Use semicolons as delimiters for TypeScript interfaces and types.","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"Negative Examples:","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"```typescript","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"// missing semicolon delimiter","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":"interface Foo {","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" name: string","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" greet(): string","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"// using incorrect delimiter","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"interface Foo {","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" name: string,","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" greet(): string,","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":"Positive Example:","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"```typescript","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":"// semicolon delimiter","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"interface Foo {","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" name: string;","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" greet(): string;","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":"* For type annotations, use a space after but not before.","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"Negative Examples:","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"```typescript","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"let foo:string \u003d \"bar\";","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"let foo :string \u003d \"bar\";","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":"let foo : string \u003d \"bar\";","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"function foo():string {}","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"function foo() :string {}","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"function foo() : string {}","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":"class Foo {","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" name:string;","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"class Foo {","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" name :string;","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":"class Foo {","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" name : string;","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"Positive Examples:","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":"```typescript","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":"let foo: string \u003d \"bar\";","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":"function foo(): string {}","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":"class Foo {","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" name: string;","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"```","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":12,"-":174}},{"path":"docs/ug/blurbs.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/RepoSense/tree/cypress","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"Cypress branch of RepoSense","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003e------------------------------------","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/publish-RepoSense/tree/master","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"Publishing branch of RepoSense","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":5}},{"path":"docs/ug/cli.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Appendix: CLI syntax reference\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"The command `java -jar RepoSense.jar` takes several flags.","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"\u003cbox\u003e","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"**Examples**:","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"An example of a command using most parameters:\u003cbr\u003e","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"`java -jar RepoSense.jar --repos https://github.com/reposense/RepoSense.git --output ./report_folder --since 31/1/2017 --until 31/12/2018 --formats java adoc xml --view --ignore-standalone-config --last-modified-date --timezone UTC+08 --find-previous-authors --analyze-authorship --originality-threshold 0.66`","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"Same command as above but using most parameters in alias format:\u003cbr\u003e","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"`java -jar RepoSense.jar -r https://github.com/reposense/RepoSense.git -o ./report_folder -s 31/1/2017 -u 31/12/2018 -f java adoc xml -v -i -l -t UTC+08 -F -A -ot 0.66`","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"The section below provides explanations for each of the flags.","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"\u003c!-- --------------------------◘---------------------------------------------------------------------------- --\u003e","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"### `--analyze-authorship`, `-A`","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"**`--analyze-authorship`**: Performs further analysis to distinguish between partial and full credit attribution for","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"lines of code assigned to the author.","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"* Default: this feature is turned ***off*** by default and the author will receive partial credits for all lines of","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" code, as the code lines are at least partial credit but may not qualify for full credit.","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"* Alias: `-A` (upper case)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"* Example: `--analyze-authorship` or `-A`","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"A darker background colour represents full credit, while a lighter background colour represents partial credit.","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"If the code is attributed to a different author by the user via `@@author` tag, then the new author will be given","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"partial credit.","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"### `--assets`, `-a`","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"\u003cdiv id\u003d\"section-assets\"\u003e","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"**`--assets ASSETS_DIRECTORY`**: Specifies where to place assets for report generation.","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"sopa301"},"content":"* Parameter: `ASSETS_DIRECTORY` The directory containing the assets files. A `favicon.ico` file can be placed here to customize the favicon of the dashboard, while a `title.md` file can be placed to customize the [title](https://reposense.org/ug/customizingReports.html#add-a-title) of the report using [Markdown syntax](https://www.markdownguide.org/basic-syntax/).","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"* Alias: `-a`","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"* Example: `--assets ./assets` or `-a ./assets`","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"* If `--assets` is not specified, RepoSense looks for assets in the `./assets` directory.","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":"\u003c!-- --------------------------◘---------------------------------------------------------------------------- --\u003e","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"### `--config`, `-c`","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"\u003cdiv id\u003d\"section-config\"\u003e","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"**`--config CONFIG_DIRECTORY`**: Specifies that config files located in `CONFIG_DIRECTORY` should be used to customize the report.","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"asdfghjkxd"},"content":"* Parameter: `CONFIG_DIRECTORY` The directory containing the config files. Should contain a `repo-config.csv` file. Optionally, can contain an `author-config.csv` file or/and a `group-config.csv` file or/and a `report-config.json` file or/and a `blurbs.md` file.","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"* Alias: `-c`","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"* Example: `java -jar RepoSense.jar --config ./config`","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"* Cannot be used with `--repos`. The `--repos` flag will take precedence over this flag.","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"* If both `--repos` and `--config` are not specified, RepoSense looks for config files in the `./config` directory.","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"* Config files must follow [this](./configFiles.html) format.","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"### `--formats`, `-f`","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"**`--formats LIST_OF_FORMATS`**: Specifies which file extensions to be included in the analysis.","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"* Parameter: `LIST_OF_FORMATS` A space-separated list of file extensions that should be included in the analysis.\u003cbr\u003e","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" Default: all file formats","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":"* Alias: `-f`","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":"* Example:`--formats css fxml gradle` or `-f css fxml gradle`","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"Binary file formats, such as `jpg`, `png`,`exe`,`zip`, `rar`, `docx`, and `pptx`, all will be labelled as the file type `binary` in the generated report.","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"### `--find-previous-authors`, `-F`","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"**`--find-previous-authors`**: Utilizes Git blame\u0027s ignore revisions functionality, RepoSense will attempt to blame the line changes caused by commits in the ignore commit list to the previous authors who altered those lines (if available).","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"* Default: RepoSense will assume that no authors are responsible for the code changes in the lines altered by commits in the ignore commit list.","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"* Alias: `-F` (uppercase F)","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"* Example:`--find-previous-authors` or `-F`","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"### `--help`, `-h`","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"**`--help`**: Shows the help message.","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"* Alias: `-h`","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"Cannot be used with any other flags. This flag takes precedence over all other flags.","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"### `--ignore-standalone-config`, `-i`","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"**`--ignore-standalone-config`**: Specifies that the standalone config file in the repo should be ignored.","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"* Default: the standalone config file is not ignored","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"* Alias: `-i`","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":"* Example:`--ignore-standalone-config` or `-i`","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":"This flag overrides the `Ignore standalone config` field in the CSV config file.","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":"### `--ignore-filesize-limit`, `-I`","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"**`--ignore-filesize-limit`**: Specifies that the file size limit (both default and user-defined) should be ignored during the analysis.","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"* Default: the file size limit is not ignored","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"* Alias: `-I`","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"* Example:`--ignore-filesize-limit` or `-I`","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":"All files are subject to a default file size limit or a custom size limit set by the user. Most files should not be","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"affected by the default size limit. This flag can be useful for including files in your report that are affected by","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":"the size limit. Note that this flag may result in large report sizes and/or slower report generation.","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":"This flag overrides the `Ignore file size limit` field in the CSV config file.","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"### `--last-modified-date`, `-l`","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"**`--last-modified-date`**: Specifies that the last modified date of each line of code should be added to `authorship.json`.","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"* Default: the last modified date of each line of code will not be added to `authorship.json`","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":"* Alias: `-l` (lowercase L)","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"* Example:`--last-modified-date` or `-l`","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"* Cannot be used with `--shallow-cloning`. This may result in an incorrect last modified date.","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":"* The last modified dates will be in the same timezone specified with the `--timezone` flag.","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"### `--originality-threshold`, `-ot`","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"**`--originality-threshold [VALUE]`**: Specifies the cut-off point for partial and full credit","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":"in `--analyze-authorship`. Author will be given full credit if their contribution exceeds this threshold, else partial","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":"credit is given.","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":"* Parameter: `VALUE` Optional. Acceptable range: [0.0, 1.0].\u003cbr\u003e","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" Default: `0.51`","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":"* Alias: `-ot`","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":"* Example: `--originality-threshold 0.66` or `-ot 0.66`","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":"* Requires `--analyze-authorship` flag.","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":"* An author\u0027s contribution, or `originality score`, is calculated using Levenshtein Distance (Edit Distance) algorithm.","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" We compare the difference between current code line and its previous versions.","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"### `--output`, `-o`","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"**`--output OUTPUT_DIRECTORY`**: Indicates where to save the report generated.","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":"* Parameter: `OUTPUT_DIRECTORY` The location for the generated `reposense-report` folder.\u003cbr\u003e","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" Default: current directory","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":"* Alias: `-o`","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":"* Example: `--output ./foo` or `-o ./foo` (the report will be in the `./foo/reposense-report` folder)","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":"### `--period`, `-p`","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":"**`--period PERIOD`**: Specifies the period of analysis window.","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":"* Parameter: `PERIOD` The period of analysis window, in the format `nd` (for n days) or `nw` (for n weeks). It is used to calculate end date if only start date is specified, or calculate end date if only start date is specified.","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":"* Alias: `-p`","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":"* Example: `--period 30d` or `--period 4w`","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":"* If both start date and end date are not specified, the date of generating the report will be taken as the end date.","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":"* May analyze the incorrect date range if used with `--since d1`. The program will throw a warning.","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"* Cannot be used with both `--since` and `--until`. The program will throw an exception.","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":"### `--repo`, `--repos`, `-r`","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":"**`--repo REPO_LOCATION`**: Specifies which repositories to analyze.","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"* Parameter: `REPO_LOCATION` A list of URLs or the disk location of the git repositories to analyze, separated by spaces.","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":"* Alias: `-r`","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":"* Examples:","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" * `--repos https://github.com/reposense/RepoSense.git`","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" * `--repo https://github.com/reposense/RepoSense.git c:/myRepose/foo/bar`: analyzes the two specified repos (one remote, one local) and generates one report containing details of both.","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":"Cannot be used with `--config`. This flag takes precedence over `--config`.","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":"### `--shallow-cloning`, `-S`","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":"**`--shallow-cloning`**: Clones repositories using Git\u0027s shallow cloning functionality, which can significantly reduce the time taken to clone large repositories. However, the flag should not be used for smaller repositories where the `.git` file is smaller than 500 MB, as it would create overhead.","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":"* Default: RepoSense does not clone repositories using Git\u0027s shallow cloning functionality.","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":"* Alias: `-S` (uppercase S)","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":"* Example:`--shallow-cloning` or `-S`","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":"Cannot be used with `--last-modified-date`. This may result in an incorrect last modified date.","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":"### `--since`, `-s`","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":"**`--since START_DATE`**: Specifies the start date for the period to be analyzed.","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":"* Parameter: `START_DATE` The first day of the period to be analyzed, in the format `DD/MM/YYYY`.\u003cbr\u003e","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" Default: one month before the current date","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":"* Alias: `-s`","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":"* Example:`--since 21/10/2017` or `-s 21/10/2017`","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":"* If the start date is not specified, only commits made one month before the end date (if specified) or the date of generating the report, will be captured and analyzed.","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":"* If `d1` is specified as the start date (`--since d1` or `-s d1`), then the program will search for the earliest commit date of all repositories and use that as the start date.","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":"* If `d1` is specified together with `--period`, then the program will warn that the date range being analyzed may be incorrect.","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":"### `--timezone`, `-t`","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":"**`--timezone ZONE_ID`**: Indicates the timezone to be used for the analysis.","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":"* Parameter: `ZONE_ID` The timezone in the format `ZONE_ID[±hh[mm]]`.\u003cbr\u003e","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" Default: system\u0027s default timezone","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":"* Alias: `-t`","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":"* Example:`--timezone UTC+08` or `-t UTC-1030`","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":"### `--until`, `-u`","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":"**`--until END_DATE`**: Specifies the end date of the analysis period.","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":"* Parameter: `END_DATE` The last date of the period to be analyzed, in the format `DD/MM/YYYY`.\u003cbr\u003e","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" Default: current date","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":"* Alias: `-u`","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":"* Example:`--until 21/10/2017` or `-u 21/10/2017`","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":"Note: If the end date is not specified, the date of generating the report will be taken as the end date.","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":"### `--version`, `-V`","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":"**`--version`**: Shows the version of RepoSense.","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":"* Alias: `-V` (upper case)","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":"Cannot be used with any other flags. This flag takes precedence over all other flags other than `--help`.","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":"### `--view`, `-v`","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":"**`--view [REPORT_FOLDER]`**: Specifies that the report should be opened in the default browser.","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":"* Parameter: `REPORT_FOLDER` Optional. If specified, no analysis will be performed and the report specified by the argument will be opened.\u003cbr\u003e","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" Default: `./reposense-report`","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":"* Alias: `-v`","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":"* Example:`--view` or `-v`","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"sopa301":1,"-":300}},{"path":"docs/ug/configFiles.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Appendix: Config files format\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"{% set mandatory %}\u003cspan class\u003d\"badge bg-danger\"\u003emandatory\u003c/span\u003e{% endset %}","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"{% from \u0027scripts/macros.njk\u0027 import embed with context %}","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"Given below are the details of the various config files used by RepoSense.","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"**RepoSense ignores the order of column headers in the CSV config files. However, the spelling of the column headers must match the specified headers exactly, or the column would be ignored by RepoSense.**","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"**A value in a config file is optional to provide unless it is specified as {{ mandatory }}**.","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"## `repo-config.csv`","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"**`repo-config.csv` file contains repo-level config data.** Each row represents a repository\u0027s configuration ([example](repo-config.csv)).","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"| Column Name | Explanation |","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"|-------------|-------------|","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"| Repository\u0027s Location {{ mandatory }} | The `Remote Repo URL` or `Disk Path` to the git repository e.g., `https://github.com/foo/bar.git` or `C:\\Users\\user\\Desktop\\GitHub\\foo\\bar` |","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"| Branch | The branch to analyze in the target repository e.g., `master`. Default: the default branch of the repo |","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"| File formats\u003csup\u003e*+\u003c/sup\u003e | The file extensions to analyze. Binary file formats, such as `png` and `jpg`, will be automatically labelled as the file type `binary` in the generated report. Default: all file formats |","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"| Find Previous Authors | Enter **`yes`** to utilize Git blame\u0027s ignore revisions functionality, RepoSense will attempt to blame the line changes caused by commits in the ignore commit list to the previous authors who altered those lines (if available). |","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"| Ignore Glob List\u003csup\u003e*+\u003c/sup\u003e | The list of file path globs to ignore during analysis for each author e.g., `test/**;temp/**`. Refer to the [_glob format_](https://docs.oracle.com/javase/tutorial/essential/io/fileOps.html#glob) for the path glob syntax. |","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"| Ignore standalone config | To ignore the standalone config file (if any) in target repository, enter **`yes`**. If the cell is empty, the standalone config file in the repo (if any) will take precedence over configurations provided in the csv files. |","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"| Ignore Commits List\u003csup\u003e*+\u003c/sup\u003e | The list of commits to ignore during analysis. For accurate results, the commits should be provided with their full hash. Additionally, a range of commits can be specified using the `..` notation e.g. `abc123..def456` (both inclusive). |","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"| Ignore Authors List\u003csup\u003e*+\u003c/sup\u003e | The list of authors to ignore during analysis. Authors should be specified by their [Git Author Name](#a-note-about-git-author-name). |","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"| Shallow Cloning | Enter **`yes`** to clone the repository using Git\u0027s shallow cloning functionality. This option can significantly reduce the time taken to clone large repositories. However, the option should ideally be disabled for smaller repositories where the `.git` file is smaller than 500 MB, as it would create overhead. |","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"| File Size Limit\u003csup\u003e+\u003c/sup\u003e | Enter a file size limit for the repository in bytes as a single number without units (for a size limit of 1MB for example, enter 1000000). This file size limit will override the default file size limit (500KB). Files exceeding the file size limit will be marked as ignored and only the file name and line count will be reflected in the report. |","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"| Ignore File Size Limit | Enter **`yes`** to ignore both the default file size limit and the file size limit possibly set by the user in `repo-config.csv`. |","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"| Skip Ignored File Analysis | Enter **`yes`** to ignore analysis of files exceeding the file size limit entirely. If file analysis is skipped, all information about the file will be omitted from the generated report. This option can significantly improve report generation time. |","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"The Shallow Cloning option is incompatible with the \"--last-modified-date\" CLI flag.","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"If Ignore File Size Limit is yes, the File Size Limit and Skip Ignored File Analysis columns are ignored.","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"\u003csup\u003e* **Multi-value column**: multiple values can be entered in this column using a semicolon `;` as the separator.\u003c/sup\u003e\u003c/br\u003e","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"\u003csup\u003e+ **Overrideable column**: prepend with `override:` to use entered value(s) instead of value(s) from standalone config.\u003c/sup\u003e","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"When using [standalone config](#config-json-standalone-config-file) (if it is not ignored), it is possible to override specific values from the standalone config by prepending the entered value with `override:`.","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"## `author-config.csv`","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"Optionally, you can use an `author-config.csv` (which should be in the same directory as the `repo-config.csv` file) to provide more details about the authors to analyze ([example](author-config.csv)). It should contain the following columns:","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"| Column Name | Explanation |","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"|--------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"| Repository\u0027s Location\u003csup\u003e*\u003c/sup\u003e | Same as `repo-config.csv`. Default: all the repos in `repo-config.csv`. |","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"| Branch | The branch to analyze for this author, e.g., `master`. Default: the author will be bound to all the repos in `repo-config.csv` that has the same repo\u0027s location, regardless of branch. |","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"| Author\u0027s Git Host ID\u003csup\u003e#\u003c/sup\u003e {{ mandatory }} | Username of the target author\u0027s profile on GitHub, GitLab or Bitbucket, e.g.`JohnDoe`. |","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"| Author\u0027s Emails\u003csup\u003e*\u003c/sup\u003e | Associated emails of the author. For GitHub users, this can be found in your [GitHub settings](https://github.com/settings/emails). |","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"| Author\u0027s Display Name | The name to display for the author. Default: author\u0027s username. |","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"| Author\u0027s Git Author Name\u003csup\u003e*\u003c/sup\u003e | The meaning of _Git Author Name_ is explained in [_A note about git author name_](#a-note-about-git-author-name). |","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"| Ignore Glob List\u003csup\u003e*\u003c/sup\u003e | Files to ignore for this author, in addition to files ignored by the patterns specified in `repo-config.csv`. The path glob syntax is the same as that of Ignore Glob List in `repo-config.csv`. |","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"\u003csup\u003e* **Multi-value column**: multiple values can be entered in this column using a semicolon `;` as the separator.\u003c/sup\u003e","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"\u003c/br\u003e","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"\u003csup\u003e# For backward compatibility, `Author\u0027s GitHub ID` is still accepted as the header in place of `Author\u0027s Git Host ID`.\u003c/sup\u003e","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"If `author-config.csv` is not given and the repo has not provided author details in a standalone config file, all the authors of the repositories within the date range specified (if any) will be analyzed.","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"`author-config.csv` has some advanced syntax that can help to reduce duplication of the author\u0027s information. The syntax guide is given below:","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"{{ embed(\"Appendix: `author-config.csv` advanced syntax\", \"authorConfigSyntax.md\") }}","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"## `group-config.csv`","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"Optionally, you can provide a `group-config.csv`(which should be in the same directory as `repo-config.csv` file) to provide details on any custom groupings for files in specified repositories ([example](group-config.csv)). It should contain the following columns:","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"| Column Name | Explanation |","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"|-------------|-------------|","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":"| Repository\u0027s Location | Same as `repo-config.csv`. Default: all the repos in `repo-config.csv` |","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"| Group Name {{ mandatory }} | Name of the group, e.g.,`test`. |","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":"| Globs * {{ mandatory }} | The list of file path globs to include for specified group, e.g.,`**/test/*;**.java`. |","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"\u003csup\u003e* **Multi-value column**: multiple values can be entered in this column using a semicolon `;` as the separator.\u003c/sup\u003e","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"Note that a file in a given repository should only be tagged to one group. \u003cbr\u003e","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"e.g.: `example.java` in `example-repo` can either be in the `test` group or the `code` group, but not in both `test` and `code` group. If multiple groups are specified for a given file, the latter group (i.e., `code` group) is set for the file.","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":"## `report-config.json`","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"You can optionally use `report-config.json` to customize report generation by providing the following information. ([example](report-config.json))","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"**Fields to provide**:","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"* `title`: Title of the generated report, which is also the title of the deployed dashboard. Default: \"RepoSense Report\"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"\u003cdiv id\u003d\"section-standalone\"\u003e","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":"## `config.json` (standalone config file)","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"Repo owners can provide the following additional information to RepoSense using a config file that we call the **_standalone config file_**:","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"* which files/authors/commits to analyze/omit","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":"* which git and git host usernames belong to which authors","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"* the display of an author","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"To use this feature, add a `_reposense/config.json` to the root of your repo using the format in the example below ([another example](https://github.com/reposense/RepoSense/blob/master/_reposense/config.json)) and **commit it** (reason: RepoSense can see committed code only):","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":"```json {.no-line-numbers}","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"{","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" \"ignoreGlobList\": [\"about-us/**\", \"**index.html\"],","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" \"formats\": [\"html\", \"css\"],","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" \"ignoreCommitList\": [\"90018e49f129ce7e0abdc8b18e91c9813588c601\", \"67890def\", \"abc123..def456\"],","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" \"ignoreAuthorList\": [\"charlie\"],","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" \"authors\":","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" [","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" \"gitId\": \"alice\",","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" \"emails\": [\"alice@example.com\", \"alicet@example.com\"],","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" \"displayName\": \"Alice T.\",","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" \"authorNames\": [\"AT\", \"A\"],","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" \"ignoreGlobList\": [\"**.css\"]","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" \"gitId\": \"bob\"","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" ]","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":"Note: all fields are optional unless specified otherwise.","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":"**Fields to provide _repository-level_ info**:","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"* `ignoreGlobList`: Folders/files to ignore, specified using the [_glob format_](https://docs.oracle.com/javase/tutorial/essential/io/fileOps.html#glob).","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"* `formats`: File formats to analyze. Binary file formats, such as `png` and `jpg`, will be automatically labelled as the file type `binary` in the generated report. Default: all file formats","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"* `ignoreCommitList`: The list of commits to ignore during analysis. For accurate results, the commits should be provided with their full hash. Additionally, a range of commits can be specified using the `..` notation e.g. `abc123..def456` (both inclusive).","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"* `ignoreAuthorList`: The list of authors to ignore during analysis. Authors specified in `authors` field or `author-config.csv` will be also be omitted if they are in this list. Authors should be specified by their [Git Author Name](#a-note-about-git-author-name).","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"* `fileSizeLimit`: A file size limit for the repository in bytes as a single number without units, that will override the default file size limit. If not specified, the default file size limit will continue to be used.","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"**Fields to provide _author-level_ info**:\u003cbr\u003e","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"Note: `authors` field should contain _all_ authors that should be captured in the analysis.","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"* `gitId`: Username of the author. {{ mandatory }} field.","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"* `emails`: Associated git emails of the author. For GitHub, this can be found in your [GitHub settings](https://github.com/settings/emails).","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"* `displayName`: Name to display on the report for this author.","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":"* `authorNames`: Git Author Name(s) used in the author\u0027s commits. By default, RepoSense assumes an author would use their remote Git Host username as the Git username too. The meaning of _Git Author Name_ is explained in [_A note about git author name_](#a-note-about-git-author-name).","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"* `ignoreGlobList`: _Additional_ (i.e. on top of the repo-level `ignoreGlobList`) folders/files to ignore for a specific author. The path glob syntax is specified by the [_glob format_](https://docs.oracle.com/javase/tutorial/essential/io/fileOps.html#glob). In the example above, the actual `ignoreGlobList` for `alice` would be `[\"about-us/**\", \"**index.html\", \"**.css\"]`.","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"To verify your standalone configuration is as intended, add the `_reposense/config.json` to your local copy of repo and run RepoSense against it as follows:\u003cbr\u003e","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"* Format: `java -jar RepoSense.jar --repo LOCAL_REPO_LOCATION` \u003cbr\u003e","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"* Example: `java -jar RepoSense.jar --repo c:/myRepose/foo/bar`\u003cbr\u003e","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"After that, view the report to see if the configuration you specified in the config file is being reflected correctly in the report.","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":"## A note about git author name","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"`Git Author Name` refers to the customizable author\u0027s display name set in the local `.gitconfig` file. For example, in the Git Log\u0027s display:","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":"``` {.no-line-numbers}","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"...","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":"commit cd7f610e0becbdf331d5231887d8010a689f87c7","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":"Author: ConfiguredAuthorName \u003cauthor@example.com\u003e","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"Date: Fri Feb 9 19:14:41 2018 +0800","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" Make some changes to show my new author\u0027s name","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":"commit e3f699fd4ef128eebce98d5b4e5b3bb06a512f49","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"Author: ActualGitHostId \u003cauthor@example.com\u003e","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"Date: Fri Feb 9 19:13:13 2018 +0800","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" Initial commit","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" ...","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":"`ActualGitHostId` and `ConfiguredAuthorName` are both `Git Author Name` of the same author.\u003cbr\u003e","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"To find the author name that you are currently using for your current git repository, run the following command within your git repository:","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"asdfghjkxd"},"content":"``` shell {.no-line-numbers}","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":"git config user.name","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":"To set the author name to the value you want (e.g., to set it to your GitHub username) for your current git repository, you can use the following command ([more info](https://www.git-tower.com/learn/git/faq/change-author-name-email)):","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"asdfghjkxd"},"content":"``` shell {.no-line-numbers}","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":"git config user.name \"YOUR_AUTHOR_NAME”","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":"To set the author name to use a default value you want for future git repositories, you can use the following command:","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"asdfghjkxd"},"content":"``` shell {.no-line-numbers}","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":"git config --global user.name \"YOUR_AUTHOR_NAME”","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":"```","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":"RepoSense expects the Git Author Name to be the same as author\u0027s username on the Git hosting platform (GitHub, GitLab, BitBucket). If an author\u0027s `Git Author Name` is different from their username on the Git hosting platform, the `Git Author Name` needs to be specified in the standalone config file. If the author has more than one `Git Author Name`, multiple values can be entered too.","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"warning\" seamless\u003e","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":"Note: Symbols such as `\"`, `!`, `/` etc. in your author name will be omitted, which may reduce the accuracy of the analysis if 2 names in the repository are approximately similar.","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"asdfghjkxd"},"content":"\u003cdiv id\u003d\"section-blurbs\"\u003e","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"asdfghjkxd"},"content":"## `blurbs.md`","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"asdfghjkxd"},"content":"You can optionally use `blurbs.md` to add blurbs in Markdown syntax for repository branches. These blurbs will be seen when grouping by `Repo/Branch`. ([example](https://github.com/reposense/RepoSense/blob/master/docs/ug/blurbs.md))","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"asdfghjkxd"},"content":"**Format**:","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"asdfghjkxd"},"content":"* First line in section: Link to the repository branch.","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"asdfghjkxd"},"content":"* Second line onwards: Blurb content.","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"asdfghjkxd"},"content":"* Delimiter: `\u003c!--repo--\u003e`. Everything on the line after the delimiter will be ignored.","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"asdfghjkxd"},"content":"\u003c/div\u003e","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":17,"-":208}},{"path":"docs/ug/customizingReports.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Customizing reports\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"{% from \u0027scripts/macros.njk\u0027 import embed, step with context %}","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"The report can be customized using several ways, as explained below.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"### Customize using CLI flags","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"**The simplest approach is to provide additional flags when running RepoSense.** The various flags are given in the panel below.","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" {{ embed(\"Appendix: **CLI syntax reference**\", \"cli.md\") }}","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"### Customize using CSV config files","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"**Another, more powerful, way to customize the report is by using dedicated config files.** In this case you need to use the `--config` flag instead of the `--repo` flag when running RepoSense, as follows:","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" {{ embed(\"Appendix: **CLI syntax reference → `config` flag**\", \"cli.md#section-config\") }}","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"tip\" seamless\u003e","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"**Managing config files collaboratively**: If you use RepoSense to monitor a large number of programmers, it may be more practical to get the programmers to submit PRs to update the config files as necessary (\u003ctooltip content\u003d\"a coder realizes some of her code is missing from the report because she used multiple git usernames, and wants to add the additional usernames to the config file\"\u003eexample use case\u003c/tooltip\u003e).","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"To ensure that their PRs are correct, you can use [Netlify _deploy previews_](https://www.netlify.com/blog/2016/07/20/introducing-deploy-previews-in-netlify/) to preview how the report would look like after the PR has been merged. More details are in the panels below.","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" {{ embed(\"Appendix: **Using RepoSense with Netlify → Setting up**\", \"withNetlify.md#section-setting-up\") }}","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" {{ embed(\"Appendix: **Using RepoSense with Netlify → PR previews**\", \"withNetlify.md#section-pr-previews\") }}","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"### Get target repos to provide more info","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"**If feasible, you can also customize the target repos to play well with RepoSense** in the following two ways:","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"1\\. Add a _standalone config file_ to the repo to provide more config details to RepoSense. The format of the file is given below.","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" {{ embed(\"Appendix: **Standalone config file format**\", \"configFiles.md#section-standalone\") }}","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"2\\. To have more precise control over which code segment is attributed to which author, authors can annotate their code using `@@author` tags, as explained below.","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" {{ embed(\"Appendix: **Using `@@author` tags**\", \"usingAuthorTags.md\") }}","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"In both instances, it is **necessary to commit any changes** for them to be detected by RepoSense.","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"3\\. Add a git `.mailmap` file at the top-level of the repository, specifying mapped authors/commiters and/or e-mail addresses as per [gitmailmap documentation](https://git-scm.com/docs/gitmailmap). Any mappings specified here will be applied by git before all other RepoSense configurations. Configuration via `.mailmap` is particularly useful if you want the mapping to apply for all git commands as well instead of just for RepoSense.","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"sopa301"},"content":"\u003c!-- ------------------------------------------------------------------------------------------------------ --\u003e","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"asdfghjkxd"},"content":"### Personalizing Reports","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"asdfghjkxd"},"content":"#### Add a title","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"sopa301"},"content":"A title component can be added by creating a file titled `title.md` in the assets directory. You can specify the assets directory according to the reference below:","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"sopa301"},"content":"{{ embed(\"Appendix: **CLI syntax reference → `assets` flag**\", \"cli.md#section-assets\") }}","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"sopa301"},"content":"The title can render a combination of Markdown/HTML and plaintext ([example](https://github.com/reposense/RepoSense/blob/master/docs/ug/title.md)), and will appear on the top of the left panel as shown below:","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"sopa301"},"content":"![Title Component Example](../images/title-example.png)","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"sopa301"},"content":"Do note that the width of the title is bound by the width of the left panel.","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"sopa301"},"content":"For more information on how to use Markdown, see the [Markdown Guide](https://www.markdownguide.org/).","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"asdfghjkxd"},"content":"#### Add blurbs for branches","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"asdfghjkxd"},"content":"A blurb can be added for a repository branch by creating a file titled `blurbs.md` in the config directory. The blurbs will be visible when grouping by `Repo/Branch`. The format of the file is given below:","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"asdfghjkxd"},"content":"{{ embed(\"Appendix: **Config files format**\", \"configFiles.md#section-blurbs\") }}","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"asdfghjkxd"},"content":"Specifying the config directory can be done as follows:","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"asdfghjkxd"},"content":"{{ embed(\"Appendix: **CLI syntax reference → `config` flag**\", \"cli.md#section-config\") }}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":9,"sopa301":13,"-":61}},{"path":"docs/ug/generatingReports.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Generating a report\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"{% from \u0027scripts/macros.njk\u0027 import embed with context %}","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"Let\u0027s look at different ways to generate RepoSense reports.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"* **If you have Java on your computer**, the straight-forward way to generate a report is to use the RepoSense executable to generate the report locally on your computer, as explained in the [_Generating reports locally_](#generating-reports-locally) section below.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"* **If you don\u0027t have Java on your computer or do not wish to run the executable on your computer**, some alternatives are provided in the [_Generating reports remotely_](#generating-reports-remotely) section below.","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"RepoSense is built to analyze any type of git repo, remote or local. It works best when analyzing remote repositories hosted on GitHub, GitLab or BitBucket.","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"For other types of repositories, external links are disabled.","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"## Generating reports locally","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"1. **Ensure you have the prerequisites**:","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":" * **Java 11** or later ([download :fas-download:](https://www.java.com/en/)).","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" * **git `2.23`** or later on the command line. ([download :fas-download:](https://git-scm.com/downloads)).\u003cbr\u003e run `git --version` in your OS terminal to confirm the version.","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"1. **Download the latest JAR file** from our [releases](https://github.com/reposense/RepoSense/releases/latest).","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"1. **Generate a report**: The simplest use case for RepoSense is to generate a report for the recent history of a repo.\u003cbr\u003e","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" command: `java -jar RepoSense.jar --repos LIST_OF_REPO_URLS --view`\u003cbr\u003e","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" Examples:","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" * `java -jar RepoSense.jar --repos https://github.com/reposense/RepoSense.git --view` (note the `.git` at the end of the repo URL)","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" * `java -jar RepoSense.jar --repos https://github.com/reposense/RepoSense.git c:/myRepose/foo/bar --view` analyzes the two specified repos (one remote, one local).","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" The above commands will analyze the given repo(s) for commits done within \u003d\u003dthe last month\u003d\u003d and open the report in your default Browser.","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"**To learn how to generate a report using \u003ctooltip content\u003d\"e.g., generate a report for a different period, for specific file types, for specific authors, etc.\"\u003eother settings\u003c/tooltip\u003e**, head over to the [_**Customizing reports**_](customizingReports.html) section.","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"## Generating reports remotely","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"**You can generate a RepoSense report remotely without installing/running anything on your computer.** This is particularly useful when you are deciding whether to adopt RepoSense.","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"**The easiest option is to use Netlify.** The instructions are given below.","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"{{ embed(\"Appendix: **Using RepoSense with Netlify → Setting up**\", \"withNetlify.md#section-setting-up\") }}","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"**You can also use the following options.** While they are more work to set up, they are more suitable as a permanent solution due to their generous free tier.","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"{{ embed(\"Appendix: **Using RepoSense with GitHub Actions → Setting up**\", \"withGithubActions.md#section-setting-up\") }}","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"{{ embed(\"Appendix: **Using RepoSense with Travis → Setting up**\", \"withTravis.md#section-setting-up\") }}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":60}},{"path":"docs/ug/title.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"sopa301"},"content":"# RepoSense","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"sopa301"},"content":"RepoSense is a powerful tool for analyzing repositories. It provides valuable insights into your codebase, helping you understand the development patterns, identify areas for improvement, and track the contributions of individual team members.","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"sopa301"},"content":"## Features","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"sopa301"},"content":"- Repository analysis: Gain a comprehensive overview of your codebase, including commit statistics, file changes, and code ownership.","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"sopa301"},"content":"- Contribution tracking: Easily track the contributions made by each team member, including the number of commits, lines of code added/removed, and more.","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"sopa301"},"content":"- Visualization: Visualize your repository\u0027s history and changes over time through interactive graphs and charts.","isFullCredit":false}],"authorContributionMap":{"sopa301":9}},{"path":"docs/ug/usingReports.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{% set title \u003d \"Using reports\" %}","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"\u003cfrontmatter\u003e","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" title: \"{{ title | safe }}\"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" pageNav: 3","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"\u003c/frontmatter\u003e","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"\u003ch1 class\u003d\"display-4\"\u003e\u003cmd\u003e{{ title }}\u003c/md\u003e\u003c/h1\u003e","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"\u003cdiv class\u003d\"lead\"\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"Let\u0027s look at how to view, interpret, and interact with a RepoSense report.","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"\u003c/div\u003e","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"## Viewing the report","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"As a report consists of web pages, it can be viewed using a Web Browser. Here are the ways to view the report in different situations.","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"* **Situation 1: The report has been hosted on a website**","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" * Simply go to the URL of the report ([example](https://nus-cs2113-ay1920s2.github.io/tp-dashboard)) in your browser.","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"* **Situation 2: You generated the report in your computer earlier**","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" * Run RepoSense with the `--view` option:\u003cbr\u003e","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" Format: `java -jar RepoSense.jar --view REPORT_FOLDER`\u003cbr\u003e","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" e.g., `java -jar RepoSense.jar --view ./myReport/reposense-report`","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"* **Situation 3: The report was given to you as a zip file or as a folder**","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" 1. If it is a zip file, unzip it.","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" 1. Open the `index.html` (in the unzipped report directory) using a browser.","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" 1. If the report was not loaded automatically, click on the `choose file` button in the shown web page, and select the `archive.zip` (in the same directory) manually.\u003cbr\u003e","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" If even the `choose file` button is not showing up, try a different browser.","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"## Report structure","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"Here is an example of how a typical report looks like:","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"![report](../images/report-features.png)","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"The report is divided into two sections: [_**Chart panel**_](#chart-panel) and the [_**Code panel**_](#code-panel). In some situations, the [_**Commits panel**_](#commits-panel) will appear in place of the _code panel_. All three are explained in the sections below.","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"Links to external webpages (repository link, author\u0027s profile, blame view, etc.) is only properly supported when RepoSense analyzes a remote repository belonging to GitHub, GitLab or BitBucket.","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"## Chart panel","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"![Ramp Charts](../images/rampchart.png)\u003cbr\u003e","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"The `Chart panel` (an example is shown above) contains a series of _ramp chart_ + _contribution bar_ pairs, possibly organized into sub-groups, with a _tool bar_ at the top.","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"#### Ramp charts","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"definition\" seamless\u003e","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"**Ramp chart**: This is a visualization of the frequency and quantity of contributions of an author for a specific repository. Each ramp chart (i.e., light blue rectangle) represents an author\u0027s contribution timeline for a particular repository. Contributions appear as ramps in the timeline.","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"definition\" seamless\u003e","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"**Ramp**: The name we use to refer to the triangular saw-tooth-like shape that represents a code contribution. A ramp can represent a single commit, a sum of the commits done in a certain period, depending on the granularity used.","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"* The ramp\u0027s area is proportional to the amount of contribution the author made at that time period.","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"* The position of the right edge of the ramp (perpendicular to the blue bar) represents the period (the day or the week) in which the contribution was made.","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"* Hover the pointer over a ramp to see the total number of lines represented by that ramp.","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"* Click on the ramp to view details about the list of commits represented in the ramp.","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" * At the commit-level of granularity, it links to the commit in the remote repository.","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" * At higher levels of granularity, it displays the list of commits in the Code Panel.","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"* To make the comparison between two authors easier, the color of the ramps that represent different authors\u0027 contributions at the same time period are the same.","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"* Ramps representing big contributions can overlap with earlier time periods. This represents the possibility that if the work committed during a specific period is big, it could have started at an earlier time period.","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"#### Contribution bars","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"definition\" seamless\u003e","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"**Contribution bar**: It\u0027s the bar that appears below each ramp chart. Its length represents the total amount of code contributed by an author during the _total analysis period_.","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"* Hover over a contribution bar to see the exact amount of the contribution.","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"* If an author contributed significantly higher than other authors, the contribution bar could _overflow_ into multiple lines.","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"We allow contribution bars to overflow into multiple lines (rather than adjust the scale to fit the maximum bar length) to prevent a minority of \u003ctooltip content\u003d\"i.e., those contributing an unusually high amount of code\"\u003eoutliers\u003c/tooltip\u003e from affecting the scale of the majority.","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":"#### Tool bar","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"The `Tool Bar` at the top of the Chart panel provides a set of configuration options that control the Chart panel.","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"* `Search`: filters the author and repository by keywords.","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" * Multiple keywords/terms can be used, separated by spaces.","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" * Entries that contain _any_ (not necessarily _all_) of the search terms will be displayed.","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" * The keywords used to filter the author and repository are case-insensitive.","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"jonasongg"},"content":" * Starting a search with `tag:` will filter author and repository by git tags. Similar search rules as above (like separating multiple tag names by space) apply.","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"* `Group by`: grouping criteria for the rows of results.","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" * `None`: results will not be grouped in any particular way.","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" * `Repo/Branch`: results will be grouped by repositories and its\u0027 associating branches.","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" * `Author`: results will be grouped by the name of the author. Contributions made to multiple repositories by a particular author will be grouped under the author.","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"* `Sort groups by`: sorting criteria for the main group. See note [1] below.","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" * `Group title`: groups will be sorted by the title of the group (in bold text) in alphabetical order.","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" * `Contribution`: groups will be sorted by the combined contributions within a group, in the order of number of lines added.","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" * `Variance`: groups will be sorted by how far the daily contributions are spread out from their average value among all authors involved. A detailed definition of variance is located [here](https://en.wikipedia.org/wiki/Variance).","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"* `Sort within groups by`: sorting criteria within each group.","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" * `Title`: each group will be internally sorted by its title in alphabetical order.","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" * `Contribution`: each group will be internally sorted by individual contributions in the order of number of lines added.","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" * `Variance`: each group will be internally sorted by how far the daily contributions are spread out from their average value by each author into a particular repo. A detailed definition of variance is located [here](https://en.wikipedia.org/wiki/Variance).","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":"* `Granularity`: the period of time for which commits are aggregated in the Ramp Chart.","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" * `Commit`: each commit made is shown as one ramp.","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" * `Day`: commits within a day (commits made within 00:00 to 23:59) are shown as one ramp.","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" * `Week`: commits within a week (from Monday 00:00 to Sunday 23:59) are shown as one ramp.","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"* `Since`, `Until`: the date range for the Ramp Chart (not applied to the Contribution Bars).","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"* `Reset date range`: resets the date range of the Ramp Chart to the default date range.","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"* `Breakdown by file type`: toggles the contribution bar to either display the bar by :","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" * the total lines of codes added (if the checkbox is left unchecked), or","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" * a breakdown of the number of lines of codes added to each file type (if the checkbox is checked). More info on note [3] below.","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"* `Merge group`: merges all the ramp charts of each group into a single ramp chart; aggregates the contribution of each group.","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" * viewing of authored code of the group as a whole is available when `group by repos`.","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"jonasongg"},"content":"* `Show tags`: shows the tags of all the repos under a group","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"jonasongg"},"content":"* `Trim timeline`: trims the starting and ending portion of each ramp where no commits were made; only the part of each ramp where commits were made will be shown.","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"Notes:\u003cbr\u003e","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":"[1] **`Sort groups by`**: each main group has its own index and percentile according to its ranking position after sorting (e.g., if the groups are sorted by contribution in descending order, a 25% percentile indicates that the group is in the top 25% of the whole cohort in terms of contribution)\u003cbr\u003e.","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"[2] **`Repo/Branch`**: the repo/branch name is constructed as `ORGANIZATION/REPOSITORY[BRANCH]` (e.g., `reposense/reposense[master]`)\u003cbr\u003e","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"[3] The total contribution of each group will get updated based on the checked file types and will be taken into account when the sorting criteria is contribution.","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"tip\" seamless\u003e","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"**RepoSense support _intelligent_ bookmarks**: Note how the browser URL changes as you modify settings in the report. If you send that URL to someone else, that person will be able to use that URL to view the report in the same _view configuration_ you had when you copied the URL. For example, [this URL](https://nus-cs2113-ay1920s2.github.io/tp-dashboard/) and [this URL](https://nus-cs2113-ay1920s2.github.io/tp-dashboard/#search\u003d\u0026sort\u003dgroupTitle\u0026sortWithin\u003dtitle\u0026since\u003d2020-03-01\u0026timeframe\u003dday\u0026mergegroup\u003dtrue\u0026groupSelect\u003dgroupByRepos\u0026breakdown\u003dtrue) give two different views of the same report.","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"## Code panel","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"\u003cimg src\u003d\"../images/code-panel.png\" alt\u003d\"code panel\" width\u003d\"468\"\u003e","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"The `Code panel` allows users to see the code attributed to a specific author. Click on the `\u003c/\u003e` icon beside the author\u0027s name in the `Chart panel` to display the `Code panel` on the right.","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"* The Code panel shows the files that contain the author\u0027s contributions, sorted by the number of lines written.","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":"* Select the radio button to enable one of the following 2 filters. Note that only 1 of the 2 filters is active at any time.","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" * Type file path glob in glob filter to include files matching the glob expression.","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" * Select the checkboxes to include files of preferred file extensions.","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" The number right beside the file extension shows the total number of lines written by the author in such file extension files. In contrast, the number inside the parenthesis indicates the number of non-blank lines written by the author.","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"* Clicking the file title toggles the file content.","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":"* Clicking the first icon beside the file title opens the history view of the file on the remote repository.","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"* Clicking the second icon beside the file title opens the blame view of the file on the remote repository.","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"* When using the code panel for a specific author, code attributed to the author is highlighted in green.","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" * When using the `merge group` option with `group by repos`, the code panel will consist of multiple authors\u0027 contributions. Code attributed to these authors can be differentiated by the highlight colors of the code. The color legend is shown at the top of each file and consists only those authors that edited a particular file.","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"* Non-trivial code segments that the selected author has not written are hidden by default, but you can toggle them by clicking on the %%:fas-plus-circle:%% icon.","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":"\u003cbox type\u003d\"info\" seamless\u003e","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"Changing binary files, such as images (`.jpg`, `.png`), applications (`.exe`), zip files (`.zip`, `.rar`) and certain document types (`.docx`, `.pptx`), is not counted towards the total number of lines of code contributed by an author.","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"\u003c/box\u003e","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"\u003c!-- \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d --\u003e","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"## Commits panel","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"\u003cimg src\u003d\"../images/commits-panel.png\" alt\u003d\"commits panel\" width\u003d\"468\"\u003e","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"The `Commits panel` allows users to see the commits attributed to a specific author.","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"* To view all commits attributed to an author, locate the author\u0027s ramp chart in the chart panel, and click on the %%:fas-list-ul:%% icon above the ramp chart.","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":"* To view commits of a specific period, locate the author\u0027s ramp chart in the chart panel, hold down the \u003ckbd\u003eCtrl\u003c/kbd\u003e key (\u003ckbd\u003e\u0026#8984;\u003c/kbd\u003e in MacOS), and click on the start and end positions of the period (on the ramp chart) you want to view. \u003cbr\u003e","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"![Opening commits panel](../images/opening-commits-panel.gif)","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"* The commits can be sorted by the date it was committed or by LoC.","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"* The tags of the commits will also be displayed on top if any. Clicking on a tag will direct you to the commit having that particular tag.","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"* The date range for the `Chart panel` can be updated by clicking on the \"Show ramp chart for this period\" below the name of the author.","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"* The ramp chart at the top of the `Commits panel` represents individual commits (not weekly or daily contributions).","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":"* The commit messages body can be expanded or collapsed by clicking on the %%:fas-ellipsis-h:%% icon beside each commit message title.","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":"* To promote and encourage the 50/72 rule for commit messages, a dotted vertical line will be shown for:","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" * Commit message subject that exceeds 50 characters.","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" * Commit message body after the 72nd character mark.","isFullCredit":false}],"authorContributionMap":{"-":173,"jonasongg":3}},{"path":"frontend/.eslintrc.json","fileType":"json","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" \"env\": {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" \"browser\": true","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" \"extends\": [","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" \"airbnb-base\",","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" \"plugin:vue/recommended\",","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" \"@vue/typescript\",","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"sopa301"},"content":" \"plugin:import/typescript\",","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"sopa301"},"content":" \"plugin:@stylistic/disable-legacy\"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"sopa301"},"content":" \"plugins\": [","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"sopa301"},"content":" \"@stylistic\"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" \"rules\": {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" \"vue/component-definition-name-casing\": [","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" \"error\",","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" \"kebab-case\"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" \"vue/require-prop-types\": 0,","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" \"no-param-reassign\": 0,","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"sopa301"},"content":" \"@stylistic/arrow-parens\": [","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" \"error\",","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" \"always\"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"sopa301"},"content":" \"@stylistic/indent\": [","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" \"error\",","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" 2,","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" \"ignoredNodes\": [","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" \"ConditionalExpression\"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" ]","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" \"prefer-destructuring\": 0,","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" \"func-names\": [","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" \"error\",","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" \"as-needed\"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" \"no-alert\": 0,","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"sopa301"},"content":" \"@stylistic/linebreak-style\": 0,","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"sopa301"},"content":" \"@stylistic/max-len\": [","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" \"error\",","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" \"code\": 120","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" \"prefer-object-spread\": 0,","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"sopa301"},"content":" \"@stylistic/function-call-argument-newline\": 0,","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" \"vue/no-computed-properties-in-data\": 0,","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" \"import/extensions\": [","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" \"error\",","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" \"js\": \"never\",","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" \"ts\": \"never\"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" ]","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" \"parserOptions\": {","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" \"parser\": \"@typescript-eslint/parser\"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" \"overrides\": [","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" \"files\": [\"*.ts\"],","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" \"extends\": [","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" \"airbnb-typescript/base\",","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"sopa301"},"content":" \"plugin:@typescript-eslint/recommended\",","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"sopa301"},"content":" \"plugin:@stylistic/disable-legacy\"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" \"parserOptions\": {","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" \"project\": [\"./tsconfig.json\"]","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" \"rules\": {","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"sopa301"},"content":" \"@stylistic/indent\": [","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" \"error\",","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" 2,","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" \"ignoredNodes\": [","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" \"ConditionalExpression\"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"sopa301"},"content":" \"@stylistic/member-delimiter-style\": \"error\",","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"sopa301"},"content":" \"@stylistic/type-annotation-spacing\": \"error\",","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/array-type\": [","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"sopa301"},"content":" \"error\",","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"sopa301"},"content":" \"default\": \"array-simple\",","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"sopa301"},"content":" \"readonly\": \"array-simple\"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"sopa301"},"content":" \"files\": [\"*.vue\"],","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"sopa301"},"content":" \"rules\": {","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/array-type\": [","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"sopa301"},"content":" \"error\",","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"sopa301"},"content":" \"default\": \"generic\",","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"sopa301"},"content":" \"readonly\": \"generic\"","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"supermii2"},"content":" \"no-unused-vars\": \"off\",","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"supermii2"},"content":" \"@typescript-eslint/no-unused-vars\": [\"error\"]","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" ]","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"supermii2":2,"sopa301":33,"-":74}},{"path":"frontend/.stylelintrc.json","fileType":"json","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" \"plugins\": [","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"sopa301"},"content":" \"@stylistic/stylelint-plugin\",","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" \"stylelint-order\"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" \"extends\": [","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-standard\",","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-standard-scss\",","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" \"stylelint-config-recommended-vue\"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" \"rules\": {","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"sopa301"},"content":" \"declaration-no-important\": true,","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"sopa301"},"content":" \"declaration-block-single-line-max-declarations\": 1,","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"sopa301"},"content":" \"no-invalid-double-slash-comments\": true,","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"sopa301"},"content":" \"function-no-unknown\": null,","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"sopa301"},"content":" \"no-descending-specificity\": null,","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"sopa301"},"content":" \"selector-type-no-unknown\": null,","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"sopa301"},"content":" \"at-rule-no-unknown\": null,","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"sopa301"},"content":" \"no-duplicate-selectors\": null,","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"sopa301"},"content":" \"length-zero-no-unit\": true,","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"sopa301"},"content":" \"value-keyword-case\": \"lower\",","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"sopa301"},"content":" \"selector-type-case\": \"lower\",","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" \"color-no-invalid-hex\": true,","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" \"string-no-newline\": true,","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" \"unit-no-unknown\": true,","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" \"property-no-unknown\": true,","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" \"block-no-empty\": true,","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" \"comment-no-empty\": true,","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"sopa301"},"content":" \"shorthand-property-no-redundant-values\": null,","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"sopa301"},"content":" \"declaration-empty-line-before\": null,","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"sopa301"},"content":" \"selector-class-pattern\": null,","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"sopa301"},"content":" \"color-function-notation\": null,","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"sopa301"},"content":" \"alpha-value-notation\": null,","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"sopa301"},"content":" \"comment-empty-line-before\": null,","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"sopa301"},"content":" \"property-no-vendor-prefix\": null,","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"sopa301"},"content":" \"selector-pseudo-element-colon-notation\": null,","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"sopa301"},"content":" \"at-rule-empty-line-before\": null,","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"sopa301"},"content":" \"font-family-name-quotes\": null,","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"sopa301"},"content":" \"color-hex-length\": null,","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"sopa301"},"content":" \"@stylistic/no-extra-semicolons\": true,","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"sopa301"},"content":" \"@stylistic/number-leading-zero\": \"never\",","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"sopa301"},"content":" \"@stylistic/number-no-trailing-zeros\": null,","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"sopa301"},"content":" \"@stylistic/property-case\": \"lower\",","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"sopa301"},"content":" \"@stylistic/string-quotes\": \"single\",","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"sopa301"},"content":" \"@stylistic/declaration-colon-space-after\": \"always\",","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"sopa301"},"content":" \"@stylistic/selector-list-comma-newline-after\": \"always\",","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"sopa301"},"content":" \"@stylistic/no-eol-whitespace\": true,","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"sopa301"},"content":" \"@stylistic/indentation\": 2,","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"sopa301"},"content":" \"@stylistic/block-opening-brace-space-before\": \"always\",","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"sopa301"},"content":" \"@stylistic/declaration-colon-space-before\": \"never\",","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" \"order/properties-alphabetical-order\": true,","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" \"scss/no-global-function-names\": null,","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"sopa301"},"content":" \"scss/at-import-no-partial-leading-underscore\": null,","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"sopa301"},"content":" \"scss/at-import-partial-extension\": null,","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"sopa301"},"content":" \"scss/load-no-partial-leading-underscore\": null,","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"sopa301"},"content":" \"scss/double-slash-comment-empty-line-before\": null,","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"sopa301"},"content":" \"scss/double-slash-comment-whitespace-inside\": null,","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"sopa301"},"content":" \"scss/dollar-variable-pattern\": null","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"sopa301":42,"-":18}},{"path":"frontend/cypress/config/blurbs.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/RepoSense/tree/cypress","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"first blurb","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003e------------------------------------","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"https://gitlab.com/reposense/testrepo-gitlab/-/tree/main","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"unseen blurb","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003e------------------------------------","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/publish-RepoSense/tree/master","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"## third blurb in h2 markdown tag","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003e------------------------------------","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/RepoSense-auth-helper/tree/master","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"\u003ch1\u003esecond blurb in h1 tag\u003c/h1\u003e","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":11}},{"path":"frontend/cypress/package-lock.json","fileType":"json","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"sopa301"},"content":" \"name\": \"cypress\",","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"sopa301"},"content":" \"lockfileVersion\": 2,","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" \"requires\": true,","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"sopa301"},"content":" \"packages\": {","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"sopa301"},"content":" \"\": {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"sopa301"},"content":" \"devDependencies\": {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"sopa301"},"content":" \"cypress\": \"^13.6.4\"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"sopa301"},"content":" \"node_modules/@colors/colors\": {","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.5.0\",","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz\",","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.1.90\"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"sopa301"},"content":" \"node_modules/@cypress/request\": {","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz\",","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"sopa301"},"content":" \"aws-sign2\": \"~0.7.0\",","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"sopa301"},"content":" \"aws4\": \"^1.8.0\",","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"sopa301"},"content":" \"caseless\": \"~0.12.0\",","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"sopa301"},"content":" \"combined-stream\": \"~1.0.6\",","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"sopa301"},"content":" \"extend\": \"~3.0.2\",","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"sopa301"},"content":" \"forever-agent\": \"~0.6.1\",","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"sopa301"},"content":" \"form-data\": \"~2.3.2\",","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"sopa301"},"content":" \"http-signature\": \"~1.3.6\",","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"sopa301"},"content":" \"is-typedarray\": \"~1.0.0\",","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"sopa301"},"content":" \"isstream\": \"~0.1.2\",","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"sopa301"},"content":" \"json-stringify-safe\": \"~5.0.1\",","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"sopa301"},"content":" \"mime-types\": \"~2.1.19\",","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"sopa301"},"content":" \"performance-now\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"sopa301"},"content":" \"qs\": \"6.10.4\",","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"sopa301"},"content":" \"safe-buffer\": \"^5.1.2\",","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"sopa301"},"content":" \"tough-cookie\": \"^4.1.3\",","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"sopa301"},"content":" \"tunnel-agent\": \"^0.6.0\",","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"sopa301"},"content":" \"uuid\": \"^8.3.2\"","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"sopa301"},"content":" \"node_modules/@cypress/xvfb\": {","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.4\",","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz\",","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"sopa301"},"content":" \"lodash.once\": \"^4.1.1\"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"sopa301"},"content":" \"node_modules/@cypress/xvfb/node_modules/debug\": {","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.2.7\",","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/debug/-/debug-3.2.7.tgz\",","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"sopa301"},"content":" \"ms\": \"^2.1.1\"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/node\": {","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"sopa301"},"content":" \"version\": \"18.18.3\",","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-18.18.3.tgz\",","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-0OVfGupTl3NBFr8+iXpfZ8NR7jfFO+P1Q+IO/q0wbo02wYkP5gy36phojeYWpLQ6WAMjl+VfmqUk2YbUfp0irA\u003d\u003d\",","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/sinonjs__fake-timers\": {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.1.1\",","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz\",","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g\u003d\u003d\",","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/sizzle\": {","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.4\",","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.4.tgz\",","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-jA2llq2zNkg8HrALI7DtWzhALcVH0l7i89yhY3iBdOz6cBPeACoFq+fkQrjHA39t1hnSFOboZ7A/AY5MMZSlag\u003d\u003d\",","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"sopa301"},"content":" \"node_modules/@types/yauzl\": {","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.10.1\",","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.1.tgz\",","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw\u003d\u003d\",","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"sopa301"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"sopa301"},"content":" \"@types/node\": \"*\"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"sopa301"},"content":" \"node_modules/aggregate-error\": {","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz\",","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA\u003d\u003d\",","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"sopa301"},"content":" \"clean-stack\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"sopa301"},"content":" \"indent-string\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"sopa301"},"content":" \"node_modules/ansi-colors\": {","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.3\",","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz\",","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw\u003d\u003d\",","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"sopa301"},"content":" \"node_modules/ansi-escapes\": {","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.2\",","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz\",","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"sopa301"},"content":" \"type-fest\": \"^0.21.3\"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"sopa301"},"content":" \"node_modules/ansi-regex\": {","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.1\",","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"sopa301"},"content":" \"node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg\u003d\u003d\",","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"sopa301"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"sopa301"},"content":" \"node_modules/arch\": {","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/arch/-/arch-2.2.0.tgz\",","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"sopa301"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"sopa301"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"sopa301"},"content":" \"node_modules/asn1\": {","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.2.6\",","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz\",","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"sopa301"},"content":" \"safer-buffer\": \"~2.1.0\"","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"sopa301"},"content":" \"node_modules/assert-plus\": {","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw\u003d\u003d\",","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.8\"","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"sopa301"},"content":" \"node_modules/astral-regex\": {","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"sopa301"},"content":" \"node_modules/async\": {","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.2.4\",","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/async/-/async-3.2.4.tgz\",","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"sopa301"},"content":" \"node_modules/asynckit\": {","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz\",","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"sopa301"},"content":" \"node_modules/at-least-node\": {","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg\u003d\u003d\",","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 4.0.0\"","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"sopa301"},"content":" \"node_modules/aws-sign2\": {","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.7.0\",","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz\",","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA\u003d\u003d\",","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"sopa301"},"content":" \"node_modules/aws4\": {","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.12.0\",","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz\",","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg\u003d\u003d\",","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"sopa301"},"content":" \"node_modules/balanced-match\": {","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw\u003d\u003d\",","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"sopa301"},"content":" \"node_modules/base64-js\": {","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.5.1\",","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz\",","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA\u003d\u003d\",","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"sopa301"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"sopa301"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"sopa301"},"content":" \"node_modules/bcrypt-pbkdf\": {","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w\u003d\u003d\",","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"sopa301"},"content":" \"tweetnacl\": \"^0.14.3\"","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"sopa301"},"content":" \"node_modules/blob-util\": {","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz\",","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"sopa301"},"content":" \"node_modules/bluebird\": {","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.7.2\",","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz\",","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg\u003d\u003d\",","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"sopa301"},"content":" \"node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz\",","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"sopa301"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"sopa301"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"sopa301"},"content":" \"node_modules/buffer\": {","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.7.1\",","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz\",","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"sopa301"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"sopa301"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"sopa301"},"content":" \"base64-js\": \"^1.3.1\",","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"sopa301"},"content":" \"ieee754\": \"^1.1.13\"","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"sopa301"},"content":" \"node_modules/buffer-crc32\": {","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.2.13\",","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz\",","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"sopa301"},"content":" \"node_modules/cachedir\": {","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.4.0\",","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz\",","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"sopa301"},"content":" \"node_modules/call-bind\": {","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA\u003d\u003d\",","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"sopa301"},"content":" \"function-bind\": \"^1.1.1\",","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"sopa301"},"content":" \"get-intrinsic\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"sopa301"},"content":" \"node_modules/caseless\": {","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.12.0\",","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz\",","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw\u003d\u003d\",","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"sopa301"},"content":" \"node_modules/chalk\": {","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA\u003d\u003d\",","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"sopa301"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"sopa301"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"sopa301"},"content":" \"node_modules/chalk/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw\u003d\u003d\",","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"sopa301"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"sopa301"},"content":" \"node_modules/check-more-types\": {","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.24.0\",","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz\",","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA\u003d\u003d\",","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.8.0\"","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"sopa301"},"content":" \"node_modules/ci-info\": {","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.9.0\",","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz\",","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sibiraj-s\"","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"sopa301"},"content":" \"node_modules/clean-stack\": {","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz\",","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A\u003d\u003d\",","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"sopa301"},"content":" \"node_modules/cli-cursor\": {","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz\",","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw\u003d\u003d\",","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"sopa301"},"content":" \"restore-cursor\": \"^3.1.0\"","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"sopa301"},"content":" \"node_modules/cli-table3\": {","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.6.3\",","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz\",","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg\u003d\u003d\",","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"sopa301"},"content":" \"string-width\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"sopa301"},"content":" \"node\": \"10.* || \u003e\u003d 12.*\"","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"sopa301"},"content":" \"optionalDependencies\": {","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"sopa301"},"content":" \"@colors/colors\": \"1.5.0\"","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"sopa301"},"content":" \"node_modules/cli-truncate\": {","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz\",","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg\u003d\u003d\",","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"sopa301"},"content":" \"slice-ansi\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"sopa301"},"content":" \"string-width\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"sopa301"},"content":" \"node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"sopa301"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"sopa301"},"content":" \"node_modules/color-name\": {","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA\u003d\u003d\",","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"sopa301"},"content":" \"node_modules/colorette\": {","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.20\",","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz\",","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w\u003d\u003d\",","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"sopa301"},"content":" \"node_modules/combined-stream\": {","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.8\",","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz\",","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg\u003d\u003d\",","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"sopa301"},"content":" \"delayed-stream\": \"~1.0.0\"","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"sopa301"},"content":" \"node_modules/commander\": {","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.2.1\",","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/commander/-/commander-6.2.1.tgz\",","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA\u003d\u003d\",","isFullCredit":false},{"lineNumber":504,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":505,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":506,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":507,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":508,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":509,"author":{"gitId":"sopa301"},"content":" \"node_modules/common-tags\": {","isFullCredit":false},{"lineNumber":510,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.8.2\",","isFullCredit":false},{"lineNumber":511,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz\",","isFullCredit":false},{"lineNumber":512,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA\u003d\u003d\",","isFullCredit":false},{"lineNumber":513,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":514,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":515,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4.0.0\"","isFullCredit":false},{"lineNumber":516,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":517,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":518,"author":{"gitId":"sopa301"},"content":" \"node_modules/concat-map\": {","isFullCredit":false},{"lineNumber":519,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.0.1\",","isFullCredit":false},{"lineNumber":520,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz\",","isFullCredit":false},{"lineNumber":521,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg\u003d\u003d\",","isFullCredit":false},{"lineNumber":522,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":523,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":524,"author":{"gitId":"sopa301"},"content":" \"node_modules/core-util-is\": {","isFullCredit":false},{"lineNumber":525,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":526,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":527,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":528,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":529,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":530,"author":{"gitId":"sopa301"},"content":" \"node_modules/cross-spawn\": {","isFullCredit":false},{"lineNumber":531,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.0.3\",","isFullCredit":false},{"lineNumber":532,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz\",","isFullCredit":false},{"lineNumber":533,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w\u003d\u003d\",","isFullCredit":false},{"lineNumber":534,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":535,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":536,"author":{"gitId":"sopa301"},"content":" \"path-key\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":537,"author":{"gitId":"sopa301"},"content":" \"shebang-command\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":538,"author":{"gitId":"sopa301"},"content":" \"which\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":539,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":540,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":541,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":542,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":543,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":544,"author":{"gitId":"sopa301"},"content":" \"node_modules/cypress\": {","isFullCredit":false},{"lineNumber":545,"author":{"gitId":"sopa301"},"content":" \"version\": \"13.6.6\",","isFullCredit":false},{"lineNumber":546,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/cypress/-/cypress-13.6.6.tgz\",","isFullCredit":false},{"lineNumber":547,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-S+2S9S94611hXimH9a3EAYt81QM913ZVA03pUmGDfLTFa5gyp85NJ8dJGSlEAEmyRsYkioS1TtnWtbv/Fzt11A\u003d\u003d\",","isFullCredit":false},{"lineNumber":548,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":549,"author":{"gitId":"sopa301"},"content":" \"hasInstallScript\": true,","isFullCredit":false},{"lineNumber":550,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":551,"author":{"gitId":"sopa301"},"content":" \"@cypress/request\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":552,"author":{"gitId":"sopa301"},"content":" \"@cypress/xvfb\": \"^1.2.4\",","isFullCredit":false},{"lineNumber":553,"author":{"gitId":"sopa301"},"content":" \"@types/sinonjs__fake-timers\": \"8.1.1\",","isFullCredit":false},{"lineNumber":554,"author":{"gitId":"sopa301"},"content":" \"@types/sizzle\": \"^2.3.2\",","isFullCredit":false},{"lineNumber":555,"author":{"gitId":"sopa301"},"content":" \"arch\": \"^2.2.0\",","isFullCredit":false},{"lineNumber":556,"author":{"gitId":"sopa301"},"content":" \"blob-util\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":557,"author":{"gitId":"sopa301"},"content":" \"bluebird\": \"^3.7.2\",","isFullCredit":false},{"lineNumber":558,"author":{"gitId":"sopa301"},"content":" \"buffer\": \"^5.7.1\",","isFullCredit":false},{"lineNumber":559,"author":{"gitId":"sopa301"},"content":" \"cachedir\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":560,"author":{"gitId":"sopa301"},"content":" \"chalk\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":561,"author":{"gitId":"sopa301"},"content":" \"check-more-types\": \"^2.24.0\",","isFullCredit":false},{"lineNumber":562,"author":{"gitId":"sopa301"},"content":" \"cli-cursor\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":563,"author":{"gitId":"sopa301"},"content":" \"cli-table3\": \"~0.6.1\",","isFullCredit":false},{"lineNumber":564,"author":{"gitId":"sopa301"},"content":" \"commander\": \"^6.2.1\",","isFullCredit":false},{"lineNumber":565,"author":{"gitId":"sopa301"},"content":" \"common-tags\": \"^1.8.0\",","isFullCredit":false},{"lineNumber":566,"author":{"gitId":"sopa301"},"content":" \"dayjs\": \"^1.10.4\",","isFullCredit":false},{"lineNumber":567,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^4.3.4\",","isFullCredit":false},{"lineNumber":568,"author":{"gitId":"sopa301"},"content":" \"enquirer\": \"^2.3.6\",","isFullCredit":false},{"lineNumber":569,"author":{"gitId":"sopa301"},"content":" \"eventemitter2\": \"6.4.7\",","isFullCredit":false},{"lineNumber":570,"author":{"gitId":"sopa301"},"content":" \"execa\": \"4.1.0\",","isFullCredit":false},{"lineNumber":571,"author":{"gitId":"sopa301"},"content":" \"executable\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":572,"author":{"gitId":"sopa301"},"content":" \"extract-zip\": \"2.0.1\",","isFullCredit":false},{"lineNumber":573,"author":{"gitId":"sopa301"},"content":" \"figures\": \"^3.2.0\",","isFullCredit":false},{"lineNumber":574,"author":{"gitId":"sopa301"},"content":" \"fs-extra\": \"^9.1.0\",","isFullCredit":false},{"lineNumber":575,"author":{"gitId":"sopa301"},"content":" \"getos\": \"^3.2.1\",","isFullCredit":false},{"lineNumber":576,"author":{"gitId":"sopa301"},"content":" \"is-ci\": \"^3.0.1\",","isFullCredit":false},{"lineNumber":577,"author":{"gitId":"sopa301"},"content":" \"is-installed-globally\": \"~0.4.0\",","isFullCredit":false},{"lineNumber":578,"author":{"gitId":"sopa301"},"content":" \"lazy-ass\": \"^1.6.0\",","isFullCredit":false},{"lineNumber":579,"author":{"gitId":"sopa301"},"content":" \"listr2\": \"^3.8.3\",","isFullCredit":false},{"lineNumber":580,"author":{"gitId":"sopa301"},"content":" \"lodash\": \"^4.17.21\",","isFullCredit":false},{"lineNumber":581,"author":{"gitId":"sopa301"},"content":" \"log-symbols\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":582,"author":{"gitId":"sopa301"},"content":" \"minimist\": \"^1.2.8\",","isFullCredit":false},{"lineNumber":583,"author":{"gitId":"sopa301"},"content":" \"ospath\": \"^1.2.2\",","isFullCredit":false},{"lineNumber":584,"author":{"gitId":"sopa301"},"content":" \"pretty-bytes\": \"^5.6.0\",","isFullCredit":false},{"lineNumber":585,"author":{"gitId":"sopa301"},"content":" \"process\": \"^0.11.10\",","isFullCredit":false},{"lineNumber":586,"author":{"gitId":"sopa301"},"content":" \"proxy-from-env\": \"1.0.0\",","isFullCredit":false},{"lineNumber":587,"author":{"gitId":"sopa301"},"content":" \"request-progress\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":588,"author":{"gitId":"sopa301"},"content":" \"semver\": \"^7.5.3\",","isFullCredit":false},{"lineNumber":589,"author":{"gitId":"sopa301"},"content":" \"supports-color\": \"^8.1.1\",","isFullCredit":false},{"lineNumber":590,"author":{"gitId":"sopa301"},"content":" \"tmp\": \"~0.2.1\",","isFullCredit":false},{"lineNumber":591,"author":{"gitId":"sopa301"},"content":" \"untildify\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":592,"author":{"gitId":"sopa301"},"content":" \"yauzl\": \"^2.10.0\"","isFullCredit":false},{"lineNumber":593,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":594,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":595,"author":{"gitId":"sopa301"},"content":" \"cypress\": \"bin/cypress\"","isFullCredit":false},{"lineNumber":596,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":597,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":598,"author":{"gitId":"sopa301"},"content":" \"node\": \"^16.0.0 || ^18.0.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":599,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":600,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":601,"author":{"gitId":"sopa301"},"content":" \"node_modules/dashdash\": {","isFullCredit":false},{"lineNumber":602,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.14.1\",","isFullCredit":false},{"lineNumber":603,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz\",","isFullCredit":false},{"lineNumber":604,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g\u003d\u003d\",","isFullCredit":false},{"lineNumber":605,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":606,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":607,"author":{"gitId":"sopa301"},"content":" \"assert-plus\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":608,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":609,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":610,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10\"","isFullCredit":false},{"lineNumber":611,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":612,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":613,"author":{"gitId":"sopa301"},"content":" \"node_modules/dayjs\": {","isFullCredit":false},{"lineNumber":614,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.11.10\",","isFullCredit":false},{"lineNumber":615,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz\",","isFullCredit":false},{"lineNumber":616,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":617,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":618,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":619,"author":{"gitId":"sopa301"},"content":" \"node_modules/debug\": {","isFullCredit":false},{"lineNumber":620,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.4\",","isFullCredit":false},{"lineNumber":621,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz\",","isFullCredit":false},{"lineNumber":622,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":623,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":624,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":625,"author":{"gitId":"sopa301"},"content":" \"ms\": \"2.1.2\"","isFullCredit":false},{"lineNumber":626,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":627,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":628,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6.0\"","isFullCredit":false},{"lineNumber":629,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":630,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":631,"author":{"gitId":"sopa301"},"content":" \"supports-color\": {","isFullCredit":false},{"lineNumber":632,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":633,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":634,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":635,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":636,"author":{"gitId":"sopa301"},"content":" \"node_modules/debug/node_modules/ms\": {","isFullCredit":false},{"lineNumber":637,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.2\",","isFullCredit":false},{"lineNumber":638,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz\",","isFullCredit":false},{"lineNumber":639,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w\u003d\u003d\",","isFullCredit":false},{"lineNumber":640,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":641,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":642,"author":{"gitId":"sopa301"},"content":" \"node_modules/delayed-stream\": {","isFullCredit":false},{"lineNumber":643,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":644,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":645,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":646,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":647,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":648,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.4.0\"","isFullCredit":false},{"lineNumber":649,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":650,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":651,"author":{"gitId":"sopa301"},"content":" \"node_modules/ecc-jsbn\": {","isFullCredit":false},{"lineNumber":652,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.1.2\",","isFullCredit":false},{"lineNumber":653,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz\",","isFullCredit":false},{"lineNumber":654,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw\u003d\u003d\",","isFullCredit":false},{"lineNumber":655,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":656,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":657,"author":{"gitId":"sopa301"},"content":" \"jsbn\": \"~0.1.0\",","isFullCredit":false},{"lineNumber":658,"author":{"gitId":"sopa301"},"content":" \"safer-buffer\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":659,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":660,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":661,"author":{"gitId":"sopa301"},"content":" \"node_modules/emoji-regex\": {","isFullCredit":false},{"lineNumber":662,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.0.0\",","isFullCredit":false},{"lineNumber":663,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",","isFullCredit":false},{"lineNumber":664,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A\u003d\u003d\",","isFullCredit":false},{"lineNumber":665,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":666,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":667,"author":{"gitId":"sopa301"},"content":" \"node_modules/end-of-stream\": {","isFullCredit":false},{"lineNumber":668,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.4.4\",","isFullCredit":false},{"lineNumber":669,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz\",","isFullCredit":false},{"lineNumber":670,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":671,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":672,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":673,"author":{"gitId":"sopa301"},"content":" \"once\": \"^1.4.0\"","isFullCredit":false},{"lineNumber":674,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":675,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":676,"author":{"gitId":"sopa301"},"content":" \"node_modules/enquirer\": {","isFullCredit":false},{"lineNumber":677,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.4.1\",","isFullCredit":false},{"lineNumber":678,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz\",","isFullCredit":false},{"lineNumber":679,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":680,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":681,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":682,"author":{"gitId":"sopa301"},"content":" \"ansi-colors\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":683,"author":{"gitId":"sopa301"},"content":" \"strip-ansi\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":684,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":685,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":686,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8.6\"","isFullCredit":false},{"lineNumber":687,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":688,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":689,"author":{"gitId":"sopa301"},"content":" \"node_modules/escape-string-regexp\": {","isFullCredit":false},{"lineNumber":690,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":691,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz\",","isFullCredit":false},{"lineNumber":692,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg\u003d\u003d\",","isFullCredit":false},{"lineNumber":693,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":694,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":695,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.8.0\"","isFullCredit":false},{"lineNumber":696,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":697,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":698,"author":{"gitId":"sopa301"},"content":" \"node_modules/eventemitter2\": {","isFullCredit":false},{"lineNumber":699,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.4.7\",","isFullCredit":false},{"lineNumber":700,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz\",","isFullCredit":false},{"lineNumber":701,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg\u003d\u003d\",","isFullCredit":false},{"lineNumber":702,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":703,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":704,"author":{"gitId":"sopa301"},"content":" \"node_modules/execa\": {","isFullCredit":false},{"lineNumber":705,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":706,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/execa/-/execa-4.1.0.tgz\",","isFullCredit":false},{"lineNumber":707,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA\u003d\u003d\",","isFullCredit":false},{"lineNumber":708,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":709,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":710,"author":{"gitId":"sopa301"},"content":" \"cross-spawn\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":711,"author":{"gitId":"sopa301"},"content":" \"get-stream\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":712,"author":{"gitId":"sopa301"},"content":" \"human-signals\": \"^1.1.1\",","isFullCredit":false},{"lineNumber":713,"author":{"gitId":"sopa301"},"content":" \"is-stream\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":714,"author":{"gitId":"sopa301"},"content":" \"merge-stream\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":715,"author":{"gitId":"sopa301"},"content":" \"npm-run-path\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":716,"author":{"gitId":"sopa301"},"content":" \"onetime\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":717,"author":{"gitId":"sopa301"},"content":" \"signal-exit\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":718,"author":{"gitId":"sopa301"},"content":" \"strip-final-newline\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":719,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":720,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":721,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":722,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":723,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":724,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sindresorhus/execa?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":725,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":726,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":727,"author":{"gitId":"sopa301"},"content":" \"node_modules/executable\": {","isFullCredit":false},{"lineNumber":728,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.1\",","isFullCredit":false},{"lineNumber":729,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/executable/-/executable-4.1.1.tgz\",","isFullCredit":false},{"lineNumber":730,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg\u003d\u003d\",","isFullCredit":false},{"lineNumber":731,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":732,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":733,"author":{"gitId":"sopa301"},"content":" \"pify\": \"^2.2.0\"","isFullCredit":false},{"lineNumber":734,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":735,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":736,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":737,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":738,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":739,"author":{"gitId":"sopa301"},"content":" \"node_modules/extend\": {","isFullCredit":false},{"lineNumber":740,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.2\",","isFullCredit":false},{"lineNumber":741,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/extend/-/extend-3.0.2.tgz\",","isFullCredit":false},{"lineNumber":742,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g\u003d\u003d\",","isFullCredit":false},{"lineNumber":743,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":744,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":745,"author":{"gitId":"sopa301"},"content":" \"node_modules/extract-zip\": {","isFullCredit":false},{"lineNumber":746,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":747,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz\",","isFullCredit":false},{"lineNumber":748,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg\u003d\u003d\",","isFullCredit":false},{"lineNumber":749,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":750,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":751,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":752,"author":{"gitId":"sopa301"},"content":" \"get-stream\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":753,"author":{"gitId":"sopa301"},"content":" \"yauzl\": \"^2.10.0\"","isFullCredit":false},{"lineNumber":754,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":755,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":756,"author":{"gitId":"sopa301"},"content":" \"extract-zip\": \"cli.js\"","isFullCredit":false},{"lineNumber":757,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":758,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":759,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 10.17.0\"","isFullCredit":false},{"lineNumber":760,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":761,"author":{"gitId":"sopa301"},"content":" \"optionalDependencies\": {","isFullCredit":false},{"lineNumber":762,"author":{"gitId":"sopa301"},"content":" \"@types/yauzl\": \"^2.9.1\"","isFullCredit":false},{"lineNumber":763,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":764,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":765,"author":{"gitId":"sopa301"},"content":" \"node_modules/extsprintf\": {","isFullCredit":false},{"lineNumber":766,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.3.0\",","isFullCredit":false},{"lineNumber":767,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz\",","isFullCredit":false},{"lineNumber":768,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g\u003d\u003d\",","isFullCredit":false},{"lineNumber":769,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":770,"author":{"gitId":"sopa301"},"content":" \"engines\": [","isFullCredit":false},{"lineNumber":771,"author":{"gitId":"sopa301"},"content":" \"node \u003e\u003d0.6.0\"","isFullCredit":false},{"lineNumber":772,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":773,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":774,"author":{"gitId":"sopa301"},"content":" \"node_modules/fd-slicer\": {","isFullCredit":false},{"lineNumber":775,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.0\",","isFullCredit":false},{"lineNumber":776,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz\",","isFullCredit":false},{"lineNumber":777,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g\u003d\u003d\",","isFullCredit":false},{"lineNumber":778,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":779,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":780,"author":{"gitId":"sopa301"},"content":" \"pend\": \"~1.2.0\"","isFullCredit":false},{"lineNumber":781,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":782,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":783,"author":{"gitId":"sopa301"},"content":" \"node_modules/figures\": {","isFullCredit":false},{"lineNumber":784,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.2.0\",","isFullCredit":false},{"lineNumber":785,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/figures/-/figures-3.2.0.tgz\",","isFullCredit":false},{"lineNumber":786,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg\u003d\u003d\",","isFullCredit":false},{"lineNumber":787,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":788,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":789,"author":{"gitId":"sopa301"},"content":" \"escape-string-regexp\": \"^1.0.5\"","isFullCredit":false},{"lineNumber":790,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":791,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":792,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":793,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":794,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":795,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":796,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":797,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":798,"author":{"gitId":"sopa301"},"content":" \"node_modules/forever-agent\": {","isFullCredit":false},{"lineNumber":799,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.6.1\",","isFullCredit":false},{"lineNumber":800,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz\",","isFullCredit":false},{"lineNumber":801,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw\u003d\u003d\",","isFullCredit":false},{"lineNumber":802,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":803,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":804,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":805,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":806,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":807,"author":{"gitId":"sopa301"},"content":" \"node_modules/form-data\": {","isFullCredit":false},{"lineNumber":808,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.3\",","isFullCredit":false},{"lineNumber":809,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz\",","isFullCredit":false},{"lineNumber":810,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":811,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":812,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":813,"author":{"gitId":"sopa301"},"content":" \"asynckit\": \"^0.4.0\",","isFullCredit":false},{"lineNumber":814,"author":{"gitId":"sopa301"},"content":" \"combined-stream\": \"^1.0.6\",","isFullCredit":false},{"lineNumber":815,"author":{"gitId":"sopa301"},"content":" \"mime-types\": \"^2.1.12\"","isFullCredit":false},{"lineNumber":816,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":817,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":818,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.12\"","isFullCredit":false},{"lineNumber":819,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":820,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":821,"author":{"gitId":"sopa301"},"content":" \"node_modules/fs-extra\": {","isFullCredit":false},{"lineNumber":822,"author":{"gitId":"sopa301"},"content":" \"version\": \"9.1.0\",","isFullCredit":false},{"lineNumber":823,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz\",","isFullCredit":false},{"lineNumber":824,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":825,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":826,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":827,"author":{"gitId":"sopa301"},"content":" \"at-least-node\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":828,"author":{"gitId":"sopa301"},"content":" \"graceful-fs\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":829,"author":{"gitId":"sopa301"},"content":" \"jsonfile\": \"^6.0.1\",","isFullCredit":false},{"lineNumber":830,"author":{"gitId":"sopa301"},"content":" \"universalify\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":831,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":832,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":833,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":834,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":835,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":836,"author":{"gitId":"sopa301"},"content":" \"node_modules/fs-extra/node_modules/universalify\": {","isFullCredit":false},{"lineNumber":837,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":838,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":839,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":840,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":841,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":842,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 10.0.0\"","isFullCredit":false},{"lineNumber":843,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":844,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":845,"author":{"gitId":"sopa301"},"content":" \"node_modules/fs.realpath\": {","isFullCredit":false},{"lineNumber":846,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":847,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":848,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw\u003d\u003d\",","isFullCredit":false},{"lineNumber":849,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":850,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":851,"author":{"gitId":"sopa301"},"content":" \"node_modules/function-bind\": {","isFullCredit":false},{"lineNumber":852,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.1\",","isFullCredit":false},{"lineNumber":853,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz\",","isFullCredit":false},{"lineNumber":854,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A\u003d\u003d\",","isFullCredit":false},{"lineNumber":855,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":856,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":857,"author":{"gitId":"sopa301"},"content":" \"node_modules/get-intrinsic\": {","isFullCredit":false},{"lineNumber":858,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":859,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz\",","isFullCredit":false},{"lineNumber":860,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw\u003d\u003d\",","isFullCredit":false},{"lineNumber":861,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":862,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":863,"author":{"gitId":"sopa301"},"content":" \"function-bind\": \"^1.1.1\",","isFullCredit":false},{"lineNumber":864,"author":{"gitId":"sopa301"},"content":" \"has\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":865,"author":{"gitId":"sopa301"},"content":" \"has-proto\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":866,"author":{"gitId":"sopa301"},"content":" \"has-symbols\": \"^1.0.3\"","isFullCredit":false},{"lineNumber":867,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":868,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":869,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":870,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":871,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":872,"author":{"gitId":"sopa301"},"content":" \"node_modules/get-stream\": {","isFullCredit":false},{"lineNumber":873,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.2.0\",","isFullCredit":false},{"lineNumber":874,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz\",","isFullCredit":false},{"lineNumber":875,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA\u003d\u003d\",","isFullCredit":false},{"lineNumber":876,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":877,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":878,"author":{"gitId":"sopa301"},"content":" \"pump\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":879,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":880,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":881,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":882,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":883,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":884,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":885,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":886,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":887,"author":{"gitId":"sopa301"},"content":" \"node_modules/getos\": {","isFullCredit":false},{"lineNumber":888,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.2.1\",","isFullCredit":false},{"lineNumber":889,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/getos/-/getos-3.2.1.tgz\",","isFullCredit":false},{"lineNumber":890,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":891,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":892,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":893,"author":{"gitId":"sopa301"},"content":" \"async\": \"^3.2.0\"","isFullCredit":false},{"lineNumber":894,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":895,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":896,"author":{"gitId":"sopa301"},"content":" \"node_modules/getpass\": {","isFullCredit":false},{"lineNumber":897,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.1.7\",","isFullCredit":false},{"lineNumber":898,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz\",","isFullCredit":false},{"lineNumber":899,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng\u003d\u003d\",","isFullCredit":false},{"lineNumber":900,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":901,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":902,"author":{"gitId":"sopa301"},"content":" \"assert-plus\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":903,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":904,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":905,"author":{"gitId":"sopa301"},"content":" \"node_modules/glob\": {","isFullCredit":false},{"lineNumber":906,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.2.3\",","isFullCredit":false},{"lineNumber":907,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/glob/-/glob-7.2.3.tgz\",","isFullCredit":false},{"lineNumber":908,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":909,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":910,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":911,"author":{"gitId":"sopa301"},"content":" \"fs.realpath\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":912,"author":{"gitId":"sopa301"},"content":" \"inflight\": \"^1.0.4\",","isFullCredit":false},{"lineNumber":913,"author":{"gitId":"sopa301"},"content":" \"inherits\": \"2\",","isFullCredit":false},{"lineNumber":914,"author":{"gitId":"sopa301"},"content":" \"minimatch\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":915,"author":{"gitId":"sopa301"},"content":" \"once\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":916,"author":{"gitId":"sopa301"},"content":" \"path-is-absolute\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":917,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":918,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":919,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":920,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":921,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":922,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/isaacs\"","isFullCredit":false},{"lineNumber":923,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":924,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":925,"author":{"gitId":"sopa301"},"content":" \"node_modules/global-dirs\": {","isFullCredit":false},{"lineNumber":926,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":927,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz\",","isFullCredit":false},{"lineNumber":928,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA\u003d\u003d\",","isFullCredit":false},{"lineNumber":929,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":930,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":931,"author":{"gitId":"sopa301"},"content":" \"ini\": \"2.0.0\"","isFullCredit":false},{"lineNumber":932,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":933,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":934,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":935,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":936,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":937,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":938,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":939,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":940,"author":{"gitId":"sopa301"},"content":" \"node_modules/graceful-fs\": {","isFullCredit":false},{"lineNumber":941,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.2.11\",","isFullCredit":false},{"lineNumber":942,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz\",","isFullCredit":false},{"lineNumber":943,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":944,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":945,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":946,"author":{"gitId":"sopa301"},"content":" \"node_modules/has\": {","isFullCredit":false},{"lineNumber":947,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":948,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/has/-/has-1.0.4.tgz\",","isFullCredit":false},{"lineNumber":949,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":950,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":951,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":952,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4.0\"","isFullCredit":false},{"lineNumber":953,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":954,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":955,"author":{"gitId":"sopa301"},"content":" \"node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":956,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":957,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":958,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":959,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":960,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":961,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":962,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":963,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":964,"author":{"gitId":"sopa301"},"content":" \"node_modules/has-proto\": {","isFullCredit":false},{"lineNumber":965,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":966,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz\",","isFullCredit":false},{"lineNumber":967,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg\u003d\u003d\",","isFullCredit":false},{"lineNumber":968,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":969,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":970,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":971,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":972,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":973,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":974,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":975,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":976,"author":{"gitId":"sopa301"},"content":" \"node_modules/has-symbols\": {","isFullCredit":false},{"lineNumber":977,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":978,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz\",","isFullCredit":false},{"lineNumber":979,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A\u003d\u003d\",","isFullCredit":false},{"lineNumber":980,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":981,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":982,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":983,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":984,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":985,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":986,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":987,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":988,"author":{"gitId":"sopa301"},"content":" \"node_modules/http-signature\": {","isFullCredit":false},{"lineNumber":989,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.3.6\",","isFullCredit":false},{"lineNumber":990,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz\",","isFullCredit":false},{"lineNumber":991,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw\u003d\u003d\",","isFullCredit":false},{"lineNumber":992,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":993,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":994,"author":{"gitId":"sopa301"},"content":" \"assert-plus\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":995,"author":{"gitId":"sopa301"},"content":" \"jsprim\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":996,"author":{"gitId":"sopa301"},"content":" \"sshpk\": \"^1.14.1\"","isFullCredit":false},{"lineNumber":997,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":998,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":999,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10\"","isFullCredit":false},{"lineNumber":1000,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1001,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1002,"author":{"gitId":"sopa301"},"content":" \"node_modules/human-signals\": {","isFullCredit":false},{"lineNumber":1003,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.1\",","isFullCredit":false},{"lineNumber":1004,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz\",","isFullCredit":false},{"lineNumber":1005,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1006,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1007,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1008,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8.12.0\"","isFullCredit":false},{"lineNumber":1009,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1010,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1011,"author":{"gitId":"sopa301"},"content":" \"node_modules/ieee754\": {","isFullCredit":false},{"lineNumber":1012,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":1013,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz\",","isFullCredit":false},{"lineNumber":1014,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1015,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1016,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":1017,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":1018,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":1019,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":1020,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1021,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":1022,"author":{"gitId":"sopa301"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":1023,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":1024,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1025,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":1026,"author":{"gitId":"sopa301"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":1027,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":1028,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1029,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1030,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1031,"author":{"gitId":"sopa301"},"content":" \"node_modules/indent-string\": {","isFullCredit":false},{"lineNumber":1032,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1033,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1034,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1035,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1036,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1037,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1038,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1039,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1040,"author":{"gitId":"sopa301"},"content":" \"node_modules/inflight\": {","isFullCredit":false},{"lineNumber":1041,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.6\",","isFullCredit":false},{"lineNumber":1042,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz\",","isFullCredit":false},{"lineNumber":1043,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1044,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1045,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1046,"author":{"gitId":"sopa301"},"content":" \"once\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":1047,"author":{"gitId":"sopa301"},"content":" \"wrappy\": \"1\"","isFullCredit":false},{"lineNumber":1048,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1049,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1050,"author":{"gitId":"sopa301"},"content":" \"node_modules/inherits\": {","isFullCredit":false},{"lineNumber":1051,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.4\",","isFullCredit":false},{"lineNumber":1052,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz\",","isFullCredit":false},{"lineNumber":1053,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1054,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1055,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1056,"author":{"gitId":"sopa301"},"content":" \"node_modules/ini\": {","isFullCredit":false},{"lineNumber":1057,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":1058,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ini/-/ini-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":1059,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1060,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1061,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1062,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1063,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1064,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1065,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-ci\": {","isFullCredit":false},{"lineNumber":1066,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":1067,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz\",","isFullCredit":false},{"lineNumber":1068,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1069,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1070,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1071,"author":{"gitId":"sopa301"},"content":" \"ci-info\": \"^3.2.0\"","isFullCredit":false},{"lineNumber":1072,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1073,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":1074,"author":{"gitId":"sopa301"},"content":" \"is-ci\": \"bin.js\"","isFullCredit":false},{"lineNumber":1075,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1076,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1077,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-fullwidth-code-point\": {","isFullCredit":false},{"lineNumber":1078,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":1079,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":1080,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1081,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1082,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1083,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1084,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1085,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1086,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-installed-globally\": {","isFullCredit":false},{"lineNumber":1087,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":1088,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz\",","isFullCredit":false},{"lineNumber":1089,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1090,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1091,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1092,"author":{"gitId":"sopa301"},"content":" \"global-dirs\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":1093,"author":{"gitId":"sopa301"},"content":" \"is-path-inside\": \"^3.0.2\"","isFullCredit":false},{"lineNumber":1094,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1095,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1096,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1097,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1098,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1099,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1100,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1101,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1102,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-path-inside\": {","isFullCredit":false},{"lineNumber":1103,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.3\",","isFullCredit":false},{"lineNumber":1104,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz\",","isFullCredit":false},{"lineNumber":1105,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1106,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1107,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1108,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1109,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1110,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1111,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-stream\": {","isFullCredit":false},{"lineNumber":1112,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":1113,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz\",","isFullCredit":false},{"lineNumber":1114,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1115,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1116,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1117,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1118,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1119,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1120,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1121,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1122,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1123,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-typedarray\": {","isFullCredit":false},{"lineNumber":1124,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":1125,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":1126,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1127,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1128,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1129,"author":{"gitId":"sopa301"},"content":" \"node_modules/is-unicode-supported\": {","isFullCredit":false},{"lineNumber":1130,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.1.0\",","isFullCredit":false},{"lineNumber":1131,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz\",","isFullCredit":false},{"lineNumber":1132,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1133,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1134,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1135,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1136,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1137,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1138,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1139,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1140,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1141,"author":{"gitId":"sopa301"},"content":" \"node_modules/isexe\": {","isFullCredit":false},{"lineNumber":1142,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":1143,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":1144,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1145,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1146,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1147,"author":{"gitId":"sopa301"},"content":" \"node_modules/isstream\": {","isFullCredit":false},{"lineNumber":1148,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.1.2\",","isFullCredit":false},{"lineNumber":1149,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz\",","isFullCredit":false},{"lineNumber":1150,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g\u003d\u003d\",","isFullCredit":false},{"lineNumber":1151,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1152,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1153,"author":{"gitId":"sopa301"},"content":" \"node_modules/jsbn\": {","isFullCredit":false},{"lineNumber":1154,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.1.1\",","isFullCredit":false},{"lineNumber":1155,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz\",","isFullCredit":false},{"lineNumber":1156,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1157,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1158,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1159,"author":{"gitId":"sopa301"},"content":" \"node_modules/json-schema\": {","isFullCredit":false},{"lineNumber":1160,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":1161,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz\",","isFullCredit":false},{"lineNumber":1162,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1163,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1164,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1165,"author":{"gitId":"sopa301"},"content":" \"node_modules/json-stringify-safe\": {","isFullCredit":false},{"lineNumber":1166,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.1\",","isFullCredit":false},{"lineNumber":1167,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz\",","isFullCredit":false},{"lineNumber":1168,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1169,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1170,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1171,"author":{"gitId":"sopa301"},"content":" \"node_modules/jsonfile\": {","isFullCredit":false},{"lineNumber":1172,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.1.0\",","isFullCredit":false},{"lineNumber":1173,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz\",","isFullCredit":false},{"lineNumber":1174,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1175,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1176,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1177,"author":{"gitId":"sopa301"},"content":" \"universalify\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":1178,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1179,"author":{"gitId":"sopa301"},"content":" \"optionalDependencies\": {","isFullCredit":false},{"lineNumber":1180,"author":{"gitId":"sopa301"},"content":" \"graceful-fs\": \"^4.1.6\"","isFullCredit":false},{"lineNumber":1181,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1182,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1183,"author":{"gitId":"sopa301"},"content":" \"node_modules/jsonfile/node_modules/universalify\": {","isFullCredit":false},{"lineNumber":1184,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":1185,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":1186,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1187,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1188,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1189,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 10.0.0\"","isFullCredit":false},{"lineNumber":1190,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1191,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1192,"author":{"gitId":"sopa301"},"content":" \"node_modules/jsprim\": {","isFullCredit":false},{"lineNumber":1193,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":1194,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz\",","isFullCredit":false},{"lineNumber":1195,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1196,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1197,"author":{"gitId":"sopa301"},"content":" \"engines\": [","isFullCredit":false},{"lineNumber":1198,"author":{"gitId":"sopa301"},"content":" \"node \u003e\u003d0.6.0\"","isFullCredit":false},{"lineNumber":1199,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1200,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1201,"author":{"gitId":"sopa301"},"content":" \"assert-plus\": \"1.0.0\",","isFullCredit":false},{"lineNumber":1202,"author":{"gitId":"sopa301"},"content":" \"extsprintf\": \"1.3.0\",","isFullCredit":false},{"lineNumber":1203,"author":{"gitId":"sopa301"},"content":" \"json-schema\": \"0.4.0\",","isFullCredit":false},{"lineNumber":1204,"author":{"gitId":"sopa301"},"content":" \"verror\": \"1.10.0\"","isFullCredit":false},{"lineNumber":1205,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1206,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1207,"author":{"gitId":"sopa301"},"content":" \"node_modules/lazy-ass\": {","isFullCredit":false},{"lineNumber":1208,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.6.0\",","isFullCredit":false},{"lineNumber":1209,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz\",","isFullCredit":false},{"lineNumber":1210,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1211,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1212,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1213,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e 0.8\"","isFullCredit":false},{"lineNumber":1214,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1215,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1216,"author":{"gitId":"sopa301"},"content":" \"node_modules/listr2\": {","isFullCredit":false},{"lineNumber":1217,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.14.0\",","isFullCredit":false},{"lineNumber":1218,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz\",","isFullCredit":false},{"lineNumber":1219,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g\u003d\u003d\",","isFullCredit":false},{"lineNumber":1220,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1221,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1222,"author":{"gitId":"sopa301"},"content":" \"cli-truncate\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":1223,"author":{"gitId":"sopa301"},"content":" \"colorette\": \"^2.0.16\",","isFullCredit":false},{"lineNumber":1224,"author":{"gitId":"sopa301"},"content":" \"log-update\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":1225,"author":{"gitId":"sopa301"},"content":" \"p-map\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":1226,"author":{"gitId":"sopa301"},"content":" \"rfdc\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":1227,"author":{"gitId":"sopa301"},"content":" \"rxjs\": \"^7.5.1\",","isFullCredit":false},{"lineNumber":1228,"author":{"gitId":"sopa301"},"content":" \"through\": \"^2.3.8\",","isFullCredit":false},{"lineNumber":1229,"author":{"gitId":"sopa301"},"content":" \"wrap-ansi\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":1230,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1231,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1232,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10.0.0\"","isFullCredit":false},{"lineNumber":1233,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1234,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1235,"author":{"gitId":"sopa301"},"content":" \"enquirer\": \"\u003e\u003d 2.3.0 \u003c 3\"","isFullCredit":false},{"lineNumber":1236,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1237,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":1238,"author":{"gitId":"sopa301"},"content":" \"enquirer\": {","isFullCredit":false},{"lineNumber":1239,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":1240,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1241,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1242,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1243,"author":{"gitId":"sopa301"},"content":" \"node_modules/lodash\": {","isFullCredit":false},{"lineNumber":1244,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.17.21\",","isFullCredit":false},{"lineNumber":1245,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",","isFullCredit":false},{"lineNumber":1246,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1247,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1248,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1249,"author":{"gitId":"sopa301"},"content":" \"node_modules/lodash.once\": {","isFullCredit":false},{"lineNumber":1250,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.1\",","isFullCredit":false},{"lineNumber":1251,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz\",","isFullCredit":false},{"lineNumber":1252,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1253,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1254,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1255,"author":{"gitId":"sopa301"},"content":" \"node_modules/log-symbols\": {","isFullCredit":false},{"lineNumber":1256,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":1257,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz\",","isFullCredit":false},{"lineNumber":1258,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1259,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1260,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1261,"author":{"gitId":"sopa301"},"content":" \"chalk\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":1262,"author":{"gitId":"sopa301"},"content":" \"is-unicode-supported\": \"^0.1.0\"","isFullCredit":false},{"lineNumber":1263,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1264,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1265,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1266,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1267,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1268,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1269,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1270,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1271,"author":{"gitId":"sopa301"},"content":" \"node_modules/log-update\": {","isFullCredit":false},{"lineNumber":1272,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1273,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1274,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1275,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1276,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1277,"author":{"gitId":"sopa301"},"content":" \"ansi-escapes\": \"^4.3.0\",","isFullCredit":false},{"lineNumber":1278,"author":{"gitId":"sopa301"},"content":" \"cli-cursor\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":1279,"author":{"gitId":"sopa301"},"content":" \"slice-ansi\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":1280,"author":{"gitId":"sopa301"},"content":" \"wrap-ansi\": \"^6.2.0\"","isFullCredit":false},{"lineNumber":1281,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1282,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1283,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1284,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1285,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1286,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1287,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1288,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1289,"author":{"gitId":"sopa301"},"content":" \"node_modules/log-update/node_modules/slice-ansi\": {","isFullCredit":false},{"lineNumber":1290,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1291,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1292,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1293,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1294,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1295,"author":{"gitId":"sopa301"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":1296,"author":{"gitId":"sopa301"},"content":" \"astral-regex\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":1297,"author":{"gitId":"sopa301"},"content":" \"is-fullwidth-code-point\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":1298,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1299,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1300,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1301,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1302,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1303,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/slice-ansi?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":1304,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1305,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1306,"author":{"gitId":"sopa301"},"content":" \"node_modules/log-update/node_modules/wrap-ansi\": {","isFullCredit":false},{"lineNumber":1307,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.2.0\",","isFullCredit":false},{"lineNumber":1308,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz\",","isFullCredit":false},{"lineNumber":1309,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1310,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1311,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1312,"author":{"gitId":"sopa301"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":1313,"author":{"gitId":"sopa301"},"content":" \"string-width\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":1314,"author":{"gitId":"sopa301"},"content":" \"strip-ansi\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":1315,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1316,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1317,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1318,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1319,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1320,"author":{"gitId":"sopa301"},"content":" \"node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":1321,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":1322,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":1323,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1324,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1325,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1326,"author":{"gitId":"sopa301"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":1327,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1328,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1329,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1330,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1331,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1332,"author":{"gitId":"sopa301"},"content":" \"node_modules/merge-stream\": {","isFullCredit":false},{"lineNumber":1333,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":1334,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":1335,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w\u003d\u003d\",","isFullCredit":false},{"lineNumber":1336,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1337,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1338,"author":{"gitId":"sopa301"},"content":" \"node_modules/mime-db\": {","isFullCredit":false},{"lineNumber":1339,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.52.0\",","isFullCredit":false},{"lineNumber":1340,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz\",","isFullCredit":false},{"lineNumber":1341,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1342,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1343,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1344,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":1345,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1346,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1347,"author":{"gitId":"sopa301"},"content":" \"node_modules/mime-types\": {","isFullCredit":false},{"lineNumber":1348,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.35\",","isFullCredit":false},{"lineNumber":1349,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz\",","isFullCredit":false},{"lineNumber":1350,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1351,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1352,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1353,"author":{"gitId":"sopa301"},"content":" \"mime-db\": \"1.52.0\"","isFullCredit":false},{"lineNumber":1354,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1355,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1356,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":1357,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1358,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1359,"author":{"gitId":"sopa301"},"content":" \"node_modules/mimic-fn\": {","isFullCredit":false},{"lineNumber":1360,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":1361,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz\",","isFullCredit":false},{"lineNumber":1362,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1363,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1364,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1365,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":1366,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1367,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1368,"author":{"gitId":"sopa301"},"content":" \"node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":1369,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":1370,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz\",","isFullCredit":false},{"lineNumber":1371,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1372,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1373,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1374,"author":{"gitId":"sopa301"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":1375,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1376,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1377,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":1378,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1379,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1380,"author":{"gitId":"sopa301"},"content":" \"node_modules/minimist\": {","isFullCredit":false},{"lineNumber":1381,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.8\",","isFullCredit":false},{"lineNumber":1382,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz\",","isFullCredit":false},{"lineNumber":1383,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1384,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1385,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1386,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":1387,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1388,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1389,"author":{"gitId":"sopa301"},"content":" \"node_modules/ms\": {","isFullCredit":false},{"lineNumber":1390,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.3\",","isFullCredit":false},{"lineNumber":1391,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",","isFullCredit":false},{"lineNumber":1392,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1393,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1394,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1395,"author":{"gitId":"sopa301"},"content":" \"node_modules/npm-run-path\": {","isFullCredit":false},{"lineNumber":1396,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.1\",","isFullCredit":false},{"lineNumber":1397,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz\",","isFullCredit":false},{"lineNumber":1398,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1399,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1400,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1401,"author":{"gitId":"sopa301"},"content":" \"path-key\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":1402,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1403,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1404,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1405,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1406,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1407,"author":{"gitId":"sopa301"},"content":" \"node_modules/object-inspect\": {","isFullCredit":false},{"lineNumber":1408,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.12.3\",","isFullCredit":false},{"lineNumber":1409,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz\",","isFullCredit":false},{"lineNumber":1410,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g\u003d\u003d\",","isFullCredit":false},{"lineNumber":1411,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1412,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1413,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":1414,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1415,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1416,"author":{"gitId":"sopa301"},"content":" \"node_modules/once\": {","isFullCredit":false},{"lineNumber":1417,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":1418,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/once/-/once-1.4.0.tgz\",","isFullCredit":false},{"lineNumber":1419,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w\u003d\u003d\",","isFullCredit":false},{"lineNumber":1420,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1421,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1422,"author":{"gitId":"sopa301"},"content":" \"wrappy\": \"1\"","isFullCredit":false},{"lineNumber":1423,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1424,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1425,"author":{"gitId":"sopa301"},"content":" \"node_modules/onetime\": {","isFullCredit":false},{"lineNumber":1426,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.1.2\",","isFullCredit":false},{"lineNumber":1427,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz\",","isFullCredit":false},{"lineNumber":1428,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1429,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1430,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1431,"author":{"gitId":"sopa301"},"content":" \"mimic-fn\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":1432,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1433,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1434,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":1435,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1436,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1437,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1438,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1439,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1440,"author":{"gitId":"sopa301"},"content":" \"node_modules/ospath\": {","isFullCredit":false},{"lineNumber":1441,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.2\",","isFullCredit":false},{"lineNumber":1442,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz\",","isFullCredit":false},{"lineNumber":1443,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1444,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1445,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1446,"author":{"gitId":"sopa301"},"content":" \"node_modules/p-map\": {","isFullCredit":false},{"lineNumber":1447,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1448,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1449,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1450,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1451,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1452,"author":{"gitId":"sopa301"},"content":" \"aggregate-error\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":1453,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1454,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1455,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1456,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1457,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1458,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1459,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1460,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1461,"author":{"gitId":"sopa301"},"content":" \"node_modules/path-is-absolute\": {","isFullCredit":false},{"lineNumber":1462,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":1463,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz\",","isFullCredit":false},{"lineNumber":1464,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1465,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1466,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1467,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":1468,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1469,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1470,"author":{"gitId":"sopa301"},"content":" \"node_modules/path-key\": {","isFullCredit":false},{"lineNumber":1471,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":1472,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz\",","isFullCredit":false},{"lineNumber":1473,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":1474,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1475,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1476,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1477,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1478,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1479,"author":{"gitId":"sopa301"},"content":" \"node_modules/pend\": {","isFullCredit":false},{"lineNumber":1480,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":1481,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/pend/-/pend-1.2.0.tgz\",","isFullCredit":false},{"lineNumber":1482,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1483,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1484,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1485,"author":{"gitId":"sopa301"},"content":" \"node_modules/performance-now\": {","isFullCredit":false},{"lineNumber":1486,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":1487,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz\",","isFullCredit":false},{"lineNumber":1488,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow\u003d\u003d\",","isFullCredit":false},{"lineNumber":1489,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1490,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1491,"author":{"gitId":"sopa301"},"content":" \"node_modules/pify\": {","isFullCredit":false},{"lineNumber":1492,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":1493,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/pify/-/pify-2.3.0.tgz\",","isFullCredit":false},{"lineNumber":1494,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog\u003d\u003d\",","isFullCredit":false},{"lineNumber":1495,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1496,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1497,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":1498,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1499,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1500,"author":{"gitId":"sopa301"},"content":" \"node_modules/pretty-bytes\": {","isFullCredit":false},{"lineNumber":1501,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.6.0\",","isFullCredit":false},{"lineNumber":1502,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz\",","isFullCredit":false},{"lineNumber":1503,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1504,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1505,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1506,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":1507,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1508,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1509,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1510,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1511,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1512,"author":{"gitId":"sopa301"},"content":" \"node_modules/process\": {","isFullCredit":false},{"lineNumber":1513,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.11.10\",","isFullCredit":false},{"lineNumber":1514,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/process/-/process-0.11.10.tgz\",","isFullCredit":false},{"lineNumber":1515,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1516,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1517,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1518,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.6.0\"","isFullCredit":false},{"lineNumber":1519,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1520,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1521,"author":{"gitId":"sopa301"},"content":" \"node_modules/proxy-from-env\": {","isFullCredit":false},{"lineNumber":1522,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":1523,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":1524,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1525,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1526,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1527,"author":{"gitId":"sopa301"},"content":" \"node_modules/psl\": {","isFullCredit":false},{"lineNumber":1528,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.9.0\",","isFullCredit":false},{"lineNumber":1529,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/psl/-/psl-1.9.0.tgz\",","isFullCredit":false},{"lineNumber":1530,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag\u003d\u003d\",","isFullCredit":false},{"lineNumber":1531,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1532,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1533,"author":{"gitId":"sopa301"},"content":" \"node_modules/pump\": {","isFullCredit":false},{"lineNumber":1534,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":1535,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/pump/-/pump-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":1536,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww\u003d\u003d\",","isFullCredit":false},{"lineNumber":1537,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1538,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1539,"author":{"gitId":"sopa301"},"content":" \"end-of-stream\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":1540,"author":{"gitId":"sopa301"},"content":" \"once\": \"^1.3.1\"","isFullCredit":false},{"lineNumber":1541,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1542,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1543,"author":{"gitId":"sopa301"},"content":" \"node_modules/punycode\": {","isFullCredit":false},{"lineNumber":1544,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":1545,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz\",","isFullCredit":false},{"lineNumber":1546,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1547,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1548,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1549,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":1550,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1551,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1552,"author":{"gitId":"sopa301"},"content":" \"node_modules/qs\": {","isFullCredit":false},{"lineNumber":1553,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.10.4\",","isFullCredit":false},{"lineNumber":1554,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/qs/-/qs-6.10.4.tgz\",","isFullCredit":false},{"lineNumber":1555,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g\u003d\u003d\",","isFullCredit":false},{"lineNumber":1556,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1557,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1558,"author":{"gitId":"sopa301"},"content":" \"side-channel\": \"^1.0.4\"","isFullCredit":false},{"lineNumber":1559,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1560,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1561,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.6\"","isFullCredit":false},{"lineNumber":1562,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1563,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1564,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":1565,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1566,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1567,"author":{"gitId":"sopa301"},"content":" \"node_modules/querystringify\": {","isFullCredit":false},{"lineNumber":1568,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":1569,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz\",","isFullCredit":false},{"lineNumber":1570,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1571,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1572,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1573,"author":{"gitId":"sopa301"},"content":" \"node_modules/request-progress\": {","isFullCredit":false},{"lineNumber":1574,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":1575,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":1576,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1577,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1578,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1579,"author":{"gitId":"sopa301"},"content":" \"throttleit\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":1580,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1581,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1582,"author":{"gitId":"sopa301"},"content":" \"node_modules/requires-port\": {","isFullCredit":false},{"lineNumber":1583,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":1584,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":1585,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1586,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1587,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1588,"author":{"gitId":"sopa301"},"content":" \"node_modules/restore-cursor\": {","isFullCredit":false},{"lineNumber":1589,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":1590,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz\",","isFullCredit":false},{"lineNumber":1591,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1592,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1593,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1594,"author":{"gitId":"sopa301"},"content":" \"onetime\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":1595,"author":{"gitId":"sopa301"},"content":" \"signal-exit\": \"^3.0.2\"","isFullCredit":false},{"lineNumber":1596,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1597,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1598,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1599,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1600,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1601,"author":{"gitId":"sopa301"},"content":" \"node_modules/rfdc\": {","isFullCredit":false},{"lineNumber":1602,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.3.0\",","isFullCredit":false},{"lineNumber":1603,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz\",","isFullCredit":false},{"lineNumber":1604,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1605,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1606,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1607,"author":{"gitId":"sopa301"},"content":" \"node_modules/rimraf\": {","isFullCredit":false},{"lineNumber":1608,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.2\",","isFullCredit":false},{"lineNumber":1609,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz\",","isFullCredit":false},{"lineNumber":1610,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1611,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1612,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1613,"author":{"gitId":"sopa301"},"content":" \"glob\": \"^7.1.3\"","isFullCredit":false},{"lineNumber":1614,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1615,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":1616,"author":{"gitId":"sopa301"},"content":" \"rimraf\": \"bin.js\"","isFullCredit":false},{"lineNumber":1617,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1618,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1619,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/isaacs\"","isFullCredit":false},{"lineNumber":1620,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1621,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1622,"author":{"gitId":"sopa301"},"content":" \"node_modules/rxjs\": {","isFullCredit":false},{"lineNumber":1623,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.8.1\",","isFullCredit":false},{"lineNumber":1624,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz\",","isFullCredit":false},{"lineNumber":1625,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1626,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1627,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1628,"author":{"gitId":"sopa301"},"content":" \"tslib\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":1629,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1630,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1631,"author":{"gitId":"sopa301"},"content":" \"node_modules/safe-buffer\": {","isFullCredit":false},{"lineNumber":1632,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.2.1\",","isFullCredit":false},{"lineNumber":1633,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz\",","isFullCredit":false},{"lineNumber":1634,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1635,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1636,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":1637,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":1638,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":1639,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":1640,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1641,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":1642,"author":{"gitId":"sopa301"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":1643,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":1644,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1645,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":1646,"author":{"gitId":"sopa301"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":1647,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":1648,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1649,"author":{"gitId":"sopa301"},"content":" ]","isFullCredit":false},{"lineNumber":1650,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1651,"author":{"gitId":"sopa301"},"content":" \"node_modules/safer-buffer\": {","isFullCredit":false},{"lineNumber":1652,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.2\",","isFullCredit":false},{"lineNumber":1653,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz\",","isFullCredit":false},{"lineNumber":1654,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1655,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1656,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1657,"author":{"gitId":"sopa301"},"content":" \"node_modules/semver\": {","isFullCredit":false},{"lineNumber":1658,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.5.4\",","isFullCredit":false},{"lineNumber":1659,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.5.4.tgz\",","isFullCredit":false},{"lineNumber":1660,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1661,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1662,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1663,"author":{"gitId":"sopa301"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":1664,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1665,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":1666,"author":{"gitId":"sopa301"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":1667,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1668,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1669,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1670,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1671,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1672,"author":{"gitId":"sopa301"},"content":" \"node_modules/shebang-command\": {","isFullCredit":false},{"lineNumber":1673,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":1674,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":1675,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1676,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1677,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1678,"author":{"gitId":"sopa301"},"content":" \"shebang-regex\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":1679,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1680,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1681,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1682,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1683,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1684,"author":{"gitId":"sopa301"},"content":" \"node_modules/shebang-regex\": {","isFullCredit":false},{"lineNumber":1685,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":1686,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":1687,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1688,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1689,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1690,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1691,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1692,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1693,"author":{"gitId":"sopa301"},"content":" \"node_modules/side-channel\": {","isFullCredit":false},{"lineNumber":1694,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":1695,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz\",","isFullCredit":false},{"lineNumber":1696,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1697,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1698,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1699,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":1700,"author":{"gitId":"sopa301"},"content":" \"get-intrinsic\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":1701,"author":{"gitId":"sopa301"},"content":" \"object-inspect\": \"^1.9.0\"","isFullCredit":false},{"lineNumber":1702,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1703,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1704,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":1705,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1706,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1707,"author":{"gitId":"sopa301"},"content":" \"node_modules/signal-exit\": {","isFullCredit":false},{"lineNumber":1708,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.7\",","isFullCredit":false},{"lineNumber":1709,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz\",","isFullCredit":false},{"lineNumber":1710,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1711,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1712,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1713,"author":{"gitId":"sopa301"},"content":" \"node_modules/slice-ansi\": {","isFullCredit":false},{"lineNumber":1714,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":1715,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":1716,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1717,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1718,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1719,"author":{"gitId":"sopa301"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":1720,"author":{"gitId":"sopa301"},"content":" \"astral-regex\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":1721,"author":{"gitId":"sopa301"},"content":" \"is-fullwidth-code-point\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":1722,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1723,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1724,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1725,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1726,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1727,"author":{"gitId":"sopa301"},"content":" \"node_modules/sshpk\": {","isFullCredit":false},{"lineNumber":1728,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.17.0\",","isFullCredit":false},{"lineNumber":1729,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz\",","isFullCredit":false},{"lineNumber":1730,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1731,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1732,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1733,"author":{"gitId":"sopa301"},"content":" \"asn1\": \"~0.2.3\",","isFullCredit":false},{"lineNumber":1734,"author":{"gitId":"sopa301"},"content":" \"assert-plus\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":1735,"author":{"gitId":"sopa301"},"content":" \"bcrypt-pbkdf\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":1736,"author":{"gitId":"sopa301"},"content":" \"dashdash\": \"^1.12.0\",","isFullCredit":false},{"lineNumber":1737,"author":{"gitId":"sopa301"},"content":" \"ecc-jsbn\": \"~0.1.1\",","isFullCredit":false},{"lineNumber":1738,"author":{"gitId":"sopa301"},"content":" \"getpass\": \"^0.1.1\",","isFullCredit":false},{"lineNumber":1739,"author":{"gitId":"sopa301"},"content":" \"jsbn\": \"~0.1.0\",","isFullCredit":false},{"lineNumber":1740,"author":{"gitId":"sopa301"},"content":" \"safer-buffer\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":1741,"author":{"gitId":"sopa301"},"content":" \"tweetnacl\": \"~0.14.0\"","isFullCredit":false},{"lineNumber":1742,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1743,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":1744,"author":{"gitId":"sopa301"},"content":" \"sshpk-conv\": \"bin/sshpk-conv\",","isFullCredit":false},{"lineNumber":1745,"author":{"gitId":"sopa301"},"content":" \"sshpk-sign\": \"bin/sshpk-sign\",","isFullCredit":false},{"lineNumber":1746,"author":{"gitId":"sopa301"},"content":" \"sshpk-verify\": \"bin/sshpk-verify\"","isFullCredit":false},{"lineNumber":1747,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1748,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1749,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":1750,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1751,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1752,"author":{"gitId":"sopa301"},"content":" \"node_modules/string-width\": {","isFullCredit":false},{"lineNumber":1753,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.2.3\",","isFullCredit":false},{"lineNumber":1754,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",","isFullCredit":false},{"lineNumber":1755,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g\u003d\u003d\",","isFullCredit":false},{"lineNumber":1756,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1757,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1758,"author":{"gitId":"sopa301"},"content":" \"emoji-regex\": \"^8.0.0\",","isFullCredit":false},{"lineNumber":1759,"author":{"gitId":"sopa301"},"content":" \"is-fullwidth-code-point\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":1760,"author":{"gitId":"sopa301"},"content":" \"strip-ansi\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":1761,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1762,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1763,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1764,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1765,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1766,"author":{"gitId":"sopa301"},"content":" \"node_modules/strip-ansi\": {","isFullCredit":false},{"lineNumber":1767,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.1\",","isFullCredit":false},{"lineNumber":1768,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",","isFullCredit":false},{"lineNumber":1769,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1770,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1771,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1772,"author":{"gitId":"sopa301"},"content":" \"ansi-regex\": \"^5.0.1\"","isFullCredit":false},{"lineNumber":1773,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1774,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1775,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1776,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1777,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1778,"author":{"gitId":"sopa301"},"content":" \"node_modules/strip-final-newline\": {","isFullCredit":false},{"lineNumber":1779,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":1780,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":1781,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1782,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1783,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1784,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":1785,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1786,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1787,"author":{"gitId":"sopa301"},"content":" \"node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":1788,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.1.1\",","isFullCredit":false},{"lineNumber":1789,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",","isFullCredit":false},{"lineNumber":1790,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":1791,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1792,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1793,"author":{"gitId":"sopa301"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":1794,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1795,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1796,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1797,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1798,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1799,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/supports-color?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":1800,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1801,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1802,"author":{"gitId":"sopa301"},"content":" \"node_modules/throttleit\": {","isFullCredit":false},{"lineNumber":1803,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":1804,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":1805,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g\u003d\u003d\",","isFullCredit":false},{"lineNumber":1806,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1807,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1808,"author":{"gitId":"sopa301"},"content":" \"node_modules/through\": {","isFullCredit":false},{"lineNumber":1809,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.8\",","isFullCredit":false},{"lineNumber":1810,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/through/-/through-2.3.8.tgz\",","isFullCredit":false},{"lineNumber":1811,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1812,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1813,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1814,"author":{"gitId":"sopa301"},"content":" \"node_modules/tmp\": {","isFullCredit":false},{"lineNumber":1815,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.2.1\",","isFullCredit":false},{"lineNumber":1816,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz\",","isFullCredit":false},{"lineNumber":1817,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1818,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1819,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1820,"author":{"gitId":"sopa301"},"content":" \"rimraf\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":1821,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1822,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1823,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8.17.0\"","isFullCredit":false},{"lineNumber":1824,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1825,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1826,"author":{"gitId":"sopa301"},"content":" \"node_modules/tough-cookie\": {","isFullCredit":false},{"lineNumber":1827,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.3\",","isFullCredit":false},{"lineNumber":1828,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz\",","isFullCredit":false},{"lineNumber":1829,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1830,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1831,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1832,"author":{"gitId":"sopa301"},"content":" \"psl\": \"^1.1.33\",","isFullCredit":false},{"lineNumber":1833,"author":{"gitId":"sopa301"},"content":" \"punycode\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":1834,"author":{"gitId":"sopa301"},"content":" \"universalify\": \"^0.2.0\",","isFullCredit":false},{"lineNumber":1835,"author":{"gitId":"sopa301"},"content":" \"url-parse\": \"^1.5.3\"","isFullCredit":false},{"lineNumber":1836,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1837,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1838,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":1839,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1840,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1841,"author":{"gitId":"sopa301"},"content":" \"node_modules/tslib\": {","isFullCredit":false},{"lineNumber":1842,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.6.2\",","isFullCredit":false},{"lineNumber":1843,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz\",","isFullCredit":false},{"lineNumber":1844,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":1845,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1846,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1847,"author":{"gitId":"sopa301"},"content":" \"node_modules/tunnel-agent\": {","isFullCredit":false},{"lineNumber":1848,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.6.0\",","isFullCredit":false},{"lineNumber":1849,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz\",","isFullCredit":false},{"lineNumber":1850,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w\u003d\u003d\",","isFullCredit":false},{"lineNumber":1851,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1852,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1853,"author":{"gitId":"sopa301"},"content":" \"safe-buffer\": \"^5.0.1\"","isFullCredit":false},{"lineNumber":1854,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1855,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1856,"author":{"gitId":"sopa301"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":1857,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1858,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1859,"author":{"gitId":"sopa301"},"content":" \"node_modules/tweetnacl\": {","isFullCredit":false},{"lineNumber":1860,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.14.5\",","isFullCredit":false},{"lineNumber":1861,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz\",","isFullCredit":false},{"lineNumber":1862,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1863,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1864,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1865,"author":{"gitId":"sopa301"},"content":" \"node_modules/type-fest\": {","isFullCredit":false},{"lineNumber":1866,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.21.3\",","isFullCredit":false},{"lineNumber":1867,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz\",","isFullCredit":false},{"lineNumber":1868,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w\u003d\u003d\",","isFullCredit":false},{"lineNumber":1869,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1870,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1871,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1872,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1873,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1874,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1875,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1876,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1877,"author":{"gitId":"sopa301"},"content":" \"node_modules/universalify\": {","isFullCredit":false},{"lineNumber":1878,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.2.0\",","isFullCredit":false},{"lineNumber":1879,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz\",","isFullCredit":false},{"lineNumber":1880,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1881,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1882,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1883,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 4.0.0\"","isFullCredit":false},{"lineNumber":1884,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1885,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1886,"author":{"gitId":"sopa301"},"content":" \"node_modules/untildify\": {","isFullCredit":false},{"lineNumber":1887,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1888,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1889,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1890,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1891,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1892,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1893,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1894,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1895,"author":{"gitId":"sopa301"},"content":" \"node_modules/url-parse\": {","isFullCredit":false},{"lineNumber":1896,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.5.10\",","isFullCredit":false},{"lineNumber":1897,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz\",","isFullCredit":false},{"lineNumber":1898,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1899,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1900,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1901,"author":{"gitId":"sopa301"},"content":" \"querystringify\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":1902,"author":{"gitId":"sopa301"},"content":" \"requires-port\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":1903,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1904,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1905,"author":{"gitId":"sopa301"},"content":" \"node_modules/uuid\": {","isFullCredit":false},{"lineNumber":1906,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.3.2\",","isFullCredit":false},{"lineNumber":1907,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz\",","isFullCredit":false},{"lineNumber":1908,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg\u003d\u003d\",","isFullCredit":false},{"lineNumber":1909,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1910,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":1911,"author":{"gitId":"sopa301"},"content":" \"uuid\": \"dist/bin/uuid\"","isFullCredit":false},{"lineNumber":1912,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1913,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1914,"author":{"gitId":"sopa301"},"content":" \"node_modules/verror\": {","isFullCredit":false},{"lineNumber":1915,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.10.0\",","isFullCredit":false},{"lineNumber":1916,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/verror/-/verror-1.10.0.tgz\",","isFullCredit":false},{"lineNumber":1917,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1918,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1919,"author":{"gitId":"sopa301"},"content":" \"engines\": [","isFullCredit":false},{"lineNumber":1920,"author":{"gitId":"sopa301"},"content":" \"node \u003e\u003d0.6.0\"","isFullCredit":false},{"lineNumber":1921,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":1922,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1923,"author":{"gitId":"sopa301"},"content":" \"assert-plus\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":1924,"author":{"gitId":"sopa301"},"content":" \"core-util-is\": \"1.0.2\",","isFullCredit":false},{"lineNumber":1925,"author":{"gitId":"sopa301"},"content":" \"extsprintf\": \"^1.2.0\"","isFullCredit":false},{"lineNumber":1926,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1927,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1928,"author":{"gitId":"sopa301"},"content":" \"node_modules/which\": {","isFullCredit":false},{"lineNumber":1929,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":1930,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/which/-/which-2.0.2.tgz\",","isFullCredit":false},{"lineNumber":1931,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1932,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1933,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1934,"author":{"gitId":"sopa301"},"content":" \"isexe\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":1935,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1936,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":1937,"author":{"gitId":"sopa301"},"content":" \"node-which\": \"bin/node-which\"","isFullCredit":false},{"lineNumber":1938,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1939,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1940,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":1941,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1942,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1943,"author":{"gitId":"sopa301"},"content":" \"node_modules/wrap-ansi\": {","isFullCredit":false},{"lineNumber":1944,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.0.0\",","isFullCredit":false},{"lineNumber":1945,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",","isFullCredit":false},{"lineNumber":1946,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":1947,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1948,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1949,"author":{"gitId":"sopa301"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":1950,"author":{"gitId":"sopa301"},"content":" \"string-width\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":1951,"author":{"gitId":"sopa301"},"content":" \"strip-ansi\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":1952,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1953,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1954,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":1955,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1956,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1957,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/wrap-ansi?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":1958,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1959,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1960,"author":{"gitId":"sopa301"},"content":" \"node_modules/wrappy\": {","isFullCredit":false},{"lineNumber":1961,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":1962,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":1963,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1964,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1965,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1966,"author":{"gitId":"sopa301"},"content":" \"node_modules/yallist\": {","isFullCredit":false},{"lineNumber":1967,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1968,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1969,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":1970,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":1971,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1972,"author":{"gitId":"sopa301"},"content":" \"node_modules/yauzl\": {","isFullCredit":false},{"lineNumber":1973,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.10.0\",","isFullCredit":false},{"lineNumber":1974,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz\",","isFullCredit":false},{"lineNumber":1975,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g\u003d\u003d\",","isFullCredit":false},{"lineNumber":1976,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1977,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1978,"author":{"gitId":"sopa301"},"content":" \"buffer-crc32\": \"~0.2.3\",","isFullCredit":false},{"lineNumber":1979,"author":{"gitId":"sopa301"},"content":" \"fd-slicer\": \"~1.1.0\"","isFullCredit":false},{"lineNumber":1980,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1981,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1982,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1983,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1984,"author":{"gitId":"-"},"content":" \"@colors/colors\": {","isFullCredit":false},{"lineNumber":1985,"author":{"gitId":"-"},"content":" \"version\": \"1.5.0\",","isFullCredit":false},{"lineNumber":1986,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz\",","isFullCredit":false},{"lineNumber":1987,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1988,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1989,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":1990,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1991,"author":{"gitId":"-"},"content":" \"@cypress/request\": {","isFullCredit":false},{"lineNumber":1992,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":1993,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz\",","isFullCredit":false},{"lineNumber":1994,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":1995,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1996,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":1997,"author":{"gitId":"-"},"content":" \"aws-sign2\": \"~0.7.0\",","isFullCredit":false},{"lineNumber":1998,"author":{"gitId":"-"},"content":" \"aws4\": \"^1.8.0\",","isFullCredit":false},{"lineNumber":1999,"author":{"gitId":"-"},"content":" \"caseless\": \"~0.12.0\",","isFullCredit":false},{"lineNumber":2000,"author":{"gitId":"-"},"content":" \"combined-stream\": \"~1.0.6\",","isFullCredit":false},{"lineNumber":2001,"author":{"gitId":"-"},"content":" \"extend\": \"~3.0.2\",","isFullCredit":false},{"lineNumber":2002,"author":{"gitId":"-"},"content":" \"forever-agent\": \"~0.6.1\",","isFullCredit":false},{"lineNumber":2003,"author":{"gitId":"-"},"content":" \"form-data\": \"~2.3.2\",","isFullCredit":false},{"lineNumber":2004,"author":{"gitId":"-"},"content":" \"http-signature\": \"~1.3.6\",","isFullCredit":false},{"lineNumber":2005,"author":{"gitId":"-"},"content":" \"is-typedarray\": \"~1.0.0\",","isFullCredit":false},{"lineNumber":2006,"author":{"gitId":"-"},"content":" \"isstream\": \"~0.1.2\",","isFullCredit":false},{"lineNumber":2007,"author":{"gitId":"-"},"content":" \"json-stringify-safe\": \"~5.0.1\",","isFullCredit":false},{"lineNumber":2008,"author":{"gitId":"-"},"content":" \"mime-types\": \"~2.1.19\",","isFullCredit":false},{"lineNumber":2009,"author":{"gitId":"-"},"content":" \"performance-now\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":2010,"author":{"gitId":"-"},"content":" \"qs\": \"6.10.4\",","isFullCredit":false},{"lineNumber":2011,"author":{"gitId":"-"},"content":" \"safe-buffer\": \"^5.1.2\",","isFullCredit":false},{"lineNumber":2012,"author":{"gitId":"-"},"content":" \"tough-cookie\": \"^4.1.3\",","isFullCredit":false},{"lineNumber":2013,"author":{"gitId":"-"},"content":" \"tunnel-agent\": \"^0.6.0\",","isFullCredit":false},{"lineNumber":2014,"author":{"gitId":"-"},"content":" \"uuid\": \"^8.3.2\"","isFullCredit":false},{"lineNumber":2015,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2016,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2017,"author":{"gitId":"-"},"content":" \"@cypress/xvfb\": {","isFullCredit":false},{"lineNumber":2018,"author":{"gitId":"-"},"content":" \"version\": \"1.2.4\",","isFullCredit":false},{"lineNumber":2019,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz\",","isFullCredit":false},{"lineNumber":2020,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":2021,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2022,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2023,"author":{"gitId":"-"},"content":" \"debug\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":2024,"author":{"gitId":"-"},"content":" \"lodash.once\": \"^4.1.1\"","isFullCredit":false},{"lineNumber":2025,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2026,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2027,"author":{"gitId":"-"},"content":" \"debug\": {","isFullCredit":false},{"lineNumber":2028,"author":{"gitId":"-"},"content":" \"version\": \"3.2.7\",","isFullCredit":false},{"lineNumber":2029,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/debug/-/debug-3.2.7.tgz\",","isFullCredit":false},{"lineNumber":2030,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2031,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2032,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2033,"author":{"gitId":"-"},"content":" \"ms\": \"^2.1.1\"","isFullCredit":false},{"lineNumber":2034,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2035,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2036,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2037,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2038,"author":{"gitId":"-"},"content":" \"@types/node\": {","isFullCredit":false},{"lineNumber":2039,"author":{"gitId":"-"},"content":" \"version\": \"18.18.3\",","isFullCredit":false},{"lineNumber":2040,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-18.18.3.tgz\",","isFullCredit":false},{"lineNumber":2041,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-0OVfGupTl3NBFr8+iXpfZ8NR7jfFO+P1Q+IO/q0wbo02wYkP5gy36phojeYWpLQ6WAMjl+VfmqUk2YbUfp0irA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2042,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2043,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":2044,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2045,"author":{"gitId":"-"},"content":" \"@types/sinonjs__fake-timers\": {","isFullCredit":false},{"lineNumber":2046,"author":{"gitId":"-"},"content":" \"version\": \"8.1.1\",","isFullCredit":false},{"lineNumber":2047,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz\",","isFullCredit":false},{"lineNumber":2048,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g\u003d\u003d\",","isFullCredit":false},{"lineNumber":2049,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2050,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2051,"author":{"gitId":"-"},"content":" \"@types/sizzle\": {","isFullCredit":false},{"lineNumber":2052,"author":{"gitId":"-"},"content":" \"version\": \"2.3.4\",","isFullCredit":false},{"lineNumber":2053,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.4.tgz\",","isFullCredit":false},{"lineNumber":2054,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-jA2llq2zNkg8HrALI7DtWzhALcVH0l7i89yhY3iBdOz6cBPeACoFq+fkQrjHA39t1hnSFOboZ7A/AY5MMZSlag\u003d\u003d\",","isFullCredit":false},{"lineNumber":2055,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2056,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2057,"author":{"gitId":"-"},"content":" \"@types/yauzl\": {","isFullCredit":false},{"lineNumber":2058,"author":{"gitId":"-"},"content":" \"version\": \"2.10.1\",","isFullCredit":false},{"lineNumber":2059,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.1.tgz\",","isFullCredit":false},{"lineNumber":2060,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2061,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2062,"author":{"gitId":"-"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":2063,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2064,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\"","isFullCredit":false},{"lineNumber":2065,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2066,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2067,"author":{"gitId":"-"},"content":" \"aggregate-error\": {","isFullCredit":false},{"lineNumber":2068,"author":{"gitId":"-"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":2069,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz\",","isFullCredit":false},{"lineNumber":2070,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2071,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2072,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2073,"author":{"gitId":"-"},"content":" \"clean-stack\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":2074,"author":{"gitId":"-"},"content":" \"indent-string\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":2075,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2076,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2077,"author":{"gitId":"-"},"content":" \"ansi-colors\": {","isFullCredit":false},{"lineNumber":2078,"author":{"gitId":"-"},"content":" \"version\": \"4.1.3\",","isFullCredit":false},{"lineNumber":2079,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz\",","isFullCredit":false},{"lineNumber":2080,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2081,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2082,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2083,"author":{"gitId":"-"},"content":" \"ansi-escapes\": {","isFullCredit":false},{"lineNumber":2084,"author":{"gitId":"-"},"content":" \"version\": \"4.3.2\",","isFullCredit":false},{"lineNumber":2085,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz\",","isFullCredit":false},{"lineNumber":2086,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2087,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2088,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2089,"author":{"gitId":"-"},"content":" \"type-fest\": \"^0.21.3\"","isFullCredit":false},{"lineNumber":2090,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2091,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2092,"author":{"gitId":"-"},"content":" \"ansi-regex\": {","isFullCredit":false},{"lineNumber":2093,"author":{"gitId":"-"},"content":" \"version\": \"5.0.1\",","isFullCredit":false},{"lineNumber":2094,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",","isFullCredit":false},{"lineNumber":2095,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2096,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2097,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2098,"author":{"gitId":"-"},"content":" \"ansi-styles\": {","isFullCredit":false},{"lineNumber":2099,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":2100,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",","isFullCredit":false},{"lineNumber":2101,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2102,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2103,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2104,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":2105,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2106,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2107,"author":{"gitId":"-"},"content":" \"arch\": {","isFullCredit":false},{"lineNumber":2108,"author":{"gitId":"-"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":2109,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/arch/-/arch-2.2.0.tgz\",","isFullCredit":false},{"lineNumber":2110,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2111,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2112,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2113,"author":{"gitId":"-"},"content":" \"asn1\": {","isFullCredit":false},{"lineNumber":2114,"author":{"gitId":"-"},"content":" \"version\": \"0.2.6\",","isFullCredit":false},{"lineNumber":2115,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz\",","isFullCredit":false},{"lineNumber":2116,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2117,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2118,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2119,"author":{"gitId":"-"},"content":" \"safer-buffer\": \"~2.1.0\"","isFullCredit":false},{"lineNumber":2120,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2121,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2122,"author":{"gitId":"-"},"content":" \"assert-plus\": {","isFullCredit":false},{"lineNumber":2123,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2124,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":2125,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2126,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2127,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2128,"author":{"gitId":"-"},"content":" \"astral-regex\": {","isFullCredit":false},{"lineNumber":2129,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":2130,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":2131,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2132,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2133,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2134,"author":{"gitId":"-"},"content":" \"async\": {","isFullCredit":false},{"lineNumber":2135,"author":{"gitId":"-"},"content":" \"version\": \"3.2.4\",","isFullCredit":false},{"lineNumber":2136,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/async/-/async-3.2.4.tgz\",","isFullCredit":false},{"lineNumber":2137,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2138,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2139,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2140,"author":{"gitId":"-"},"content":" \"asynckit\": {","isFullCredit":false},{"lineNumber":2141,"author":{"gitId":"-"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":2142,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz\",","isFullCredit":false},{"lineNumber":2143,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":2144,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2145,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2146,"author":{"gitId":"-"},"content":" \"at-least-node\": {","isFullCredit":false},{"lineNumber":2147,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2148,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":2149,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2150,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2151,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2152,"author":{"gitId":"-"},"content":" \"aws-sign2\": {","isFullCredit":false},{"lineNumber":2153,"author":{"gitId":"-"},"content":" \"version\": \"0.7.0\",","isFullCredit":false},{"lineNumber":2154,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz\",","isFullCredit":false},{"lineNumber":2155,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2156,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2157,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2158,"author":{"gitId":"-"},"content":" \"aws4\": {","isFullCredit":false},{"lineNumber":2159,"author":{"gitId":"-"},"content":" \"version\": \"1.12.0\",","isFullCredit":false},{"lineNumber":2160,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz\",","isFullCredit":false},{"lineNumber":2161,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2162,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2163,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2164,"author":{"gitId":"-"},"content":" \"balanced-match\": {","isFullCredit":false},{"lineNumber":2165,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":2166,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":2167,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2168,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2169,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2170,"author":{"gitId":"-"},"content":" \"base64-js\": {","isFullCredit":false},{"lineNumber":2171,"author":{"gitId":"-"},"content":" \"version\": \"1.5.1\",","isFullCredit":false},{"lineNumber":2172,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz\",","isFullCredit":false},{"lineNumber":2173,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2174,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2175,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2176,"author":{"gitId":"-"},"content":" \"bcrypt-pbkdf\": {","isFullCredit":false},{"lineNumber":2177,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":2178,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":2179,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w\u003d\u003d\",","isFullCredit":false},{"lineNumber":2180,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2181,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2182,"author":{"gitId":"-"},"content":" \"tweetnacl\": \"^0.14.3\"","isFullCredit":false},{"lineNumber":2183,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2184,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2185,"author":{"gitId":"-"},"content":" \"blob-util\": {","isFullCredit":false},{"lineNumber":2186,"author":{"gitId":"-"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":2187,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz\",","isFullCredit":false},{"lineNumber":2188,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2189,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2190,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2191,"author":{"gitId":"-"},"content":" \"bluebird\": {","isFullCredit":false},{"lineNumber":2192,"author":{"gitId":"-"},"content":" \"version\": \"3.7.2\",","isFullCredit":false},{"lineNumber":2193,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz\",","isFullCredit":false},{"lineNumber":2194,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2195,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2196,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2197,"author":{"gitId":"-"},"content":" \"brace-expansion\": {","isFullCredit":false},{"lineNumber":2198,"author":{"gitId":"-"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":2199,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz\",","isFullCredit":false},{"lineNumber":2200,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2201,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2202,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2203,"author":{"gitId":"-"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":2204,"author":{"gitId":"-"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":2205,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2206,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2207,"author":{"gitId":"-"},"content":" \"buffer\": {","isFullCredit":false},{"lineNumber":2208,"author":{"gitId":"-"},"content":" \"version\": \"5.7.1\",","isFullCredit":false},{"lineNumber":2209,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz\",","isFullCredit":false},{"lineNumber":2210,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2211,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2212,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2213,"author":{"gitId":"-"},"content":" \"base64-js\": \"^1.3.1\",","isFullCredit":false},{"lineNumber":2214,"author":{"gitId":"-"},"content":" \"ieee754\": \"^1.1.13\"","isFullCredit":false},{"lineNumber":2215,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2216,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2217,"author":{"gitId":"-"},"content":" \"buffer-crc32\": {","isFullCredit":false},{"lineNumber":2218,"author":{"gitId":"-"},"content":" \"version\": \"0.2.13\",","isFullCredit":false},{"lineNumber":2219,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz\",","isFullCredit":false},{"lineNumber":2220,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2221,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2222,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2223,"author":{"gitId":"-"},"content":" \"cachedir\": {","isFullCredit":false},{"lineNumber":2224,"author":{"gitId":"-"},"content":" \"version\": \"2.4.0\",","isFullCredit":false},{"lineNumber":2225,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz\",","isFullCredit":false},{"lineNumber":2226,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2227,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2228,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2229,"author":{"gitId":"-"},"content":" \"call-bind\": {","isFullCredit":false},{"lineNumber":2230,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":2231,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":2232,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2233,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2234,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2235,"author":{"gitId":"-"},"content":" \"function-bind\": \"^1.1.1\",","isFullCredit":false},{"lineNumber":2236,"author":{"gitId":"-"},"content":" \"get-intrinsic\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":2237,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2238,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2239,"author":{"gitId":"-"},"content":" \"caseless\": {","isFullCredit":false},{"lineNumber":2240,"author":{"gitId":"-"},"content":" \"version\": \"0.12.0\",","isFullCredit":false},{"lineNumber":2241,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz\",","isFullCredit":false},{"lineNumber":2242,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2243,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2244,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2245,"author":{"gitId":"-"},"content":" \"chalk\": {","isFullCredit":false},{"lineNumber":2246,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":2247,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",","isFullCredit":false},{"lineNumber":2248,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2249,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2250,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2251,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":2252,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":2253,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2254,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2255,"author":{"gitId":"-"},"content":" \"supports-color\": {","isFullCredit":false},{"lineNumber":2256,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":2257,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",","isFullCredit":false},{"lineNumber":2258,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2259,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2260,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2261,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":2262,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2263,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2264,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2265,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2266,"author":{"gitId":"-"},"content":" \"check-more-types\": {","isFullCredit":false},{"lineNumber":2267,"author":{"gitId":"-"},"content":" \"version\": \"2.24.0\",","isFullCredit":false},{"lineNumber":2268,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz\",","isFullCredit":false},{"lineNumber":2269,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2270,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2271,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2272,"author":{"gitId":"-"},"content":" \"ci-info\": {","isFullCredit":false},{"lineNumber":2273,"author":{"gitId":"-"},"content":" \"version\": \"3.9.0\",","isFullCredit":false},{"lineNumber":2274,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz\",","isFullCredit":false},{"lineNumber":2275,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2276,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2277,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2278,"author":{"gitId":"-"},"content":" \"clean-stack\": {","isFullCredit":false},{"lineNumber":2279,"author":{"gitId":"-"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":2280,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz\",","isFullCredit":false},{"lineNumber":2281,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A\u003d\u003d\",","isFullCredit":false},{"lineNumber":2282,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2283,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2284,"author":{"gitId":"-"},"content":" \"cli-cursor\": {","isFullCredit":false},{"lineNumber":2285,"author":{"gitId":"-"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":2286,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz\",","isFullCredit":false},{"lineNumber":2287,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2288,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2289,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2290,"author":{"gitId":"-"},"content":" \"restore-cursor\": \"^3.1.0\"","isFullCredit":false},{"lineNumber":2291,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2292,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2293,"author":{"gitId":"-"},"content":" \"cli-table3\": {","isFullCredit":false},{"lineNumber":2294,"author":{"gitId":"-"},"content":" \"version\": \"0.6.3\",","isFullCredit":false},{"lineNumber":2295,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz\",","isFullCredit":false},{"lineNumber":2296,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2297,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2298,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2299,"author":{"gitId":"-"},"content":" \"@colors/colors\": \"1.5.0\",","isFullCredit":false},{"lineNumber":2300,"author":{"gitId":"-"},"content":" \"string-width\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":2301,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2302,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2303,"author":{"gitId":"-"},"content":" \"cli-truncate\": {","isFullCredit":false},{"lineNumber":2304,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":2305,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz\",","isFullCredit":false},{"lineNumber":2306,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2307,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2308,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2309,"author":{"gitId":"-"},"content":" \"slice-ansi\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":2310,"author":{"gitId":"-"},"content":" \"string-width\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":2311,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2312,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2313,"author":{"gitId":"-"},"content":" \"color-convert\": {","isFullCredit":false},{"lineNumber":2314,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":2315,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",","isFullCredit":false},{"lineNumber":2316,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2317,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2318,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2319,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":2320,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2321,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2322,"author":{"gitId":"-"},"content":" \"color-name\": {","isFullCredit":false},{"lineNumber":2323,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":2324,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",","isFullCredit":false},{"lineNumber":2325,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2326,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2327,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2328,"author":{"gitId":"-"},"content":" \"colorette\": {","isFullCredit":false},{"lineNumber":2329,"author":{"gitId":"-"},"content":" \"version\": \"2.0.20\",","isFullCredit":false},{"lineNumber":2330,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz\",","isFullCredit":false},{"lineNumber":2331,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w\u003d\u003d\",","isFullCredit":false},{"lineNumber":2332,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2333,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2334,"author":{"gitId":"-"},"content":" \"combined-stream\": {","isFullCredit":false},{"lineNumber":2335,"author":{"gitId":"-"},"content":" \"version\": \"1.0.8\",","isFullCredit":false},{"lineNumber":2336,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz\",","isFullCredit":false},{"lineNumber":2337,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2338,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2339,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2340,"author":{"gitId":"-"},"content":" \"delayed-stream\": \"~1.0.0\"","isFullCredit":false},{"lineNumber":2341,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2342,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2343,"author":{"gitId":"-"},"content":" \"commander\": {","isFullCredit":false},{"lineNumber":2344,"author":{"gitId":"-"},"content":" \"version\": \"6.2.1\",","isFullCredit":false},{"lineNumber":2345,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/commander/-/commander-6.2.1.tgz\",","isFullCredit":false},{"lineNumber":2346,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2347,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2348,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2349,"author":{"gitId":"-"},"content":" \"common-tags\": {","isFullCredit":false},{"lineNumber":2350,"author":{"gitId":"-"},"content":" \"version\": \"1.8.2\",","isFullCredit":false},{"lineNumber":2351,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz\",","isFullCredit":false},{"lineNumber":2352,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2353,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2354,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2355,"author":{"gitId":"-"},"content":" \"concat-map\": {","isFullCredit":false},{"lineNumber":2356,"author":{"gitId":"-"},"content":" \"version\": \"0.0.1\",","isFullCredit":false},{"lineNumber":2357,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz\",","isFullCredit":false},{"lineNumber":2358,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2359,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2360,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2361,"author":{"gitId":"-"},"content":" \"core-util-is\": {","isFullCredit":false},{"lineNumber":2362,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":2363,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":2364,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2365,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2366,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2367,"author":{"gitId":"-"},"content":" \"cross-spawn\": {","isFullCredit":false},{"lineNumber":2368,"author":{"gitId":"-"},"content":" \"version\": \"7.0.3\",","isFullCredit":false},{"lineNumber":2369,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz\",","isFullCredit":false},{"lineNumber":2370,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w\u003d\u003d\",","isFullCredit":false},{"lineNumber":2371,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2372,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2373,"author":{"gitId":"-"},"content":" \"path-key\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":2374,"author":{"gitId":"-"},"content":" \"shebang-command\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":2375,"author":{"gitId":"-"},"content":" \"which\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":2376,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2377,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2378,"author":{"gitId":"-"},"content":" \"cypress\": {","isFullCredit":false},{"lineNumber":2379,"author":{"gitId":"sopa301"},"content":" \"version\": \"13.6.6\",","isFullCredit":false},{"lineNumber":2380,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/cypress/-/cypress-13.6.6.tgz\",","isFullCredit":false},{"lineNumber":2381,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-S+2S9S94611hXimH9a3EAYt81QM913ZVA03pUmGDfLTFa5gyp85NJ8dJGSlEAEmyRsYkioS1TtnWtbv/Fzt11A\u003d\u003d\",","isFullCredit":false},{"lineNumber":2382,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2383,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2384,"author":{"gitId":"-"},"content":" \"@cypress/request\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":2385,"author":{"gitId":"-"},"content":" \"@cypress/xvfb\": \"^1.2.4\",","isFullCredit":false},{"lineNumber":2386,"author":{"gitId":"-"},"content":" \"@types/sinonjs__fake-timers\": \"8.1.1\",","isFullCredit":false},{"lineNumber":2387,"author":{"gitId":"-"},"content":" \"@types/sizzle\": \"^2.3.2\",","isFullCredit":false},{"lineNumber":2388,"author":{"gitId":"-"},"content":" \"arch\": \"^2.2.0\",","isFullCredit":false},{"lineNumber":2389,"author":{"gitId":"-"},"content":" \"blob-util\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":2390,"author":{"gitId":"-"},"content":" \"bluebird\": \"^3.7.2\",","isFullCredit":false},{"lineNumber":2391,"author":{"gitId":"sopa301"},"content":" \"buffer\": \"^5.7.1\",","isFullCredit":false},{"lineNumber":2392,"author":{"gitId":"-"},"content":" \"cachedir\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":2393,"author":{"gitId":"-"},"content":" \"chalk\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":2394,"author":{"gitId":"-"},"content":" \"check-more-types\": \"^2.24.0\",","isFullCredit":false},{"lineNumber":2395,"author":{"gitId":"-"},"content":" \"cli-cursor\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":2396,"author":{"gitId":"-"},"content":" \"cli-table3\": \"~0.6.1\",","isFullCredit":false},{"lineNumber":2397,"author":{"gitId":"-"},"content":" \"commander\": \"^6.2.1\",","isFullCredit":false},{"lineNumber":2398,"author":{"gitId":"-"},"content":" \"common-tags\": \"^1.8.0\",","isFullCredit":false},{"lineNumber":2399,"author":{"gitId":"-"},"content":" \"dayjs\": \"^1.10.4\",","isFullCredit":false},{"lineNumber":2400,"author":{"gitId":"-"},"content":" \"debug\": \"^4.3.4\",","isFullCredit":false},{"lineNumber":2401,"author":{"gitId":"-"},"content":" \"enquirer\": \"^2.3.6\",","isFullCredit":false},{"lineNumber":2402,"author":{"gitId":"-"},"content":" \"eventemitter2\": \"6.4.7\",","isFullCredit":false},{"lineNumber":2403,"author":{"gitId":"-"},"content":" \"execa\": \"4.1.0\",","isFullCredit":false},{"lineNumber":2404,"author":{"gitId":"-"},"content":" \"executable\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":2405,"author":{"gitId":"-"},"content":" \"extract-zip\": \"2.0.1\",","isFullCredit":false},{"lineNumber":2406,"author":{"gitId":"-"},"content":" \"figures\": \"^3.2.0\",","isFullCredit":false},{"lineNumber":2407,"author":{"gitId":"-"},"content":" \"fs-extra\": \"^9.1.0\",","isFullCredit":false},{"lineNumber":2408,"author":{"gitId":"-"},"content":" \"getos\": \"^3.2.1\",","isFullCredit":false},{"lineNumber":2409,"author":{"gitId":"sopa301"},"content":" \"is-ci\": \"^3.0.1\",","isFullCredit":false},{"lineNumber":2410,"author":{"gitId":"-"},"content":" \"is-installed-globally\": \"~0.4.0\",","isFullCredit":false},{"lineNumber":2411,"author":{"gitId":"-"},"content":" \"lazy-ass\": \"^1.6.0\",","isFullCredit":false},{"lineNumber":2412,"author":{"gitId":"-"},"content":" \"listr2\": \"^3.8.3\",","isFullCredit":false},{"lineNumber":2413,"author":{"gitId":"-"},"content":" \"lodash\": \"^4.17.21\",","isFullCredit":false},{"lineNumber":2414,"author":{"gitId":"-"},"content":" \"log-symbols\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2415,"author":{"gitId":"-"},"content":" \"minimist\": \"^1.2.8\",","isFullCredit":false},{"lineNumber":2416,"author":{"gitId":"-"},"content":" \"ospath\": \"^1.2.2\",","isFullCredit":false},{"lineNumber":2417,"author":{"gitId":"-"},"content":" \"pretty-bytes\": \"^5.6.0\",","isFullCredit":false},{"lineNumber":2418,"author":{"gitId":"-"},"content":" \"process\": \"^0.11.10\",","isFullCredit":false},{"lineNumber":2419,"author":{"gitId":"-"},"content":" \"proxy-from-env\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2420,"author":{"gitId":"-"},"content":" \"request-progress\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":2421,"author":{"gitId":"-"},"content":" \"semver\": \"^7.5.3\",","isFullCredit":false},{"lineNumber":2422,"author":{"gitId":"-"},"content":" \"supports-color\": \"^8.1.1\",","isFullCredit":false},{"lineNumber":2423,"author":{"gitId":"-"},"content":" \"tmp\": \"~0.2.1\",","isFullCredit":false},{"lineNumber":2424,"author":{"gitId":"-"},"content":" \"untildify\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2425,"author":{"gitId":"-"},"content":" \"yauzl\": \"^2.10.0\"","isFullCredit":false},{"lineNumber":2426,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2427,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2428,"author":{"gitId":"-"},"content":" \"dashdash\": {","isFullCredit":false},{"lineNumber":2429,"author":{"gitId":"-"},"content":" \"version\": \"1.14.1\",","isFullCredit":false},{"lineNumber":2430,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz\",","isFullCredit":false},{"lineNumber":2431,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g\u003d\u003d\",","isFullCredit":false},{"lineNumber":2432,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2433,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2434,"author":{"gitId":"-"},"content":" \"assert-plus\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":2435,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2436,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2437,"author":{"gitId":"-"},"content":" \"dayjs\": {","isFullCredit":false},{"lineNumber":2438,"author":{"gitId":"-"},"content":" \"version\": \"1.11.10\",","isFullCredit":false},{"lineNumber":2439,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz\",","isFullCredit":false},{"lineNumber":2440,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2441,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2442,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2443,"author":{"gitId":"-"},"content":" \"debug\": {","isFullCredit":false},{"lineNumber":2444,"author":{"gitId":"-"},"content":" \"version\": \"4.3.4\",","isFullCredit":false},{"lineNumber":2445,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz\",","isFullCredit":false},{"lineNumber":2446,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2447,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2448,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2449,"author":{"gitId":"-"},"content":" \"ms\": \"2.1.2\"","isFullCredit":false},{"lineNumber":2450,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2451,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2452,"author":{"gitId":"-"},"content":" \"ms\": {","isFullCredit":false},{"lineNumber":2453,"author":{"gitId":"-"},"content":" \"version\": \"2.1.2\",","isFullCredit":false},{"lineNumber":2454,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz\",","isFullCredit":false},{"lineNumber":2455,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w\u003d\u003d\",","isFullCredit":false},{"lineNumber":2456,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2457,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2458,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2459,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2460,"author":{"gitId":"-"},"content":" \"delayed-stream\": {","isFullCredit":false},{"lineNumber":2461,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2462,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":2463,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2464,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2465,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2466,"author":{"gitId":"-"},"content":" \"ecc-jsbn\": {","isFullCredit":false},{"lineNumber":2467,"author":{"gitId":"-"},"content":" \"version\": \"0.1.2\",","isFullCredit":false},{"lineNumber":2468,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz\",","isFullCredit":false},{"lineNumber":2469,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2470,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2471,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2472,"author":{"gitId":"-"},"content":" \"jsbn\": \"~0.1.0\",","isFullCredit":false},{"lineNumber":2473,"author":{"gitId":"-"},"content":" \"safer-buffer\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":2474,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2475,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2476,"author":{"gitId":"-"},"content":" \"emoji-regex\": {","isFullCredit":false},{"lineNumber":2477,"author":{"gitId":"-"},"content":" \"version\": \"8.0.0\",","isFullCredit":false},{"lineNumber":2478,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",","isFullCredit":false},{"lineNumber":2479,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A\u003d\u003d\",","isFullCredit":false},{"lineNumber":2480,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2481,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2482,"author":{"gitId":"-"},"content":" \"end-of-stream\": {","isFullCredit":false},{"lineNumber":2483,"author":{"gitId":"-"},"content":" \"version\": \"1.4.4\",","isFullCredit":false},{"lineNumber":2484,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz\",","isFullCredit":false},{"lineNumber":2485,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":2486,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2487,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2488,"author":{"gitId":"-"},"content":" \"once\": \"^1.4.0\"","isFullCredit":false},{"lineNumber":2489,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2490,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2491,"author":{"gitId":"-"},"content":" \"enquirer\": {","isFullCredit":false},{"lineNumber":2492,"author":{"gitId":"-"},"content":" \"version\": \"2.4.1\",","isFullCredit":false},{"lineNumber":2493,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz\",","isFullCredit":false},{"lineNumber":2494,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2495,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2496,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2497,"author":{"gitId":"-"},"content":" \"ansi-colors\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":2498,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":2499,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2500,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2501,"author":{"gitId":"-"},"content":" \"escape-string-regexp\": {","isFullCredit":false},{"lineNumber":2502,"author":{"gitId":"-"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":2503,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz\",","isFullCredit":false},{"lineNumber":2504,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2505,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2506,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2507,"author":{"gitId":"-"},"content":" \"eventemitter2\": {","isFullCredit":false},{"lineNumber":2508,"author":{"gitId":"-"},"content":" \"version\": \"6.4.7\",","isFullCredit":false},{"lineNumber":2509,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz\",","isFullCredit":false},{"lineNumber":2510,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2511,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2512,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2513,"author":{"gitId":"-"},"content":" \"execa\": {","isFullCredit":false},{"lineNumber":2514,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":2515,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/execa/-/execa-4.1.0.tgz\",","isFullCredit":false},{"lineNumber":2516,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2517,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2518,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2519,"author":{"gitId":"-"},"content":" \"cross-spawn\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":2520,"author":{"gitId":"-"},"content":" \"get-stream\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":2521,"author":{"gitId":"-"},"content":" \"human-signals\": \"^1.1.1\",","isFullCredit":false},{"lineNumber":2522,"author":{"gitId":"-"},"content":" \"is-stream\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":2523,"author":{"gitId":"-"},"content":" \"merge-stream\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":2524,"author":{"gitId":"-"},"content":" \"npm-run-path\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2525,"author":{"gitId":"-"},"content":" \"onetime\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":2526,"author":{"gitId":"-"},"content":" \"signal-exit\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":2527,"author":{"gitId":"-"},"content":" \"strip-final-newline\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":2528,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2529,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2530,"author":{"gitId":"-"},"content":" \"executable\": {","isFullCredit":false},{"lineNumber":2531,"author":{"gitId":"-"},"content":" \"version\": \"4.1.1\",","isFullCredit":false},{"lineNumber":2532,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/executable/-/executable-4.1.1.tgz\",","isFullCredit":false},{"lineNumber":2533,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2534,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2535,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2536,"author":{"gitId":"-"},"content":" \"pify\": \"^2.2.0\"","isFullCredit":false},{"lineNumber":2537,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2538,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2539,"author":{"gitId":"-"},"content":" \"extend\": {","isFullCredit":false},{"lineNumber":2540,"author":{"gitId":"-"},"content":" \"version\": \"3.0.2\",","isFullCredit":false},{"lineNumber":2541,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/extend/-/extend-3.0.2.tgz\",","isFullCredit":false},{"lineNumber":2542,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g\u003d\u003d\",","isFullCredit":false},{"lineNumber":2543,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2544,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2545,"author":{"gitId":"-"},"content":" \"extract-zip\": {","isFullCredit":false},{"lineNumber":2546,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":2547,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz\",","isFullCredit":false},{"lineNumber":2548,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2549,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2550,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2551,"author":{"gitId":"-"},"content":" \"@types/yauzl\": \"^2.9.1\",","isFullCredit":false},{"lineNumber":2552,"author":{"gitId":"-"},"content":" \"debug\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":2553,"author":{"gitId":"-"},"content":" \"get-stream\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":2554,"author":{"gitId":"-"},"content":" \"yauzl\": \"^2.10.0\"","isFullCredit":false},{"lineNumber":2555,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2556,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2557,"author":{"gitId":"-"},"content":" \"extsprintf\": {","isFullCredit":false},{"lineNumber":2558,"author":{"gitId":"-"},"content":" \"version\": \"1.3.0\",","isFullCredit":false},{"lineNumber":2559,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz\",","isFullCredit":false},{"lineNumber":2560,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g\u003d\u003d\",","isFullCredit":false},{"lineNumber":2561,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2562,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2563,"author":{"gitId":"-"},"content":" \"fd-slicer\": {","isFullCredit":false},{"lineNumber":2564,"author":{"gitId":"-"},"content":" \"version\": \"1.1.0\",","isFullCredit":false},{"lineNumber":2565,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz\",","isFullCredit":false},{"lineNumber":2566,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g\u003d\u003d\",","isFullCredit":false},{"lineNumber":2567,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2568,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2569,"author":{"gitId":"-"},"content":" \"pend\": \"~1.2.0\"","isFullCredit":false},{"lineNumber":2570,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2571,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2572,"author":{"gitId":"-"},"content":" \"figures\": {","isFullCredit":false},{"lineNumber":2573,"author":{"gitId":"-"},"content":" \"version\": \"3.2.0\",","isFullCredit":false},{"lineNumber":2574,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/figures/-/figures-3.2.0.tgz\",","isFullCredit":false},{"lineNumber":2575,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2576,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2577,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2578,"author":{"gitId":"-"},"content":" \"escape-string-regexp\": \"^1.0.5\"","isFullCredit":false},{"lineNumber":2579,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2580,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2581,"author":{"gitId":"-"},"content":" \"forever-agent\": {","isFullCredit":false},{"lineNumber":2582,"author":{"gitId":"-"},"content":" \"version\": \"0.6.1\",","isFullCredit":false},{"lineNumber":2583,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz\",","isFullCredit":false},{"lineNumber":2584,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2585,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2586,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2587,"author":{"gitId":"-"},"content":" \"form-data\": {","isFullCredit":false},{"lineNumber":2588,"author":{"gitId":"-"},"content":" \"version\": \"2.3.3\",","isFullCredit":false},{"lineNumber":2589,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz\",","isFullCredit":false},{"lineNumber":2590,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2591,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2592,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2593,"author":{"gitId":"-"},"content":" \"asynckit\": \"^0.4.0\",","isFullCredit":false},{"lineNumber":2594,"author":{"gitId":"-"},"content":" \"combined-stream\": \"^1.0.6\",","isFullCredit":false},{"lineNumber":2595,"author":{"gitId":"-"},"content":" \"mime-types\": \"^2.1.12\"","isFullCredit":false},{"lineNumber":2596,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2597,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2598,"author":{"gitId":"-"},"content":" \"fs-extra\": {","isFullCredit":false},{"lineNumber":2599,"author":{"gitId":"-"},"content":" \"version\": \"9.1.0\",","isFullCredit":false},{"lineNumber":2600,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz\",","isFullCredit":false},{"lineNumber":2601,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2602,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2603,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2604,"author":{"gitId":"-"},"content":" \"at-least-node\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":2605,"author":{"gitId":"-"},"content":" \"graceful-fs\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":2606,"author":{"gitId":"-"},"content":" \"jsonfile\": \"^6.0.1\",","isFullCredit":false},{"lineNumber":2607,"author":{"gitId":"-"},"content":" \"universalify\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":2608,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2609,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2610,"author":{"gitId":"-"},"content":" \"universalify\": {","isFullCredit":false},{"lineNumber":2611,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":2612,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":2613,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2614,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2615,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2616,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2617,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2618,"author":{"gitId":"-"},"content":" \"fs.realpath\": {","isFullCredit":false},{"lineNumber":2619,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2620,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":2621,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2622,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2623,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2624,"author":{"gitId":"-"},"content":" \"function-bind\": {","isFullCredit":false},{"lineNumber":2625,"author":{"gitId":"-"},"content":" \"version\": \"1.1.1\",","isFullCredit":false},{"lineNumber":2626,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz\",","isFullCredit":false},{"lineNumber":2627,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A\u003d\u003d\",","isFullCredit":false},{"lineNumber":2628,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2629,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2630,"author":{"gitId":"-"},"content":" \"get-intrinsic\": {","isFullCredit":false},{"lineNumber":2631,"author":{"gitId":"-"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":2632,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz\",","isFullCredit":false},{"lineNumber":2633,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2634,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2635,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2636,"author":{"gitId":"-"},"content":" \"function-bind\": \"^1.1.1\",","isFullCredit":false},{"lineNumber":2637,"author":{"gitId":"-"},"content":" \"has\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":2638,"author":{"gitId":"-"},"content":" \"has-proto\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":2639,"author":{"gitId":"-"},"content":" \"has-symbols\": \"^1.0.3\"","isFullCredit":false},{"lineNumber":2640,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2641,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2642,"author":{"gitId":"-"},"content":" \"get-stream\": {","isFullCredit":false},{"lineNumber":2643,"author":{"gitId":"-"},"content":" \"version\": \"5.2.0\",","isFullCredit":false},{"lineNumber":2644,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz\",","isFullCredit":false},{"lineNumber":2645,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2646,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2647,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2648,"author":{"gitId":"-"},"content":" \"pump\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":2649,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2650,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2651,"author":{"gitId":"-"},"content":" \"getos\": {","isFullCredit":false},{"lineNumber":2652,"author":{"gitId":"-"},"content":" \"version\": \"3.2.1\",","isFullCredit":false},{"lineNumber":2653,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/getos/-/getos-3.2.1.tgz\",","isFullCredit":false},{"lineNumber":2654,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":2655,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2656,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2657,"author":{"gitId":"-"},"content":" \"async\": \"^3.2.0\"","isFullCredit":false},{"lineNumber":2658,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2659,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2660,"author":{"gitId":"-"},"content":" \"getpass\": {","isFullCredit":false},{"lineNumber":2661,"author":{"gitId":"-"},"content":" \"version\": \"0.1.7\",","isFullCredit":false},{"lineNumber":2662,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz\",","isFullCredit":false},{"lineNumber":2663,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng\u003d\u003d\",","isFullCredit":false},{"lineNumber":2664,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2665,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2666,"author":{"gitId":"-"},"content":" \"assert-plus\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":2667,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2668,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2669,"author":{"gitId":"-"},"content":" \"glob\": {","isFullCredit":false},{"lineNumber":2670,"author":{"gitId":"-"},"content":" \"version\": \"7.2.3\",","isFullCredit":false},{"lineNumber":2671,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/glob/-/glob-7.2.3.tgz\",","isFullCredit":false},{"lineNumber":2672,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":2673,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2674,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2675,"author":{"gitId":"-"},"content":" \"fs.realpath\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":2676,"author":{"gitId":"-"},"content":" \"inflight\": \"^1.0.4\",","isFullCredit":false},{"lineNumber":2677,"author":{"gitId":"-"},"content":" \"inherits\": \"2\",","isFullCredit":false},{"lineNumber":2678,"author":{"gitId":"-"},"content":" \"minimatch\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":2679,"author":{"gitId":"-"},"content":" \"once\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":2680,"author":{"gitId":"-"},"content":" \"path-is-absolute\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":2681,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2682,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2683,"author":{"gitId":"-"},"content":" \"global-dirs\": {","isFullCredit":false},{"lineNumber":2684,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":2685,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz\",","isFullCredit":false},{"lineNumber":2686,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2687,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2688,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2689,"author":{"gitId":"-"},"content":" \"ini\": \"2.0.0\"","isFullCredit":false},{"lineNumber":2690,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2691,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2692,"author":{"gitId":"-"},"content":" \"graceful-fs\": {","isFullCredit":false},{"lineNumber":2693,"author":{"gitId":"-"},"content":" \"version\": \"4.2.11\",","isFullCredit":false},{"lineNumber":2694,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz\",","isFullCredit":false},{"lineNumber":2695,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2696,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2697,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2698,"author":{"gitId":"-"},"content":" \"has\": {","isFullCredit":false},{"lineNumber":2699,"author":{"gitId":"-"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":2700,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/has/-/has-1.0.4.tgz\",","isFullCredit":false},{"lineNumber":2701,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2702,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2703,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2704,"author":{"gitId":"-"},"content":" \"has-flag\": {","isFullCredit":false},{"lineNumber":2705,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":2706,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":2707,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2708,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2709,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2710,"author":{"gitId":"-"},"content":" \"has-proto\": {","isFullCredit":false},{"lineNumber":2711,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":2712,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz\",","isFullCredit":false},{"lineNumber":2713,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2714,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2715,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2716,"author":{"gitId":"-"},"content":" \"has-symbols\": {","isFullCredit":false},{"lineNumber":2717,"author":{"gitId":"-"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":2718,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz\",","isFullCredit":false},{"lineNumber":2719,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A\u003d\u003d\",","isFullCredit":false},{"lineNumber":2720,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2721,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2722,"author":{"gitId":"-"},"content":" \"http-signature\": {","isFullCredit":false},{"lineNumber":2723,"author":{"gitId":"-"},"content":" \"version\": \"1.3.6\",","isFullCredit":false},{"lineNumber":2724,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz\",","isFullCredit":false},{"lineNumber":2725,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2726,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2727,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2728,"author":{"gitId":"-"},"content":" \"assert-plus\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":2729,"author":{"gitId":"-"},"content":" \"jsprim\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":2730,"author":{"gitId":"-"},"content":" \"sshpk\": \"^1.14.1\"","isFullCredit":false},{"lineNumber":2731,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2732,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2733,"author":{"gitId":"-"},"content":" \"human-signals\": {","isFullCredit":false},{"lineNumber":2734,"author":{"gitId":"-"},"content":" \"version\": \"1.1.1\",","isFullCredit":false},{"lineNumber":2735,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz\",","isFullCredit":false},{"lineNumber":2736,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2737,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2738,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2739,"author":{"gitId":"-"},"content":" \"ieee754\": {","isFullCredit":false},{"lineNumber":2740,"author":{"gitId":"-"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":2741,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz\",","isFullCredit":false},{"lineNumber":2742,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2743,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2744,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2745,"author":{"gitId":"-"},"content":" \"indent-string\": {","isFullCredit":false},{"lineNumber":2746,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":2747,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":2748,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2749,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2750,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2751,"author":{"gitId":"-"},"content":" \"inflight\": {","isFullCredit":false},{"lineNumber":2752,"author":{"gitId":"-"},"content":" \"version\": \"1.0.6\",","isFullCredit":false},{"lineNumber":2753,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz\",","isFullCredit":false},{"lineNumber":2754,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2755,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2756,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2757,"author":{"gitId":"-"},"content":" \"once\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":2758,"author":{"gitId":"-"},"content":" \"wrappy\": \"1\"","isFullCredit":false},{"lineNumber":2759,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2760,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2761,"author":{"gitId":"-"},"content":" \"inherits\": {","isFullCredit":false},{"lineNumber":2762,"author":{"gitId":"-"},"content":" \"version\": \"2.0.4\",","isFullCredit":false},{"lineNumber":2763,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz\",","isFullCredit":false},{"lineNumber":2764,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2765,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2766,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2767,"author":{"gitId":"-"},"content":" \"ini\": {","isFullCredit":false},{"lineNumber":2768,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":2769,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ini/-/ini-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":2770,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2771,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2772,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2773,"author":{"gitId":"-"},"content":" \"is-ci\": {","isFullCredit":false},{"lineNumber":2774,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":2775,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz\",","isFullCredit":false},{"lineNumber":2776,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2777,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2778,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2779,"author":{"gitId":"-"},"content":" \"ci-info\": \"^3.2.0\"","isFullCredit":false},{"lineNumber":2780,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2781,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2782,"author":{"gitId":"-"},"content":" \"is-fullwidth-code-point\": {","isFullCredit":false},{"lineNumber":2783,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":2784,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":2785,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2786,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2787,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2788,"author":{"gitId":"-"},"content":" \"is-installed-globally\": {","isFullCredit":false},{"lineNumber":2789,"author":{"gitId":"-"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":2790,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz\",","isFullCredit":false},{"lineNumber":2791,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2792,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2793,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2794,"author":{"gitId":"-"},"content":" \"global-dirs\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":2795,"author":{"gitId":"-"},"content":" \"is-path-inside\": \"^3.0.2\"","isFullCredit":false},{"lineNumber":2796,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2797,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2798,"author":{"gitId":"-"},"content":" \"is-path-inside\": {","isFullCredit":false},{"lineNumber":2799,"author":{"gitId":"-"},"content":" \"version\": \"3.0.3\",","isFullCredit":false},{"lineNumber":2800,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz\",","isFullCredit":false},{"lineNumber":2801,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2802,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2803,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2804,"author":{"gitId":"-"},"content":" \"is-stream\": {","isFullCredit":false},{"lineNumber":2805,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":2806,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz\",","isFullCredit":false},{"lineNumber":2807,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2808,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2809,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2810,"author":{"gitId":"-"},"content":" \"is-typedarray\": {","isFullCredit":false},{"lineNumber":2811,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2812,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":2813,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2814,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2815,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2816,"author":{"gitId":"-"},"content":" \"is-unicode-supported\": {","isFullCredit":false},{"lineNumber":2817,"author":{"gitId":"-"},"content":" \"version\": \"0.1.0\",","isFullCredit":false},{"lineNumber":2818,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz\",","isFullCredit":false},{"lineNumber":2819,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2820,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2821,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2822,"author":{"gitId":"-"},"content":" \"isexe\": {","isFullCredit":false},{"lineNumber":2823,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":2824,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":2825,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2826,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2827,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2828,"author":{"gitId":"-"},"content":" \"isstream\": {","isFullCredit":false},{"lineNumber":2829,"author":{"gitId":"-"},"content":" \"version\": \"0.1.2\",","isFullCredit":false},{"lineNumber":2830,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz\",","isFullCredit":false},{"lineNumber":2831,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g\u003d\u003d\",","isFullCredit":false},{"lineNumber":2832,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2833,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2834,"author":{"gitId":"-"},"content":" \"jsbn\": {","isFullCredit":false},{"lineNumber":2835,"author":{"gitId":"-"},"content":" \"version\": \"0.1.1\",","isFullCredit":false},{"lineNumber":2836,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz\",","isFullCredit":false},{"lineNumber":2837,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2838,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2839,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2840,"author":{"gitId":"-"},"content":" \"json-schema\": {","isFullCredit":false},{"lineNumber":2841,"author":{"gitId":"-"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":2842,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz\",","isFullCredit":false},{"lineNumber":2843,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2844,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2845,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2846,"author":{"gitId":"-"},"content":" \"json-stringify-safe\": {","isFullCredit":false},{"lineNumber":2847,"author":{"gitId":"-"},"content":" \"version\": \"5.0.1\",","isFullCredit":false},{"lineNumber":2848,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz\",","isFullCredit":false},{"lineNumber":2849,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2850,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2851,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2852,"author":{"gitId":"-"},"content":" \"jsonfile\": {","isFullCredit":false},{"lineNumber":2853,"author":{"gitId":"-"},"content":" \"version\": \"6.1.0\",","isFullCredit":false},{"lineNumber":2854,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz\",","isFullCredit":false},{"lineNumber":2855,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2856,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2857,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2858,"author":{"gitId":"-"},"content":" \"graceful-fs\": \"^4.1.6\",","isFullCredit":false},{"lineNumber":2859,"author":{"gitId":"-"},"content":" \"universalify\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":2860,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2861,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2862,"author":{"gitId":"-"},"content":" \"universalify\": {","isFullCredit":false},{"lineNumber":2863,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":2864,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":2865,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2866,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2867,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2868,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2869,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2870,"author":{"gitId":"-"},"content":" \"jsprim\": {","isFullCredit":false},{"lineNumber":2871,"author":{"gitId":"-"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":2872,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz\",","isFullCredit":false},{"lineNumber":2873,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2874,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2875,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2876,"author":{"gitId":"-"},"content":" \"assert-plus\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2877,"author":{"gitId":"-"},"content":" \"extsprintf\": \"1.3.0\",","isFullCredit":false},{"lineNumber":2878,"author":{"gitId":"-"},"content":" \"json-schema\": \"0.4.0\",","isFullCredit":false},{"lineNumber":2879,"author":{"gitId":"-"},"content":" \"verror\": \"1.10.0\"","isFullCredit":false},{"lineNumber":2880,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2881,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2882,"author":{"gitId":"-"},"content":" \"lazy-ass\": {","isFullCredit":false},{"lineNumber":2883,"author":{"gitId":"-"},"content":" \"version\": \"1.6.0\",","isFullCredit":false},{"lineNumber":2884,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz\",","isFullCredit":false},{"lineNumber":2885,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2886,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2887,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2888,"author":{"gitId":"-"},"content":" \"listr2\": {","isFullCredit":false},{"lineNumber":2889,"author":{"gitId":"-"},"content":" \"version\": \"3.14.0\",","isFullCredit":false},{"lineNumber":2890,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz\",","isFullCredit":false},{"lineNumber":2891,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g\u003d\u003d\",","isFullCredit":false},{"lineNumber":2892,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2893,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2894,"author":{"gitId":"-"},"content":" \"cli-truncate\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":2895,"author":{"gitId":"-"},"content":" \"colorette\": \"^2.0.16\",","isFullCredit":false},{"lineNumber":2896,"author":{"gitId":"-"},"content":" \"log-update\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2897,"author":{"gitId":"-"},"content":" \"p-map\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2898,"author":{"gitId":"-"},"content":" \"rfdc\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":2899,"author":{"gitId":"-"},"content":" \"rxjs\": \"^7.5.1\",","isFullCredit":false},{"lineNumber":2900,"author":{"gitId":"-"},"content":" \"through\": \"^2.3.8\",","isFullCredit":false},{"lineNumber":2901,"author":{"gitId":"-"},"content":" \"wrap-ansi\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":2902,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2903,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2904,"author":{"gitId":"-"},"content":" \"lodash\": {","isFullCredit":false},{"lineNumber":2905,"author":{"gitId":"-"},"content":" \"version\": \"4.17.21\",","isFullCredit":false},{"lineNumber":2906,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",","isFullCredit":false},{"lineNumber":2907,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2908,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2909,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2910,"author":{"gitId":"-"},"content":" \"lodash.once\": {","isFullCredit":false},{"lineNumber":2911,"author":{"gitId":"-"},"content":" \"version\": \"4.1.1\",","isFullCredit":false},{"lineNumber":2912,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz\",","isFullCredit":false},{"lineNumber":2913,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2914,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2915,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2916,"author":{"gitId":"-"},"content":" \"log-symbols\": {","isFullCredit":false},{"lineNumber":2917,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":2918,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz\",","isFullCredit":false},{"lineNumber":2919,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2920,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2921,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2922,"author":{"gitId":"-"},"content":" \"chalk\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":2923,"author":{"gitId":"-"},"content":" \"is-unicode-supported\": \"^0.1.0\"","isFullCredit":false},{"lineNumber":2924,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2925,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2926,"author":{"gitId":"-"},"content":" \"log-update\": {","isFullCredit":false},{"lineNumber":2927,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":2928,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":2929,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2930,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2931,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2932,"author":{"gitId":"-"},"content":" \"ansi-escapes\": \"^4.3.0\",","isFullCredit":false},{"lineNumber":2933,"author":{"gitId":"-"},"content":" \"cli-cursor\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":2934,"author":{"gitId":"-"},"content":" \"slice-ansi\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2935,"author":{"gitId":"-"},"content":" \"wrap-ansi\": \"^6.2.0\"","isFullCredit":false},{"lineNumber":2936,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2937,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2938,"author":{"gitId":"-"},"content":" \"slice-ansi\": {","isFullCredit":false},{"lineNumber":2939,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":2940,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":2941,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2942,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2943,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2944,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2945,"author":{"gitId":"-"},"content":" \"astral-regex\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":2946,"author":{"gitId":"-"},"content":" \"is-fullwidth-code-point\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":2947,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2948,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2949,"author":{"gitId":"-"},"content":" \"wrap-ansi\": {","isFullCredit":false},{"lineNumber":2950,"author":{"gitId":"-"},"content":" \"version\": \"6.2.0\",","isFullCredit":false},{"lineNumber":2951,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz\",","isFullCredit":false},{"lineNumber":2952,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2953,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2954,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2955,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2956,"author":{"gitId":"-"},"content":" \"string-width\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":2957,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":2958,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2959,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2960,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2961,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2962,"author":{"gitId":"-"},"content":" \"lru-cache\": {","isFullCredit":false},{"lineNumber":2963,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":2964,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":2965,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2966,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2967,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2968,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":2969,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2970,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2971,"author":{"gitId":"-"},"content":" \"merge-stream\": {","isFullCredit":false},{"lineNumber":2972,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":2973,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":2974,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w\u003d\u003d\",","isFullCredit":false},{"lineNumber":2975,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2976,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2977,"author":{"gitId":"-"},"content":" \"mime-db\": {","isFullCredit":false},{"lineNumber":2978,"author":{"gitId":"-"},"content":" \"version\": \"1.52.0\",","isFullCredit":false},{"lineNumber":2979,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz\",","isFullCredit":false},{"lineNumber":2980,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2981,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2982,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2983,"author":{"gitId":"-"},"content":" \"mime-types\": {","isFullCredit":false},{"lineNumber":2984,"author":{"gitId":"-"},"content":" \"version\": \"2.1.35\",","isFullCredit":false},{"lineNumber":2985,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz\",","isFullCredit":false},{"lineNumber":2986,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2987,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2988,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":2989,"author":{"gitId":"-"},"content":" \"mime-db\": \"1.52.0\"","isFullCredit":false},{"lineNumber":2990,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2991,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2992,"author":{"gitId":"-"},"content":" \"mimic-fn\": {","isFullCredit":false},{"lineNumber":2993,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":2994,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz\",","isFullCredit":false},{"lineNumber":2995,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2996,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2997,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2998,"author":{"gitId":"-"},"content":" \"minimatch\": {","isFullCredit":false},{"lineNumber":2999,"author":{"gitId":"-"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":3000,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz\",","isFullCredit":false},{"lineNumber":3001,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw\u003d\u003d\",","isFullCredit":false},{"lineNumber":3002,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3003,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3004,"author":{"gitId":"-"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":3005,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3006,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3007,"author":{"gitId":"-"},"content":" \"minimist\": {","isFullCredit":false},{"lineNumber":3008,"author":{"gitId":"-"},"content":" \"version\": \"1.2.8\",","isFullCredit":false},{"lineNumber":3009,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz\",","isFullCredit":false},{"lineNumber":3010,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3011,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3012,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3013,"author":{"gitId":"-"},"content":" \"ms\": {","isFullCredit":false},{"lineNumber":3014,"author":{"gitId":"-"},"content":" \"version\": \"2.1.3\",","isFullCredit":false},{"lineNumber":3015,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",","isFullCredit":false},{"lineNumber":3016,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3017,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3018,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3019,"author":{"gitId":"-"},"content":" \"npm-run-path\": {","isFullCredit":false},{"lineNumber":3020,"author":{"gitId":"-"},"content":" \"version\": \"4.0.1\",","isFullCredit":false},{"lineNumber":3021,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz\",","isFullCredit":false},{"lineNumber":3022,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw\u003d\u003d\",","isFullCredit":false},{"lineNumber":3023,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3024,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3025,"author":{"gitId":"-"},"content":" \"path-key\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":3026,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3027,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3028,"author":{"gitId":"-"},"content":" \"object-inspect\": {","isFullCredit":false},{"lineNumber":3029,"author":{"gitId":"-"},"content":" \"version\": \"1.12.3\",","isFullCredit":false},{"lineNumber":3030,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz\",","isFullCredit":false},{"lineNumber":3031,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g\u003d\u003d\",","isFullCredit":false},{"lineNumber":3032,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3033,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3034,"author":{"gitId":"-"},"content":" \"once\": {","isFullCredit":false},{"lineNumber":3035,"author":{"gitId":"-"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":3036,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/once/-/once-1.4.0.tgz\",","isFullCredit":false},{"lineNumber":3037,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w\u003d\u003d\",","isFullCredit":false},{"lineNumber":3038,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3039,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3040,"author":{"gitId":"-"},"content":" \"wrappy\": \"1\"","isFullCredit":false},{"lineNumber":3041,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3042,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3043,"author":{"gitId":"-"},"content":" \"onetime\": {","isFullCredit":false},{"lineNumber":3044,"author":{"gitId":"-"},"content":" \"version\": \"5.1.2\",","isFullCredit":false},{"lineNumber":3045,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz\",","isFullCredit":false},{"lineNumber":3046,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3047,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3048,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3049,"author":{"gitId":"-"},"content":" \"mimic-fn\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":3050,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3051,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3052,"author":{"gitId":"-"},"content":" \"ospath\": {","isFullCredit":false},{"lineNumber":3053,"author":{"gitId":"-"},"content":" \"version\": \"1.2.2\",","isFullCredit":false},{"lineNumber":3054,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz\",","isFullCredit":false},{"lineNumber":3055,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3056,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3057,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3058,"author":{"gitId":"-"},"content":" \"p-map\": {","isFullCredit":false},{"lineNumber":3059,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":3060,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":3061,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3062,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3063,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3064,"author":{"gitId":"-"},"content":" \"aggregate-error\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":3065,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3066,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3067,"author":{"gitId":"-"},"content":" \"path-is-absolute\": {","isFullCredit":false},{"lineNumber":3068,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":3069,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz\",","isFullCredit":false},{"lineNumber":3070,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3071,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3072,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3073,"author":{"gitId":"-"},"content":" \"path-key\": {","isFullCredit":false},{"lineNumber":3074,"author":{"gitId":"-"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":3075,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz\",","isFullCredit":false},{"lineNumber":3076,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":3077,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3078,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3079,"author":{"gitId":"-"},"content":" \"pend\": {","isFullCredit":false},{"lineNumber":3080,"author":{"gitId":"-"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":3081,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/pend/-/pend-1.2.0.tgz\",","isFullCredit":false},{"lineNumber":3082,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3083,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3084,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3085,"author":{"gitId":"-"},"content":" \"performance-now\": {","isFullCredit":false},{"lineNumber":3086,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":3087,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz\",","isFullCredit":false},{"lineNumber":3088,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow\u003d\u003d\",","isFullCredit":false},{"lineNumber":3089,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3090,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3091,"author":{"gitId":"-"},"content":" \"pify\": {","isFullCredit":false},{"lineNumber":3092,"author":{"gitId":"-"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":3093,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/pify/-/pify-2.3.0.tgz\",","isFullCredit":false},{"lineNumber":3094,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog\u003d\u003d\",","isFullCredit":false},{"lineNumber":3095,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3096,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3097,"author":{"gitId":"-"},"content":" \"pretty-bytes\": {","isFullCredit":false},{"lineNumber":3098,"author":{"gitId":"-"},"content":" \"version\": \"5.6.0\",","isFullCredit":false},{"lineNumber":3099,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz\",","isFullCredit":false},{"lineNumber":3100,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3101,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3102,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3103,"author":{"gitId":"-"},"content":" \"process\": {","isFullCredit":false},{"lineNumber":3104,"author":{"gitId":"-"},"content":" \"version\": \"0.11.10\",","isFullCredit":false},{"lineNumber":3105,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/process/-/process-0.11.10.tgz\",","isFullCredit":false},{"lineNumber":3106,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A\u003d\u003d\",","isFullCredit":false},{"lineNumber":3107,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3108,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3109,"author":{"gitId":"-"},"content":" \"proxy-from-env\": {","isFullCredit":false},{"lineNumber":3110,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":3111,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":3112,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A\u003d\u003d\",","isFullCredit":false},{"lineNumber":3113,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3114,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3115,"author":{"gitId":"-"},"content":" \"psl\": {","isFullCredit":false},{"lineNumber":3116,"author":{"gitId":"-"},"content":" \"version\": \"1.9.0\",","isFullCredit":false},{"lineNumber":3117,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/psl/-/psl-1.9.0.tgz\",","isFullCredit":false},{"lineNumber":3118,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag\u003d\u003d\",","isFullCredit":false},{"lineNumber":3119,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3120,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3121,"author":{"gitId":"-"},"content":" \"pump\": {","isFullCredit":false},{"lineNumber":3122,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":3123,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/pump/-/pump-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":3124,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww\u003d\u003d\",","isFullCredit":false},{"lineNumber":3125,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3126,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3127,"author":{"gitId":"-"},"content":" \"end-of-stream\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":3128,"author":{"gitId":"-"},"content":" \"once\": \"^1.3.1\"","isFullCredit":false},{"lineNumber":3129,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3130,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3131,"author":{"gitId":"-"},"content":" \"punycode\": {","isFullCredit":false},{"lineNumber":3132,"author":{"gitId":"-"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":3133,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz\",","isFullCredit":false},{"lineNumber":3134,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3135,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3136,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3137,"author":{"gitId":"-"},"content":" \"qs\": {","isFullCredit":false},{"lineNumber":3138,"author":{"gitId":"-"},"content":" \"version\": \"6.10.4\",","isFullCredit":false},{"lineNumber":3139,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/qs/-/qs-6.10.4.tgz\",","isFullCredit":false},{"lineNumber":3140,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g\u003d\u003d\",","isFullCredit":false},{"lineNumber":3141,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3142,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3143,"author":{"gitId":"-"},"content":" \"side-channel\": \"^1.0.4\"","isFullCredit":false},{"lineNumber":3144,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3145,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3146,"author":{"gitId":"-"},"content":" \"querystringify\": {","isFullCredit":false},{"lineNumber":3147,"author":{"gitId":"-"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":3148,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz\",","isFullCredit":false},{"lineNumber":3149,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3150,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3151,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3152,"author":{"gitId":"-"},"content":" \"request-progress\": {","isFullCredit":false},{"lineNumber":3153,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":3154,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":3155,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3156,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3157,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3158,"author":{"gitId":"-"},"content":" \"throttleit\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":3159,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3160,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3161,"author":{"gitId":"-"},"content":" \"requires-port\": {","isFullCredit":false},{"lineNumber":3162,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":3163,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":3164,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3165,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3166,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3167,"author":{"gitId":"-"},"content":" \"restore-cursor\": {","isFullCredit":false},{"lineNumber":3168,"author":{"gitId":"-"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":3169,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz\",","isFullCredit":false},{"lineNumber":3170,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3171,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3172,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3173,"author":{"gitId":"-"},"content":" \"onetime\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":3174,"author":{"gitId":"-"},"content":" \"signal-exit\": \"^3.0.2\"","isFullCredit":false},{"lineNumber":3175,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3176,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3177,"author":{"gitId":"-"},"content":" \"rfdc\": {","isFullCredit":false},{"lineNumber":3178,"author":{"gitId":"-"},"content":" \"version\": \"1.3.0\",","isFullCredit":false},{"lineNumber":3179,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz\",","isFullCredit":false},{"lineNumber":3180,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3181,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3182,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3183,"author":{"gitId":"-"},"content":" \"rimraf\": {","isFullCredit":false},{"lineNumber":3184,"author":{"gitId":"-"},"content":" \"version\": \"3.0.2\",","isFullCredit":false},{"lineNumber":3185,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz\",","isFullCredit":false},{"lineNumber":3186,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3187,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3188,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3189,"author":{"gitId":"-"},"content":" \"glob\": \"^7.1.3\"","isFullCredit":false},{"lineNumber":3190,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3191,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3192,"author":{"gitId":"-"},"content":" \"rxjs\": {","isFullCredit":false},{"lineNumber":3193,"author":{"gitId":"-"},"content":" \"version\": \"7.8.1\",","isFullCredit":false},{"lineNumber":3194,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz\",","isFullCredit":false},{"lineNumber":3195,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3196,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3197,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3198,"author":{"gitId":"-"},"content":" \"tslib\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":3199,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3200,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3201,"author":{"gitId":"-"},"content":" \"safe-buffer\": {","isFullCredit":false},{"lineNumber":3202,"author":{"gitId":"-"},"content":" \"version\": \"5.2.1\",","isFullCredit":false},{"lineNumber":3203,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz\",","isFullCredit":false},{"lineNumber":3204,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3205,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3206,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3207,"author":{"gitId":"-"},"content":" \"safer-buffer\": {","isFullCredit":false},{"lineNumber":3208,"author":{"gitId":"-"},"content":" \"version\": \"2.1.2\",","isFullCredit":false},{"lineNumber":3209,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz\",","isFullCredit":false},{"lineNumber":3210,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3211,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3212,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3213,"author":{"gitId":"-"},"content":" \"semver\": {","isFullCredit":false},{"lineNumber":3214,"author":{"gitId":"-"},"content":" \"version\": \"7.5.4\",","isFullCredit":false},{"lineNumber":3215,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.5.4.tgz\",","isFullCredit":false},{"lineNumber":3216,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3217,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3218,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3219,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":3220,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3221,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3222,"author":{"gitId":"-"},"content":" \"shebang-command\": {","isFullCredit":false},{"lineNumber":3223,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":3224,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":3225,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3226,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3227,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3228,"author":{"gitId":"-"},"content":" \"shebang-regex\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":3229,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3230,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3231,"author":{"gitId":"-"},"content":" \"shebang-regex\": {","isFullCredit":false},{"lineNumber":3232,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":3233,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":3234,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A\u003d\u003d\",","isFullCredit":false},{"lineNumber":3235,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3236,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3237,"author":{"gitId":"-"},"content":" \"side-channel\": {","isFullCredit":false},{"lineNumber":3238,"author":{"gitId":"-"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":3239,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz\",","isFullCredit":false},{"lineNumber":3240,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw\u003d\u003d\",","isFullCredit":false},{"lineNumber":3241,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3242,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3243,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":3244,"author":{"gitId":"-"},"content":" \"get-intrinsic\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":3245,"author":{"gitId":"-"},"content":" \"object-inspect\": \"^1.9.0\"","isFullCredit":false},{"lineNumber":3246,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3247,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3248,"author":{"gitId":"-"},"content":" \"signal-exit\": {","isFullCredit":false},{"lineNumber":3249,"author":{"gitId":"-"},"content":" \"version\": \"3.0.7\",","isFullCredit":false},{"lineNumber":3250,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz\",","isFullCredit":false},{"lineNumber":3251,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3252,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3253,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3254,"author":{"gitId":"-"},"content":" \"slice-ansi\": {","isFullCredit":false},{"lineNumber":3255,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":3256,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":3257,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3258,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3259,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3260,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":3261,"author":{"gitId":"-"},"content":" \"astral-regex\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":3262,"author":{"gitId":"-"},"content":" \"is-fullwidth-code-point\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":3263,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3264,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3265,"author":{"gitId":"-"},"content":" \"sshpk\": {","isFullCredit":false},{"lineNumber":3266,"author":{"gitId":"-"},"content":" \"version\": \"1.17.0\",","isFullCredit":false},{"lineNumber":3267,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz\",","isFullCredit":false},{"lineNumber":3268,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3269,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3270,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3271,"author":{"gitId":"-"},"content":" \"asn1\": \"~0.2.3\",","isFullCredit":false},{"lineNumber":3272,"author":{"gitId":"-"},"content":" \"assert-plus\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":3273,"author":{"gitId":"-"},"content":" \"bcrypt-pbkdf\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":3274,"author":{"gitId":"-"},"content":" \"dashdash\": \"^1.12.0\",","isFullCredit":false},{"lineNumber":3275,"author":{"gitId":"-"},"content":" \"ecc-jsbn\": \"~0.1.1\",","isFullCredit":false},{"lineNumber":3276,"author":{"gitId":"-"},"content":" \"getpass\": \"^0.1.1\",","isFullCredit":false},{"lineNumber":3277,"author":{"gitId":"-"},"content":" \"jsbn\": \"~0.1.0\",","isFullCredit":false},{"lineNumber":3278,"author":{"gitId":"-"},"content":" \"safer-buffer\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":3279,"author":{"gitId":"-"},"content":" \"tweetnacl\": \"~0.14.0\"","isFullCredit":false},{"lineNumber":3280,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3281,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3282,"author":{"gitId":"-"},"content":" \"string-width\": {","isFullCredit":false},{"lineNumber":3283,"author":{"gitId":"-"},"content":" \"version\": \"4.2.3\",","isFullCredit":false},{"lineNumber":3284,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",","isFullCredit":false},{"lineNumber":3285,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g\u003d\u003d\",","isFullCredit":false},{"lineNumber":3286,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3287,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3288,"author":{"gitId":"-"},"content":" \"emoji-regex\": \"^8.0.0\",","isFullCredit":false},{"lineNumber":3289,"author":{"gitId":"-"},"content":" \"is-fullwidth-code-point\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":3290,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":3291,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3292,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3293,"author":{"gitId":"-"},"content":" \"strip-ansi\": {","isFullCredit":false},{"lineNumber":3294,"author":{"gitId":"-"},"content":" \"version\": \"6.0.1\",","isFullCredit":false},{"lineNumber":3295,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",","isFullCredit":false},{"lineNumber":3296,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A\u003d\u003d\",","isFullCredit":false},{"lineNumber":3297,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3298,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3299,"author":{"gitId":"-"},"content":" \"ansi-regex\": \"^5.0.1\"","isFullCredit":false},{"lineNumber":3300,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3301,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3302,"author":{"gitId":"-"},"content":" \"strip-final-newline\": {","isFullCredit":false},{"lineNumber":3303,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":3304,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz\",","isFullCredit":false},{"lineNumber":3305,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3306,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3307,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3308,"author":{"gitId":"-"},"content":" \"supports-color\": {","isFullCredit":false},{"lineNumber":3309,"author":{"gitId":"-"},"content":" \"version\": \"8.1.1\",","isFullCredit":false},{"lineNumber":3310,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",","isFullCredit":false},{"lineNumber":3311,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":3312,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3313,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3314,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":3315,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3316,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3317,"author":{"gitId":"-"},"content":" \"throttleit\": {","isFullCredit":false},{"lineNumber":3318,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":3319,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":3320,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g\u003d\u003d\",","isFullCredit":false},{"lineNumber":3321,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3322,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3323,"author":{"gitId":"-"},"content":" \"through\": {","isFullCredit":false},{"lineNumber":3324,"author":{"gitId":"-"},"content":" \"version\": \"2.3.8\",","isFullCredit":false},{"lineNumber":3325,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/through/-/through-2.3.8.tgz\",","isFullCredit":false},{"lineNumber":3326,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3327,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3328,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3329,"author":{"gitId":"-"},"content":" \"tmp\": {","isFullCredit":false},{"lineNumber":3330,"author":{"gitId":"-"},"content":" \"version\": \"0.2.1\",","isFullCredit":false},{"lineNumber":3331,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz\",","isFullCredit":false},{"lineNumber":3332,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3333,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3334,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3335,"author":{"gitId":"-"},"content":" \"rimraf\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":3336,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3337,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3338,"author":{"gitId":"-"},"content":" \"tough-cookie\": {","isFullCredit":false},{"lineNumber":3339,"author":{"gitId":"-"},"content":" \"version\": \"4.1.3\",","isFullCredit":false},{"lineNumber":3340,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz\",","isFullCredit":false},{"lineNumber":3341,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw\u003d\u003d\",","isFullCredit":false},{"lineNumber":3342,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3343,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3344,"author":{"gitId":"-"},"content":" \"psl\": \"^1.1.33\",","isFullCredit":false},{"lineNumber":3345,"author":{"gitId":"-"},"content":" \"punycode\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":3346,"author":{"gitId":"-"},"content":" \"universalify\": \"^0.2.0\",","isFullCredit":false},{"lineNumber":3347,"author":{"gitId":"-"},"content":" \"url-parse\": \"^1.5.3\"","isFullCredit":false},{"lineNumber":3348,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3349,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3350,"author":{"gitId":"-"},"content":" \"tslib\": {","isFullCredit":false},{"lineNumber":3351,"author":{"gitId":"-"},"content":" \"version\": \"2.6.2\",","isFullCredit":false},{"lineNumber":3352,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz\",","isFullCredit":false},{"lineNumber":3353,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":3354,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3355,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3356,"author":{"gitId":"-"},"content":" \"tunnel-agent\": {","isFullCredit":false},{"lineNumber":3357,"author":{"gitId":"-"},"content":" \"version\": \"0.6.0\",","isFullCredit":false},{"lineNumber":3358,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz\",","isFullCredit":false},{"lineNumber":3359,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w\u003d\u003d\",","isFullCredit":false},{"lineNumber":3360,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3361,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3362,"author":{"gitId":"-"},"content":" \"safe-buffer\": \"^5.0.1\"","isFullCredit":false},{"lineNumber":3363,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3364,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3365,"author":{"gitId":"-"},"content":" \"tweetnacl\": {","isFullCredit":false},{"lineNumber":3366,"author":{"gitId":"-"},"content":" \"version\": \"0.14.5\",","isFullCredit":false},{"lineNumber":3367,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz\",","isFullCredit":false},{"lineNumber":3368,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3369,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3370,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3371,"author":{"gitId":"-"},"content":" \"type-fest\": {","isFullCredit":false},{"lineNumber":3372,"author":{"gitId":"-"},"content":" \"version\": \"0.21.3\",","isFullCredit":false},{"lineNumber":3373,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz\",","isFullCredit":false},{"lineNumber":3374,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w\u003d\u003d\",","isFullCredit":false},{"lineNumber":3375,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3376,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3377,"author":{"gitId":"-"},"content":" \"universalify\": {","isFullCredit":false},{"lineNumber":3378,"author":{"gitId":"-"},"content":" \"version\": \"0.2.0\",","isFullCredit":false},{"lineNumber":3379,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz\",","isFullCredit":false},{"lineNumber":3380,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3381,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3382,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3383,"author":{"gitId":"-"},"content":" \"untildify\": {","isFullCredit":false},{"lineNumber":3384,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":3385,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":3386,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw\u003d\u003d\",","isFullCredit":false},{"lineNumber":3387,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3388,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3389,"author":{"gitId":"-"},"content":" \"url-parse\": {","isFullCredit":false},{"lineNumber":3390,"author":{"gitId":"-"},"content":" \"version\": \"1.5.10\",","isFullCredit":false},{"lineNumber":3391,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz\",","isFullCredit":false},{"lineNumber":3392,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3393,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3394,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3395,"author":{"gitId":"-"},"content":" \"querystringify\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":3396,"author":{"gitId":"-"},"content":" \"requires-port\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":3397,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3398,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3399,"author":{"gitId":"-"},"content":" \"uuid\": {","isFullCredit":false},{"lineNumber":3400,"author":{"gitId":"-"},"content":" \"version\": \"8.3.2\",","isFullCredit":false},{"lineNumber":3401,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz\",","isFullCredit":false},{"lineNumber":3402,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3403,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3404,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3405,"author":{"gitId":"-"},"content":" \"verror\": {","isFullCredit":false},{"lineNumber":3406,"author":{"gitId":"-"},"content":" \"version\": \"1.10.0\",","isFullCredit":false},{"lineNumber":3407,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/verror/-/verror-1.10.0.tgz\",","isFullCredit":false},{"lineNumber":3408,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw\u003d\u003d\",","isFullCredit":false},{"lineNumber":3409,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3410,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3411,"author":{"gitId":"-"},"content":" \"assert-plus\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":3412,"author":{"gitId":"-"},"content":" \"core-util-is\": \"1.0.2\",","isFullCredit":false},{"lineNumber":3413,"author":{"gitId":"-"},"content":" \"extsprintf\": \"^1.2.0\"","isFullCredit":false},{"lineNumber":3414,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3415,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3416,"author":{"gitId":"-"},"content":" \"which\": {","isFullCredit":false},{"lineNumber":3417,"author":{"gitId":"-"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":3418,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/which/-/which-2.0.2.tgz\",","isFullCredit":false},{"lineNumber":3419,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3420,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3421,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3422,"author":{"gitId":"-"},"content":" \"isexe\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":3423,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3424,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3425,"author":{"gitId":"-"},"content":" \"wrap-ansi\": {","isFullCredit":false},{"lineNumber":3426,"author":{"gitId":"-"},"content":" \"version\": \"7.0.0\",","isFullCredit":false},{"lineNumber":3427,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",","isFullCredit":false},{"lineNumber":3428,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":3429,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3430,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3431,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":3432,"author":{"gitId":"-"},"content":" \"string-width\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":3433,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":3434,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3435,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3436,"author":{"gitId":"-"},"content":" \"wrappy\": {","isFullCredit":false},{"lineNumber":3437,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":3438,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz\",","isFullCredit":false},{"lineNumber":3439,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3440,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3441,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3442,"author":{"gitId":"-"},"content":" \"yallist\": {","isFullCredit":false},{"lineNumber":3443,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":3444,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":3445,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":3446,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3447,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3448,"author":{"gitId":"-"},"content":" \"yauzl\": {","isFullCredit":false},{"lineNumber":3449,"author":{"gitId":"-"},"content":" \"version\": \"2.10.0\",","isFullCredit":false},{"lineNumber":3450,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz\",","isFullCredit":false},{"lineNumber":3451,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g\u003d\u003d\",","isFullCredit":false},{"lineNumber":3452,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3453,"author":{"gitId":"-"},"content":" \"requires\": {","isFullCredit":false},{"lineNumber":3454,"author":{"gitId":"-"},"content":" \"buffer-crc32\": \"~0.2.3\",","isFullCredit":false},{"lineNumber":3455,"author":{"gitId":"-"},"content":" \"fd-slicer\": \"~1.1.0\"","isFullCredit":false},{"lineNumber":3456,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3457,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3458,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3459,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"sopa301":1987,"-":1472}},{"path":"frontend/cypress/package.json","fileType":"json","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" \"scripts\": {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" \"tests\": \"cypress run --browser chrome\",","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" \"ci\": \"cypress run --env ci\u003dtrue --browser chrome\",","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" \"debug\": \"cypress open\"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" \"devDependencies\": {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"sopa301"},"content":" \"cypress\": \"^13.6.4\"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"sopa301":1,"-":9}},{"path":"frontend/cypress/support.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"// Disable screenshots","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"// https://docs.cypress.io/api/cypress-api/screenshot-api.html#Disable-screenshots-on-run-failures","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"Cypress.Screenshot.defaults({","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" screenshotOnRunFailure: false,","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"});","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"beforeEach(() \u003d\u003e {","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" cy.visit(\u0027/\u0027);","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"sopa301"},"content":" cy.intercept({","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"sopa301"},"content":" method: \u0027GET\u0027,","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"sopa301"},"content":" url: \u0027/title.md\u0027,","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"sopa301"},"content":" }, \u0027# RepoSense Intro\u0027).as(\u0027getTitleMd\u0027);","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"sopa301":4,"-":10}},{"path":"frontend/cypress/tests/chartView/chartView_blurbs.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"describe(\u0027blurbs\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":" it(\u0027shows blurbs\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":" cy.get(\u0027.markdown.blurb\u0027)","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":" .first()","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":" .should(\u0027contain\u0027, \u0027first blurb\u0027);","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":" cy.get(\u0027.markdown.blurb\u0027)","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":" .should(\u0027contain\u0027, \u0027second blurb\u0027);","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":" cy.get(\u0027.markdown.blurb\u0027)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":" .eq(2)","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":" .should(\u0027contain\u0027, \u0027third blurb\u0027);","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":" });","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":" it(\u0027has the correct number of valid blurbs\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"asdfghjkxd"},"content":" cy.get(\u0027.markdown.blurb\u0027)","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"asdfghjkxd"},"content":" .should(\u0027have.length\u0027, 3);","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"asdfghjkxd"},"content":" });","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":" it(\u0027processes markdown in blurbs\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":" cy.get(\u0027.markdown.blurb\u0027)","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":" .find(\u0027h1\u0027)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":" .contains(\u0027second blurb in h1 tag\u0027);","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":" });","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":" it(\u0027processes html in blurbs\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":" cy.get(\u0027.markdown.blurb\u0027)","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":" .eq(2)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":" .find(\u0027h2\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":" .contains(\u0027third blurb in h2 markdown tag\u0027);","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":" });","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":"});","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":34}},{"path":"frontend/cypress/tests/chartView/chartView_errorSummary_messageBox.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027error summary\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027shows list of issues encountered while analyzing repos\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" cy.get(\u0027.error-message-box\u0027)","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-wrapper \u003e #summary \u003e .error-message-box \u003e .error-message-box__message\u0027).then(($ele) \u003d\u003e {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" const expected \u003d \u0027The following issues occurred when analyzing the following repositories:\u0027;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" const message \u003d $ele.text();","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" expect(expected).to.equal(message);","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" cy.get(\u0027.error-message-box__failed-repo--name\u0027)","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" cy.get(\u0027.error-message-box__failed-repo--reason\u0027)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" it(\u0027can be closed\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" cy.get(\u0027.error-message-box\u0027)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-wrapper \u003e #summary \u003e .error-message-box \u003e .error-message-box__close-button\u0027)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" cy.get(\u0027.error-message-box\u0027)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"jonasongg"},"content":" it(\u0027can be expanded and collapsed if count \u003e 4\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.error-message-box\u0027)","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.error-message-box__failed-repo\u0027)","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 4);","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.error-message-box__show-more-container \u003e a\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.error-message-box\u0027)","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.error-message-box__failed-repo\u0027)","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 5);","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.error-message-box__show-more-container \u003e a\u0027)","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.error-message-box\u0027)","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.error-message-box__failed-repo\u0027)","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 4);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":30,"jonasongg":20}},{"path":"frontend/cypress/tests/chartView/chartView_mergeGroup.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027merge group\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027check and uncheck merge group when group by repos\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"jonasongg"},"content":" // after checking merge group, only four merged repo groups will show","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-charts\u0027).find(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 4);","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"jonasongg"},"content":" // after un-checking merge group, all 9 summary charts will show","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-charts\u0027).find(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 9);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" it(\u0027check and uncheck merge group when group by authors\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .select(\u0027groupByAuthors\u0027);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"jonasongg"},"content":" // after checking merge group, 8 merged author groups will show","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-charts\u0027).find(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 8);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"jonasongg"},"content":" // after un-checking merge group, all 9 summary charts will show","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-charts\u0027).find(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 9);","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" it(\u0027merge group option should be disabled when group by none\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" .select(\u0027groupByNone\u0027);","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" .should(\u0027be.disabled\u0027);","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" it(\u0027should have the correct number of merge group contribution bars and correct length\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"jonasongg"},"content":" // get the chart bars and assert they have the correct initial widths","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"jonasongg"},"content":" const expectedWidths \u003d [100, 100, 20, 100, 100, 3, 20, 5];","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" cy.get(\u0027.stacked-bar__contrib--bar\u0027)","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, expectedWidths.length)","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" .then(($bars) \u003d\u003e {","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" // calculate the percentage of the width relative to the parent container","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" const parentWidth \u003d $bars.eq(0).parent().width();","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"jonasongg"},"content":" expectedWidths.forEach((expectedWidth, index) \u003d\u003e {","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"jonasongg"},"content":" const width \u003d (parseFloat(window.getComputedStyle($bars[index]).width) / parentWidth) * 100;","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"jonasongg"},"content":" expect(width).to.be.closeTo(expectedWidth, 2);","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" it(\u0027merge group contribution bars should have correct width after reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" const initialWidths \u003d [];","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" // Store the initial widths of the contribution bars","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" cy.get(\u0027.stacked-bar__contrib--bar\u0027)","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" .each(($bar) \u003d\u003e {","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" const width \u003d window.getComputedStyle($bar[0]).width;","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" initialWidths.push(width);","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" })","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .then(() \u003d\u003e {","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" // Reload the page and wait for the loading div to disappear","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" cy.get(\u0027.overlay-loader\u0027).should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" // Get the contribution bars again and compare their widths with the initial widths","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" cy.get(\u0027.stacked-bar__contrib--bar\u0027)","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, initialWidths.length)","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" .each(($bar, index) \u003d\u003e {","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" const width \u003d window.getComputedStyle($bar[0]).width;","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" expect(width).to.equal(initialWidths[index]);","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":91,"jonasongg":15}},{"path":"frontend/cypress/tests/chartView/chartView_optimiseTimeline.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"jonasongg"},"content":"describe(\u0027optimise timeline\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"jonasongg"},"content":" it(\u0027ramp padding should only exist when optimise timeline is checked\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.optimise-timeline \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.not.checked\u0027);","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-charts .summary-chart\u0027)","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__ramp .ramp .ramp-padding\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.css\u0027, \u0027left\u0027, \u00270px\u0027);","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.optimise-timeline \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-charts .summary-chart\u0027)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__ramp .ramp .ramp-padding\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.not.css\u0027, \u0027left\u0027, \u00270px\u0027);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"jonasongg"},"content":" it(\u0027should retain the same number of ramp slices\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-charts .summary-chart\u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__ramp .ramp .ramp-padding a\u0027)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"jonasongg"},"content":" .then(($el) \u003d\u003e {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"jonasongg"},"content":" const rampSlices \u003d $el.length;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.optimise-timeline \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-charts .summary-chart\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__ramp .ramp .ramp-padding a\u0027)","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, rampSlices);","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"jonasongg"},"content":" it(\u0027start and end date indicators should exist\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.optimise-timeline \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-charts .summary-chart\u0027)","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__ramp .date-indicators span\u0027)","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.text\u0027, \u00272018-05-03\u0027);","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-charts .summary-chart\u0027)","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__ramp .date-indicators span\u0027)","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"jonasongg"},"content":" .last()","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"jonasongg"},"content":" // 3/3 on GitHub CI, 3/4 on local","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.text\u0027, \u00272023-03-03\u0027);","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"jonasongg"},"content":" it(\u0027no commits in range should not have date indicators\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.optimise-timeline \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"jonasongg"},"content":" // change since date","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027input[name\u003d\"since\"]\u0027)","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"jonasongg"},"content":" .type(\u00272018-12-31\u0027);","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"jonasongg"},"content":" // change until date","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027input[name\u003d\"until\"]\u0027)","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"jonasongg"},"content":" .type(\u00272019-01-01\u0027);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-charts .summary-chart\u0027)","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__ramp .date-indicators\u0027)","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.exist\u0027);","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"jonasongg"},"content":" it(\u0027zoom panel range should work correctly when timeline is optimised\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"jonasongg"},"content":" // verifies the ramp chart is not optimised and has empty space on the right","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#tab-zoom .ramp a\u0027)","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"jonasongg"},"content":" .invoke(\u0027css\u0027, \u0027right\u0027)","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"jonasongg"},"content":" .then((val) \u003d\u003e parseFloat(val))","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"jonasongg"},"content":" .should(\u0027gt\u0027, 0);","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.optimise-timeline \u003e input\u0027)","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"jonasongg"},"content":" // verifies the date range is correctly optimised","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#tab-zoom .period\u0027)","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u00272018-05-03 to 2023-03-03\u0027);","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"jonasongg"},"content":" // verifies the ramp chart is optimised and has no empty space on the right","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#tab-zoom .ramp a\u0027)","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"jonasongg"},"content":" .invoke(\u0027css\u0027, \u0027right\u0027)","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"jonasongg"},"content":" .then((val) \u003d\u003e parseFloat(val))","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"jonasongg"},"content":" .should(\u0027lt\u0027, 1);","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"jonasongg"},"content":" it(\u0027subzoom panel range should work correctly when timeline is optimised\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"jonasongg"},"content":" const zoomKey \u003d Cypress.platform \u003d\u003d\u003d \u0027darwin\u0027 ? \u0027{meta}\u0027 : \u0027{ctrl}\u0027;","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.optimise-timeline \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"jonasongg"},"content":" // clicking from the 10th px to the 50th px in the ramp","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027body\u0027).type(zoomKey, { release: false })","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"jonasongg"},"content":" .get(\u0027#summary-charts .summary-chart__ramp .ramp\u0027)","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"jonasongg"},"content":" .click(110, 20)","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"jonasongg"},"content":" .click(120, 20);","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 1);","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"jonasongg"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"jonasongg"},"content":" .then((title) \u003d\u003e {","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"jonasongg"},"content":" cy.wrap(title).should(\u0027eq\u0027, \u0027[2019-08-18] AboutUs: update team members (#867): +94 -12 lines \u0027);","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"jonasongg"},"content":"});","isFullCredit":false}],"authorContributionMap":{"jonasongg":151}},{"path":"frontend/cypress/tests/chartView/chartView_scrollToActiveRepo.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"jonasongg"},"content":"describe(\u0027scroll to active repo\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"jonasongg"},"content":" // need to set scrollBehavior to false because the default behavior is to scroll the element into view","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"jonasongg"},"content":" it(\u0027selecting a visible repo should not scroll\u0027, { scrollBehavior: false }, () \u003d\u003e {","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"jonasongg"},"content":" // close the error message box","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.error-message-box\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper \u003e #summary \u003e .error-message-box \u003e .error-message-box__close-button\u0027)","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.error-message-box\u0027)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"jonasongg"},"content":" .first();","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"jonasongg"},"content":" let scrollTopOriginal \u003d 0;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper\u0027)","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"jonasongg"},"content":" .then(($el) \u003d\u003e {","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"jonasongg"},"content":" scrollTopOriginal \u003d $el.prop(\u0027scrollTop\u0027);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"jonasongg"},"content":" .then(($el) \u003d\u003e {","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"jonasongg"},"content":" const scrollTop \u003d $el.prop(\u0027scrollTop\u0027);","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"jonasongg"},"content":" expect(scrollTop).to.equal(scrollTopOriginal);","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"jonasongg"},"content":" it(\u0027selecting a non-visible repo should scroll\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"jonasongg"},"content":" .last()","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper\u0027)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"jonasongg"},"content":" .then(($el) \u003d\u003e {","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"jonasongg"},"content":" const scrollTop \u003d $el.prop(\u0027scrollTop\u0027);","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"jonasongg"},"content":" expect(scrollTop).to.not.equal(0);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027tabAuthor\u003dyong24s\u0027)","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027tabRepo\u003dreposense%2Fpublish-RepoSense%5Bmaster%5D\u0027);","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"jonasongg"},"content":" .last()","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"jonasongg"},"content":"});","isFullCredit":false}],"authorContributionMap":{"jonasongg":62}},{"path":"frontend/cypress/tests/chartView/chartView_showTags.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"jonasongg"},"content":"describe(\u0027show tags\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"jonasongg"},"content":" it(\u0027unchecked should not display any tags for a group\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.show-tags \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-charts__title--tags\u0027)","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.exist\u0027);","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"jonasongg"},"content":" it(\u0027checked should display all tags for a group\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.show-tags \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"jonasongg"},"content":" const correctTags \u003d [];","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.zoom__title--tags\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"jonasongg"},"content":" .each(($tag) \u003d\u003e correctTags.push($tag.text().trim()))","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"jonasongg"},"content":" .then(() \u003d\u003e {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-charts\u0027)","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-charts__title--tags\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"jonasongg"},"content":" .each(($tag) \u003d\u003e {","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"jonasongg"},"content":" expect(correctTags).to.include($tag.text().trim());","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-charts\u0027)","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-charts__title--tags\u0027)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, correctTags.length);","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"jonasongg"},"content":" it(\u0027clicked should redirect to the correct tag page\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.show-tags \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-charts__title--tags\u0027)","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"jonasongg"},"content":" .invoke(\u0027removeAttr\u0027, \u0027target\u0027) // to open in the same window","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"jonasongg"},"content":" cy.origin(\u0027https://github.com\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"jonasongg"},"content":" .should(\u0027equal\u0027, \u0027https://github.com/reposense/RepoSense/releases/tag/v1.0\u0027);","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"jonasongg"},"content":" it(\u0027group by authors works with show tags\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"jonasongg"},"content":" .select(\u0027groupByAuthors\u0027);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.sort-within-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"jonasongg"},"content":" .select(\u0027title dsc\u0027);","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.show-tags \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__title--tags\u0027)","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"jonasongg"},"content":" .find(\u0027a\u0027)","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 0);","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"jonasongg"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__title--tags\u0027)","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"jonasongg"},"content":" .find(\u0027a\u0027)","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length.gt\u0027, 0);","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"jonasongg"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"jonasongg"},"content":" const correctTags \u003d [];","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.zoom__title--tags\u0027)","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"jonasongg"},"content":" .each(($tag) \u003d\u003e correctTags.push($tag.text().trim()))","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"jonasongg"},"content":" .then(() \u003d\u003e {","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"jonasongg"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__title--tags\u0027)","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"jonasongg"},"content":" .each(($tag) \u003d\u003e {","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"jonasongg"},"content":" expect(correctTags).to.include($tag.text().trim());","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"jonasongg"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__title--tags\u0027)","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, correctTags.length);","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"jonasongg"},"content":" it(\u0027group by none works with show tags\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"jonasongg"},"content":" .select(\u0027groupByNone\u0027);","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.show-tags \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"jonasongg"},"content":" .check()","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"jonasongg"},"content":" const correctTags \u003d [];","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.zoom__title--tags\u0027)","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"jonasongg"},"content":" .each(($tag) \u003d\u003e correctTags.push($tag.text().trim()))","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"jonasongg"},"content":" .then(() \u003d\u003e {","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__title--tags\u0027)","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"jonasongg"},"content":" .each(($tag) \u003d\u003e {","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"jonasongg"},"content":" expect(correctTags).to.include($tag.text().trim());","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart\u0027)","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.summary-chart__title--tags\u0027)","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"jonasongg"},"content":" .find(\u0027.tag\u0027)","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, correctTags.length);","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"jonasongg"},"content":"});","isFullCredit":false}],"authorContributionMap":{"jonasongg":154}},{"path":"frontend/cypress/tests/chartView/chartView_toolBar_searchBox.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027search bar\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027non-existent author shows no result\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027).click();","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-wrapper input[type\u003dtext]\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" .type(\u0027abcdef\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-wrapper form.summary-picker\u0027)","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" .submit();","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-wrapper #summary-charts\u0027).then(($ele) \u003d\u003e {","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" const content \u003d $ele.html();","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" expect(content).to.be.empty;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" it(\u0027unique author shows one result\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027).click();","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-wrapper input[type\u003dtext]\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"jonasongg"},"content":" .type(\u0027Metta\u0027)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-wrapper form.summary-picker\u0027)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" .submit();","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-wrapper #summary-charts\u0027).then(($ele) \u003d\u003e {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" const children \u003d $ele.children().length;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" expect(children).to.equal(1);","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"jonasongg"},"content":" it(\u0027searching by non-existent tag shows no results\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027).click();","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper input[type\u003dtext]\u0027)","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"jonasongg"},"content":" .type(\u0027tag: asdfghjkl\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"jonasongg"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper form.summary-picker\u0027)","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"jonasongg"},"content":" .submit();","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper #summary-charts\u0027)","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.empty\u0027);","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"jonasongg"},"content":" it(\"searching tag that only exists in one author\u0027s commits shows one result\", () \u003d\u003e {","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027).click();","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper input[type\u003dtext]\u0027)","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"jonasongg"},"content":" .type(\u0027tag: v1.8\u0027)","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"jonasongg"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper form.summary-picker\u0027)","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"jonasongg"},"content":" .submit();","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart__title--name\u0027)","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 1)","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"jonasongg"},"content":" .and(\u0027contain\u0027, \u0027Eugene (eugenepeh)\u0027);","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.zoom__title--tags \u003e .tag span\u0027)","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027v1.8\u0027);","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"jonasongg"},"content":" it(\"searching tag that only exists in two authors\u0027 commits shows two results\", () \u003d\u003e {","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027).click();","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper input[type\u003dtext]\u0027)","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"jonasongg"},"content":" .type(\u0027tag: v1.10\u0027)","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"jonasongg"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper form.summary-picker\u0027)","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"jonasongg"},"content":" .submit();","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart__title--name\u0027)","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 2)","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"jonasongg"},"content":" .and(\u0027contain\u0027, \u0027Eugene (eugenepeh)\u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"jonasongg"},"content":" .and(\u0027contain\u0027, \u0027James (jamessspanggg)\u0027);","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"jonasongg"},"content":" .each(($ele) \u003d\u003e {","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"jonasongg"},"content":" cy.wrap($ele).click();","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.zoom__title--tags \u003e .tag span\u0027)","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027v1.10\u0027);","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"jonasongg"},"content":" it(\"search field doesn\u0027t start with \u0027tag:\u0027 prefix but still contains it shows no results\", () \u003d\u003e {","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027).click();","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper input[type\u003dtext]\u0027)","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"jonasongg"},"content":" .type(\u0027v1.10 tag: v1.10\u0027)","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"jonasongg"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper form.summary-picker\u0027)","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"jonasongg"},"content":" .submit();","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper #summary-charts\u0027)","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.empty\u0027);","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"jonasongg"},"content":" it(\"search field doesn\u0027t contain \u0027tag:\u0027 at all shows no results\", () \u003d\u003e {","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027).click();","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper input[type\u003dtext]\u0027)","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"jonasongg"},"content":" .type(\u0027v1.10\u0027)","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"jonasongg"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper form.summary-picker\u0027)","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"jonasongg"},"content":" .submit();","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper #summary-charts\u0027)","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.empty\u0027);","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"jonasongg"},"content":" it(\u0027searching for multiple tags shows results containing all the tags searched\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027).click();","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper input[type\u003dtext]\u0027)","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"jonasongg"},"content":" .type(\u0027tag: bb v1.10\u0027)","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"jonasongg"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary-wrapper form.summary-picker\u0027)","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"jonasongg"},"content":" .submit();","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.summary-chart__title--name\u0027)","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"jonasongg"},"content":" .should(\u0027have.length\u0027, 2)","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"jonasongg"},"content":" .and(\u0027contain\u0027, \u0027Eugene (eugenepeh)\u0027)","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"jonasongg"},"content":" .and(\u0027contain\u0027, \u0027James (jamessspanggg)\u0027);","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.zoom__title--tags \u003e .tag span\u0027)","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027bb\u0027);","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"jonasongg"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.zoom__title--tags \u003e .tag span\u0027)","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027v1.10\u0027);","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":31,"jonasongg":116}},{"path":"frontend/cypress/tests/chartView/chartView_zoomFeature.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"const extractDate \u003d (str) \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" const regex \u003d /\\[(.*?)\\]/g;","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" const matches \u003d str.match(regex);","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" return new Date(matches[0].slice(1, -1));","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"};","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"describe(\u0027zoom features in code view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" const zoomKey \u003d Cypress.platform \u003d\u003d\u003d \u0027darwin\u0027 ? \u0027{meta}\u0027 : \u0027{ctrl}\u0027;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" it(\u0027click on view commits button\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" it(\u0027zoom into ramp\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" // clicking from the 10th px to the 50th px in the ramp","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" cy.get(\u0027body\u0027).type(zoomKey, { release: false })","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .get(\u0027#summary-charts .summary-chart__ramp .ramp\u0027)","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" .click(10, 20)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" .click(50, 20);","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" it(\u0027zoom into ramp when merge group\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" // clicking from the 10th px to the 50th px in the ramp","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" cy.get(\u0027body\u0027).type(zoomKey, { release: false })","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .get(\u0027#summary-charts .summary-chart__ramp .ramp\u0027)","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .click(10, 20)","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .click(50, 20);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"});","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"// Assumptions: Contributer \u0027eugenepeh\u0027 is the first result.","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"describe(\u0027date changes in chart view should reflect in zoom\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" it(\u0027setting \\\u0027since\\\u0027 date range changes the zoom view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" .type(\u0027eugenepeh\u0027);","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" .type(\u00272018-06-11\u0027);","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" .each(($element) \u003d\u003e {","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" cy.wrap($element)","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" .then((titleStr) \u003d\u003e {","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" const date \u003d extractDate(titleStr);","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" cy.wrap(date).should(\u0027be.gte\u0027, new Date(\u00272018-06-11\u0027));","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027yong24s\u0027 is the first result.","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" it(\u0027setting \\\u0027since\\\u0027 date again results in a different zoom view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" .type(\u0027yong24s\u0027);","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" .type(\u00272018-05-20\u0027);","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" .each(($element) \u003d\u003e {","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" cy.wrap($element)","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" .then((titleStr) \u003d\u003e {","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" const date \u003d extractDate(titleStr);","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" cy.wrap(date).should(\u0027be.gte\u0027, new Date(\u00272018-05-20\u0027));","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027eugenepeh\u0027 is the first result.","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" it(\u0027setting the \\\u0027until\\\u0027 date changes the zoom view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" .type(\u0027eugenepeh\u0027);","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" .type(\u00272019-08-19\u0027);","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" .each(($element) \u003d\u003e {","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" cy.wrap($element)","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" .then((titleStr) \u003d\u003e {","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" const date \u003d extractDate(titleStr);","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" cy.wrap(date).should(\u0027be.lte\u0027, new Date(\u00272019-08-19\u0027));","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027ongspxm\u0027 is the first result.","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" it(\u0027setting the \\\u0027until\\\u0027 date again results in a different zoom view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" .type(\u0027ongspxm\u0027);","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" .type(\u00272018-07-20\u0027);","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" .each(($element) \u003d\u003e {","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" cy.wrap($element)","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" .then((titleStr) \u003d\u003e {","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" const date \u003d extractDate(titleStr);","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" cy.wrap(date).should(\u0027be.lte\u0027, new Date(\u00272018-07-20\u0027));","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027eugenepeh\u0027 is the first result.","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" it(\u0027setting the \\\u0027until\\\u0027 and \\\u0027since\\\u0027 date changes the zoom view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" .type(\u0027eugenepeh\u0027);","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" .type(\u00272018-08-27\u0027);","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" .type(\u00272019-03-09\u0027);","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" .each(($element) \u003d\u003e {","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" cy.wrap($element)","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" .then((titleStr) \u003d\u003e {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" const date \u003d extractDate(titleStr);","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" cy.wrap(date).should(\u0027be.lte\u0027, new Date(\u00272019-03-09\u0027));","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" .each(($element) \u003d\u003e {","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" cy.wrap($element)","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" .then((titleStr) \u003d\u003e {","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" const date \u003d extractDate(titleStr);","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" cy.wrap(date).should(\u0027be.gte\u0027, new Date(\u00272018-08-27\u0027));","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027jamessspanggg\u0027 is the first result.","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" it(\u0027setting the \\\u0027until\\\u0027 and \\\u0027since\\\u0027 date again results in a different zoom view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" .type(\u0027jamessspanggg\u0027);","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" .type(\u00272019-07-22\u0027);","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" .type(\u00272019-08-01\u0027);","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" .each(($element) \u003d\u003e {","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" cy.wrap($element)","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" .then((titleStr) \u003d\u003e {","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" const date \u003d extractDate(titleStr);","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" cy.wrap(date).should(\u0027be.lte\u0027, new Date(\u00272019-08-01\u0027));","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" .each(($element) \u003d\u003e {","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" cy.wrap($element)","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" .then((titleStr) \u003d\u003e {","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" const date \u003d extractDate(titleStr);","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" cy.wrap(date).should(\u0027be.gte\u0027, new Date(\u00272019-07-22\u0027));","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":"});","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":"describe(\u0027range changes in chartview should reflect in zoom\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"jonasongg"},"content":" const zoomKeyOption \u003d Cypress.platform \u003d\u003d\u003d \u0027darwin\u0027 ? { metaKey: true } : { ctrlKey: true };","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027jamessspanggg\u0027 is the first result,","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" // he does not add more commits in the future,","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" // and the sort feature is working as expected.","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" it(\u0027selecting the initial righthand and lefthand boundary\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" .type(\u0027jamessspanggg\u0027);","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"jonasongg"},"content":" .type(\u00272023-12-31\u0027);","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027body\u0027)","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" .get(\u0027#summary-charts .summary-chart__ramp .ramp\u0027)","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"jonasongg"},"content":" .click(120, 20, zoomKeyOption)","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"jonasongg"},"content":" .click(250, 20, zoomKeyOption);","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2021-01-04] Update `About us` page (#1393): +55 -30 lines \u0027);","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2019-12-20] [#46] Show total time after batch processing (#758): +43 -0 lines \u0027);","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027jamessspanggg\u0027 is the first result,","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" // he does not add more commits in the future,","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" // and the sort feature is working as expected.","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" it(\u0027changing the righthand boundary\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" .type(\u0027jamessspanggg\u0027);","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"jonasongg"},"content":" .type(\u00272023-12-31\u0027);","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027body\u0027)","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" .get(\u0027#summary-charts .summary-chart__ramp .ramp\u0027)","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"jonasongg"},"content":" .click(120, 20, zoomKeyOption)","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"jonasongg"},"content":" .click(170, 20, zoomKeyOption);","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2020-05-23] [#1241] Restore checked file types (#1256): +14 -1 lines \u0027);","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2019-12-20] [#46] Show total time after batch processing (#758): +43 -0 lines \u0027);","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027jamessspanggg\u0027 is the first result,","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" // he does not add more commits in the future,","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" // and the sort feature is working as expected.","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" it(\u0027changing the lefthand boundary\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":" .type(\u0027jamessspanggg\u0027);","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"jonasongg"},"content":" .type(\u00272023-12-31\u0027);","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027body\u0027)","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" .get(\u0027#summary-charts .summary-chart__ramp .ramp\u0027)","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"jonasongg"},"content":" .click(170, 20, zoomKeyOption)","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"jonasongg"},"content":" .click(250, 20, zoomKeyOption);","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2021-01-04] Update `About us` page (#1393): +55 -30 lines \u0027);","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2020-09-27] Add optional check for quotes in diff file regex (#1330): +1 -1 lines \u0027);","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" // Assumptions: Contributer \u0027jamessspanggg\u0027 is the first result,","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" // he does not add more commits in the future,","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":" // and the sort feature is working as expected.","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" it(\u0027changing the righthand and lefthand boundary\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" .type(\u0027jamessspanggg\u0027);","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"jonasongg"},"content":" .type(\u00272023-12-31\u0027);","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027body\u0027)","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" .get(\u0027#summary-charts .summary-chart__ramp .ramp\u0027)","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"jonasongg"},"content":" .click(170, 20, zoomKeyOption)","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"jonasongg"},"content":" .click(225, 20, zoomKeyOption);","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":" .should(","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":" \u0027eq\u0027,","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":" \u0027[2021-01-04] Update `About us` page (#1393): +55 -30 lines \u0027,","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":" );","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2020-09-27] Add optional check for quotes in diff file regex (#1330): +1 -1 lines \u0027);","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":335,"jonasongg":31}},{"path":"frontend/cypress/tests/codeView/codeView.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027code view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027at first start shows tutorial message\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" cy.get(\u0027#tabs-wrapper\u0027)","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-empty \u003e .title\u0027).then(($ele) \u003d\u003e {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" const expected \u003d \u0027Welcome to this RepoSense report!\u0027","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" + \u0027The charts on the left show the contribution activities, grouped by repository and author.\u0027","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" + \"To view the code attributed to a specific author, click the    icon next to that author\u0027s name.\"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" + \"To view the breakdown of commits made by a specific author, click the    icon next to that author\u0027s name.\"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" + \u0027To hide the code view and show only the activity charts, click the    icon on the centre divider.\u0027","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" + \u0027See the  User Guide  to get a better understanding of how to interpret the report.\u0027;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" const message \u003d $ele.text();","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" expect(expected).to.equal(message);","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" it(\u0027can be closed\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" cy.get(\u0027#tabs-wrapper\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" cy.get(\u0027#app #tab-resize .tab-close\u0027)","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" cy.get(\u0027#tabs-wrapper\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .should(\u0027not.exist\u0027);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" it(\u0027merge group and view code for entire repository\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" .check({ force: true })","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":43,"jonasongg":1}},{"path":"frontend/cypress/tests/codeView/codeView_checkFileTypes.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027check file types\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027check if all files types are visible by default\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" it(\u0027uncheck all files types should show no files\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" it(\u0027uncheck file type should uncheck all option and not show legend\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" cy.get(\u0027.file \u003e .title \u003e .fileTypeLabel\u0027)","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" .should(\u0027not.contain.text\u0027, \u0027java\u0027);","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" cy.get(\u0027.file \u003e .title \u003e .fileTypeLabel\u0027)","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" .should(\u0027contain.text\u0027, \u0027gradle\u0027);","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":54,"jonasongg":3}},{"path":"frontend/cypress/tests/codeView/codeView_codeHighlighting.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"sopa301"},"content":"// Assumes: RepoSense repo from 03/05/2018 to current date","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"sopa301"},"content":"describe(\u0027code highlighting works properly\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"sopa301"},"content":" it(\u0027line numbers should all have the same colour\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"sopa301"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"sopa301"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"sopa301"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"sopa301"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.line-number\u0027) // this is just a wrapper","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"sopa301"},"content":" .first()","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"sopa301"},"content":" .children()","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"sopa301"},"content":" // The actual line number element. We can\u0027t name the class","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"sopa301"},"content":" // because it\u0027s generated by the code highlighter.","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"sopa301"},"content":" .first()","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"sopa301"},"content":" .should(\u0027have.css\u0027, \u0027color\u0027)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"sopa301"},"content":" .then((firstColor) \u003d\u003e {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.line-number\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"sopa301"},"content":" .each((el) \u003d\u003e cy.wrap(el)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"sopa301"},"content":" .children()","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"sopa301"},"content":" .first()","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"sopa301"},"content":" .should(\u0027have.css\u0027, \u0027color\u0027, firstColor));","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"sopa301"},"content":" });","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"sopa301"},"content":" });","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"sopa301"},"content":" it(\u0027should highlight code when there is a single author\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"sopa301"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"sopa301"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"sopa301"},"content":" .first()","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"sopa301"},"content":" .click();","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"sopa301"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.hljs-comment\u0027).contains(\u0027* Represents a Git Author.\u0027)","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"sopa301"},"content":" .parent() // .line-content","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"sopa301"},"content":" .parent() // .code","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .should(\u0027have.css\u0027, \u0027background-color\u0027, \u0027rgb(191, 246, 207)\u0027); // #BFF6CF","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"sopa301"},"content":" });","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"sopa301"},"content":" it(\u0027should highlight code when multiple authors are merged in a repo group\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"sopa301"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"sopa301"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"sopa301"},"content":" .check()","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"sopa301"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"sopa301"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"sopa301"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"sopa301"},"content":" .first()","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"sopa301"},"content":" .click();","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"sopa301"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.hljs-comment\u0027).contains(\u0027* MUI Colors module\u0027) // eugenepeh","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"sopa301"},"content":" .parent() // .line-content","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"sopa301"},"content":" .parent() // .code","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" .should(\u0027have.css\u0027, \u0027background-color\u0027, \u0027rgba(30, 144, 255, 0.314)\u0027) // #1e90ff, transparencyValue 50","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"sopa301"},"content":" .then((firstAuthorColor) \u003d\u003e {","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"sopa301"},"content":" // eslint-disable-next-line quotes","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.line-content\u0027).contains(\"\u0027red\u0027: (\") // jamessspanggg","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"sopa301"},"content":" .parent() // .code","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" // #f08080, transparencyValue 50","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" .should(\u0027have.css\u0027, \u0027background-color\u0027, \u0027rgba(240, 128, 128, 0.314)\u0027)","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"sopa301"},"content":" .and(\u0027not.eq\u0027, firstAuthorColor);","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"sopa301"},"content":" });","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"sopa301"},"content":" });","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"sopa301"},"content":" it(\u0027should not highlight non-attributed lines\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"sopa301"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"sopa301"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"sopa301"},"content":" .first()","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"sopa301"},"content":" .click();","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"sopa301"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027.hljs-title\u0027).contains(\u0027Author\u0027)","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"sopa301"},"content":" .parent() // .hljs-class","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"sopa301"},"content":" .parent() // .line-content","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"sopa301"},"content":" .parent() // .code","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"sopa301"},"content":" .should(\u0027have.css\u0027, \u0027background-color\u0027, \u0027rgb(255, 255, 255)\u0027); // #ffffff","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"sopa301"},"content":" });","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"sopa301"},"content":"});","isFullCredit":false}],"authorContributionMap":{"sopa301":88,"-":4}},{"path":"frontend/cypress/tests/codeView/codeView_filterGlob.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027filter glob\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027check filter glob radio button is clickable\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" // click on filter glob radio button","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" // filter by file type should be unchecked","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--checkbox\u0027)","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" it(\u0027check no filter glob input should show all file types by default\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" // the contents of all the files should be visible","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" it(\u0027check filter glob input should be in focus after click\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" // click on input box","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" .click()","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" .should(\u0027have.focus\u0027);","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" it(\u0027check filter glob input should have default empty value\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027\u0027);","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" it(\u0027check deleting previously searched input to filter empty input by enter should show all file types\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" // enter some input","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" .type(\u0027an input\u0027);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" // submit some input","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" // delete previous input","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" .clear();","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" // enter on empty input","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" it(\u0027check deleting previously searched input to filter empty input by clicking should show all file types\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" .type(\u0027an input\u0027);","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" cy.get(\u0027#submit-button\u0027)","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" .clear();","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" // click \u0027Filter\u0027 on empty input","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" cy.get(\u0027#submit-button\u0027)","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" it(\u0027check request to filter invalid glob by enter should not show any files\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" .type(\u0027invalid glob\u0027);","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" // no file should be shown","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027)","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" it(\u0027check request to filter invalid glob by clicking should not show any files\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" .type(\u0027invalid glob\u0027);","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" cy.get(\u0027#submit-button\u0027)","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027)","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" it(\u0027check filter glob should only show files with that extension\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" // try java","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" .type(\u0027*java\u0027);","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" cy.get(\u0027#submit-button\u0027)","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027).then(($files) \u003d\u003e {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" // check if there is any file with .java extension","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" if ($files.hasClass(\u0027path\u0027)) {","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" // check each file for .java extension","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" cy.get(\u0027.title \u003e .path \u003e span\u0027)","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" .then(($spans) \u003d\u003e {","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" $spans.toArray().forEach((span) \u003d\u003e {","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" cy.wrap(span).contains(\u0027.java\u0027);","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":189,"jonasongg":9}},{"path":"frontend/cypress/tests/codeView/codeView_hideFileDetails.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027hide all file details\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027check hide all file details hides the content of all the files\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" // the contents of all the files should be visible","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" // hide the details of all the files","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" // the contents of all the files should be hidden","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" it(\u0027check details of one file are shown, rest are hidden\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" // should show \u0027show all file details\u0027 only","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .toolbar--multiline a\u0027)","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" .should(\u0027not.contain.text\u0027, \u0027hide all file details\u0027)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" .should(\u0027contain.text\u0027, \u0027show all file details\u0027);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" // open contents of the first file","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .title .caret\u0027)","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" // should show both \u0027show/hide all file details\u0027","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .toolbar--multiline a\u0027)","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" .should(\u0027contain.text\u0027, \u0027hide all file details\u0027)","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" .should(\u0027contain.text\u0027, \u0027show all file details\u0027);","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" // contents of the first file should be visible","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" // contents of the last file should be hidden","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" it(\u0027check file can be hidden after scrolling\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" // contents of the first file should be visible","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" // scroll some lines in the contents of the second file","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" .scrollIntoView({ offset: { top: 500, left: 0 } });","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" // title of the second file should still be visible","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file .title \u0027)","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" // close contents of the second file","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .title .caret\u0027)","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" // contents of the second file should not be visible","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" // title of the second file should still be visible","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file .title \u0027)","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" // scroll some lines up from the top of the second file","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" .scrollIntoView({ offset: { top: -500, left: 0 } });","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" // title of the first file should be visible","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file .title \u0027)","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" it(\u0027check show all file details shows the content of all the files\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" // hide the content of all the files","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" // show the content of all the files","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" it(\u0027check collapsed file persists after sort\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" // hide contents of the first file","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .title .caret\u0027)","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .file-content \u0027)","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .title .path\u0027)","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" .invoke(\u0027text\u0027)","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" // keep track of first file by file path so test doesn\u0027t rely on correctness of sort","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" .then((filePath) \u003d\u003e {","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" // change sort by","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-by \u003e select\u0027)","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" .select(\u0027Path\u0027)","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027path\u0027);","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" // wait until loading is finished","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" cy.get(\u0027[aria-label\u003d\"Loading\"]\u0027)","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" // contents of file should still be hidden","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" cy.contains(\u0027#tab-authorship .file\u0027, filePath.trim())","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" .children(\u0027.file-content\u0027)","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" // change sort order","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-order \u003e select\u0027)","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" .select(\u0027Ascending\u0027)","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027false\u0027);","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" // wait until loading is finished","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" cy.get(\u0027[aria-label\u003d\"Loading\"]\u0027)","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" // contents of file should still be hidden","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" cy.contains(\u0027#tab-authorship .file\u0027, filePath.trim())","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" .children(\u0027.file-content\u0027)","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":201,"jonasongg":5}},{"path":"frontend/cypress/tests/codeView/codeView_mergeGroupBlame.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027merge group blame in code view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027no author breakdown shown by default\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" // code panel should be visible","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" // author breakdown should not be visible","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .file .title .author-breakdown\u0027)","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" .should(\u0027not.exist\u0027);","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" it(\u0027merge group for group by repos shows author breakdown for each file\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" // group summary charts by repos","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" // check merge group checkbox","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" // code panel should be visible","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" // author breakdown should exist","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .file .title .author-breakdown\u0027)","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .should(\u0027exist\u0027);","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" it(\u0027author breakdown visible when file content hidden\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" // group summary charts by repos","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" // check merge group checkbox","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" // hide content of all files","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" // author breakdown should be visible","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .file .title .author-breakdown\u0027)","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" it(\u0027author breakdown contains only file authors in alphabetical order\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" // group summary charts by repos","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" // check merge group checkbox","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" // author breakdown contains expected author count and order","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" const expectedResult \u003d [\u0027eugenepeh\u0027, \u0027jamessspanggg\u0027, \u0027yamidark\u0027, \u0027yong24s\u0027];","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .file .title .author-breakdown\u0027)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .eq(2)","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .children(\u0027.author-breakdown__legend\u0027)","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, expectedResult.length)","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" .each(($el, index) \u003d\u003e {","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" cy.wrap($el).should(\u0027contain\u0027, expectedResult[index]);","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" it(\u0027authors are assigned the same color in all files\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" // group summary charts by repos","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" // check merge group checkbox","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" // check first and second occurence of same author has the same color","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .author-breakdown__legend:contains(\\\u0027jamessspanggg\\\u0027)\u0027)","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e {","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" const color \u003d $el.children().first().css(\u0027color\u0027);","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .author-breakdown__legend:contains(\\\u0027jamessspanggg\\\u0027)\u0027)","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" .eq(1).children().first()","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" .should(\u0027have.css\u0027, \u0027color\u0027, color);","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" it(\u0027author name shown on segment hover for known authors\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" // group summary charts by repos","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" // check merge group checkbox","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" // author name in html title attribute should be shown","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .segment.active\u0027)","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" .not(\u0027.untouched\u0027)","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027eugenepeh\u0027);","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" it(\u0027author name shown as unknown for missing authors\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" // group summary charts by repos","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" // check merge group checkbox","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" // author name in html title attribute should be unknown","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .segment.untouched\u0027)","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027Unknown\u0027);","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" it(\u0027code segment has same color as author legend\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" // group summary charts by repos","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" // check merge group checkbox","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" // segment color should be the same as author legend color","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .segment.active\u0027)","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" .not(\u0027.untouched\u0027)","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e {","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" const color \u003d $el.css(\u0027border-left-color\u0027);","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" const author \u003d \u0027eugenepeh\u0027;","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .file .title .author-breakdown\u0027)","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" .eq(2)","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" .children(\u0027.author-breakdown__legend\u0027)","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" .contains(author)","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" .prev()","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" .should(\u0027have.css\u0027, \u0027color\u0027, color);","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" it(\u0027colors in author breakdown match assigned colors\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" // group summary charts by repos","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" .select(\u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" // check merge group checkbox","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input\u0027)","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" // author breakdown contains assigned colors","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" const expectedResult \u003d [\u0027rgb(30, 144, 255)\u0027, \u0027rgb(240, 128, 128)\u0027, \u0027rgb(0, 255, 127)\u0027, \u0027rgb(255, 215, 0)\u0027];","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship .files .file .title .author-breakdown\u0027)","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" .eq(2)","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" .children(\u0027.author-breakdown__legend\u0027)","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" .each(($el, index) \u003d\u003e {","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" cy.wrap($el).children().first().should(\u0027have.css\u0027, \u0027color\u0027, expectedResult[index]);","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":226,"jonasongg":9}},{"path":"frontend/cypress/tests/codeView/codeView_reload.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027reload page\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027reload page should restore all controls\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" // change sort by","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-by \u003e select\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" .select(\u0027LoC\u0027);","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" // change sort order","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-order \u003e select\u0027)","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" .select(\u0027Descending\u0027);","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" // select radio-button","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes \u003e .radio-button--checkbox\u0027)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-by \u003e select\u0027)","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027linesOfCode\u0027);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-order \u003e select\u0027)","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027true\u0027);","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes \u003e .radio-button--checkbox\u0027)","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":52,"jonasongg":1}},{"path":"frontend/cypress/tests/codeView/codeView_renderFilterHash.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027render filter hash\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027search: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" /* Check initial state */","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027\u0027);","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" /* Enter search and test URL before and after reload */","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-textfield.search_box \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" .type(\u0027eugene{enter}\u0027);","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027search\u003deugene\u0027);","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027search\u003deugene\u0027);","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" it(\u0027group by: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" /* Check initial state */","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027groupByRepos\u0027);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027groupSelect\u003dgroupByRepos\u0027);","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" /* Select group by none and test URL before and after reload */","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" .select(\u0027groupByNone\u0027);","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027groupSelect\u003dgroupByNone\u0027);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027groupSelect\u003dgroupByNone\u0027);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" /* Select group by authors and test URL before and after reload */","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.grouping \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" .select(\u0027groupByAuthors\u0027);","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027groupSelect\u003dgroupByAuthors\u0027);","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027groupSelect\u003dgroupByAuthors\u0027);","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" it(\u0027sort groups by: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" /* Check initial state */","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027groupTitle dsc\u0027);","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dgroupTitle%20dsc\u0027);","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" /* Select sort by group title ascending and test URL before and after reload */","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" .select(\u0027groupTitle\u0027);","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dgroupTitle\u0027);","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dgroupTitle\u0027);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" /* Select sort by contribution descending and test URL before and after reload */","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .select(\u0027totalCommits dsc\u0027);","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dtotalCommits%20dsc\u0027);","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dtotalCommits%20dsc\u0027);","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" /* Select sort by contribution ascending and test URL before and after reload */","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .select(\u0027totalCommits\u0027);","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dtotalCommits\u0027);","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dtotalCommits\u0027);","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" /* Select sort by variance descending and test URL before and after reload */","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" .select(\u0027variance dsc\u0027);","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dvariance%20dsc\u0027);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dvariance%20dsc\u0027);","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" /* Select sort by variance ascending and test URL before and after reload */","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" .select(\u0027variance\u0027);","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dvariance\u0027);","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sort\u003dvariance\u0027);","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" it(\u0027sort within groups by: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" /* Check initial state */","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-within-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027title\u0027);","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dtitle\u0027);","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" /* Select sort by group title ascending and test URL before and after reload */","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-within-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" .select(\u0027title dsc\u0027);","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dtitle\u0027);","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dtitle\u0027);","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" /* Select sort by contribution descending and test URL before and after reload */","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-within-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" .select(\u0027totalCommits dsc\u0027);","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dtotalCommits%20dsc\u0027);","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dtotalCommits%20dsc\u0027);","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" /* Select sort by contribution ascending and test URL before and after reload */","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-within-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" .select(\u0027totalCommits\u0027);","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dtotalCommits\u0027);","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dtotalCommits\u0027);","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" /* Select sort by variance descending and test URL before and after reload */","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-within-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" .select(\u0027variance dsc\u0027);","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dvariance%20dsc\u0027);","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dvariance%20dsc\u0027);","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" /* Select sort by variance ascending and test URL before and after reload */","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.sort-within-group \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" .select(\u0027variance\u0027);","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dvariance\u0027);","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027sortWithin\u003dvariance\u0027);","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" it(\u0027granularity: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" /* Check initial state */","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.granularity \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027commit\u0027);","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027timeframe\u003dcommit\u0027);","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" /* Select timeframe as day and test URL before and after reload */","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.granularity \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" .select(\u0027day\u0027);","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027timeframe\u003dday\u0027);","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027timeframe\u003dday\u0027);","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" /* Select timeframe as week and test URL before and after reload */","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" cy.get(\u0027div.mui-select.granularity \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" .select(\u0027week\u0027);","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027timeframe\u003dweek\u0027);","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027timeframe\u003dweek\u0027);","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" it(\u0027since: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" /* Check initial state */","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u00272018-05-03\u0027);","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027since\u003d2018-05-03\u0027);","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" /* Modify since date and test URL before and after reload */","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" .type(\u00272019-06-04\u0027);","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027since\u003d2019-06-04\u0027);","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027since\u003d2019-06-04\u0027);","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" it(\u0027until: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" /* Check initial state (will require dayjs for getting current date) */","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" // cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" // .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" // .should(\u0027eq\u0027, dayjs().format(\u0027YYYY-MM-DD\u0027));","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" // cy.url()","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" // .should(\u0027contain\u0027, \u0027date\u003d2023-07-06\u0027);","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" /* Modify since date and test URL before and after reload */","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" .type(\u00272019-06-04\u0027);","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027until\u003d2019-06-04\u0027);","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027until\u003d2019-06-04\u0027);","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" it(\u0027breakdown by file type: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.filter-breakdown input:visible\u0027)","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027breakdown\u003dfalse\u0027);","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.filter-breakdown input:visible\u0027)","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":" .check();","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027breakdown\u003dtrue\u0027);","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" it(\u0027merge all groups: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.merge-group \u003e input:visible\u0027)","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" .check();","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027mergegroup\u003dreposense%2FRepoSense%5Bcypress%5D\u0027);","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027mergegroup\u003dreposense%2FRepoSense%5Bcypress%5D\u0027);","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"jonasongg"},"content":" it(\u0027show tags: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.show-tags input:visible\u0027)","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"jonasongg"},"content":" .check();","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027viewRepoTags\u003dtrue\u0027);","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027viewRepoTags\u003dtrue\u0027);","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"jonasongg"},"content":" it(\u0027optimise timeline: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary label.optimise-timeline input:visible\u0027)","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"jonasongg"},"content":" .check();","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027optimiseTimeline\u003dtrue\u0027);","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027optimiseTimeline\u003dtrue\u0027);","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" it(\u0027checked file types: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.filter-breakdown input:visible\u0027)","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"jonasongg"},"content":" // Assumption: gradle is the first file type and yml is the last file type to appear in the list","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" .should(\u0027not.contain\u0027, \u0027gradle\u0027);","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.contain\u0027, \u0027yml\u0027);","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary label.filter-breakdown input:visible\u0027)","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary div.fileTypes input[id\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary div.fileTypes input[id\u003d\"yml\"]\u0027)","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027gradle\u0027);","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027yml\u0027);","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary div.fileTypes input[id\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary div.fileTypes input[id\u003d\"yml\"]\u0027)","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" .should(\u0027contain\u0027, \u0027gradle\u0027);","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027yml\u0027);","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary div.fileTypes input[id\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":" .should(\u0027not.contain\u0027, \u0027gradle\u0027);","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027yml\u0027);","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary div.fileTypes input[id\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#summary div.fileTypes input[id\u003d\"yml\"]\u0027)","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"-"},"content":" .should(\u0027not.contain\u0027, \u0027gradle\u0027);","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027yml\u0027);","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"jonasongg"},"content":" it(\u0027code panel: sort by: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"jonasongg"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.sort-by \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"jonasongg"},"content":" .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"jonasongg"},"content":" .should(\u0027eq\u0027, \u0027linesOfCode\u0027);","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.contain\u0027, \u0027authorshipSortBy\u0027);","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"jonasongg"},"content":" /* Select file name and test URL before and after reload */","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.sort-by \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"jonasongg"},"content":" .select(\u0027fileName\u0027);","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027authorshipSortBy\u003dfileName\u0027);","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.contain\u0027, \u0027%23%2F\u0027);","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027authorshipSortBy\u003dfileName\u0027);","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"jonasongg"},"content":" /* Select file type and test URL before and after reload */","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.sort-by \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"jonasongg"},"content":" .select(\u0027fileType\u0027);","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027authorshipSortBy\u003dfileType\u0027);","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.contain\u0027, \u0027%23%2F\u0027);","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027authorshipSortBy\u003dfileType\u0027);","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"jonasongg"},"content":" it(\u0027code panel: order: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"jonasongg"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.sort-order \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"jonasongg"},"content":" .invoke(\u0027val\u0027)","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"jonasongg"},"content":" .should(\u0027eq\u0027, \u0027true\u0027); // true is Descending","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.contain\u0027, \u0027reverseAuthorshipOrder\u0027);","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"jonasongg"},"content":" /* Select ascending and test URL before and after reload */","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.sort-order \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"jonasongg"},"content":" .select(\u0027false\u0027);","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027reverseAuthorshipOrder\u003dfalse\u0027);","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.contain\u0027, \u0027%23%2F\u0027);","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027reverseAuthorshipOrder\u003dfalse\u0027);","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"jonasongg"},"content":" /* Select descending and test URL before and after reload */","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027div.mui-select.sort-order \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"jonasongg"},"content":" .select(\u0027true\u0027);","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027reverseAuthorshipOrder\u003dtrue\u0027);","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.contain\u0027, \u0027%23%2F\u0027);","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027reverseAuthorshipOrder\u003dtrue\u0027);","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"jonasongg"},"content":" });","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"jonasongg"},"content":" it(\u0027code panel: filter by glob: url params should persist after change and reload\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"jonasongg"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"jonasongg"},"content":" .first()","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"jonasongg"},"content":" // click on filter glob radio button","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027.radio-button--search\u0027)","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"jonasongg"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"jonasongg"},"content":" .click();","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"jonasongg"},"content":" // enter some input","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":504,"author":{"gitId":"jonasongg"},"content":" .type(\u0027README.md\u0027);","isFullCredit":false},{"lineNumber":505,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":506,"author":{"gitId":"jonasongg"},"content":" // submit","isFullCredit":false},{"lineNumber":507,"author":{"gitId":"jonasongg"},"content":" cy.get(\u0027#search\u0027)","isFullCredit":false},{"lineNumber":508,"author":{"gitId":"jonasongg"},"content":" .type(\u0027{enter}\u0027);","isFullCredit":false},{"lineNumber":509,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":510,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":511,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027authorshipFilesGlob\u003dREADME.md\u0027);","isFullCredit":false},{"lineNumber":512,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":513,"author":{"gitId":"jonasongg"},"content":" // Some bugs appear after two reloads, so reload twice here","isFullCredit":false},{"lineNumber":514,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":515,"author":{"gitId":"jonasongg"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":516,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":517,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":518,"author":{"gitId":"jonasongg"},"content":" .should(\u0027not.contain\u0027, \u0027%23%2F\u0027);","isFullCredit":false},{"lineNumber":519,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":520,"author":{"gitId":"jonasongg"},"content":" cy.url()","isFullCredit":false},{"lineNumber":521,"author":{"gitId":"jonasongg"},"content":" .should(\u0027contain\u0027, \u0027authorshipFilesGlob\u003dREADME.md\u0027);","isFullCredit":false},{"lineNumber":522,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":523,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":339,"jonasongg":184}},{"path":"frontend/cypress/tests/codeView/codeView_switchAuthorship.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027switch authorship\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027switch authorship view should restore all default controls\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the code panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" // change sort by","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-by \u003e select\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" .select(\u0027Path\u0027)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027path\u0027);","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" // change sort order","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-order \u003e select\u0027)","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" .select(\u0027Ascending\u0027)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027false\u0027);","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" // uncheck a file type","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" // switch authorship view","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-code\u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"jonasongg"},"content":" .eq(4)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" // check default controls","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-by \u003e select\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" .should(\u0027not.have.value\u0027, \u0027path\u0027)","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027linesOfCode\u0027);","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .sorting \u003e .sort-order \u003e select\u0027)","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027true\u0027);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes \u003e .radio-button--checkbox\u0027)","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .title \u003e .contribution \u003e .fileTypes input[id\u003d\"yml\"]\u0027)","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" it(\u0027switch authorship view should not retain information from previous visited tabs\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" // Assumptions:","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" // The first repository has more than one person listed.","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" // The first displayed file which the first and last person worked on is different.","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" const betweenBracketsRegex \u003d /\\((.*)\\)/;","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" let firstAuthor;","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" let firstFilename;","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" let lastAuthor;","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" // open the first code panel","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-charts \u003e .summary-charts\u0027)","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" .find(\u0027.fa-code\u0027)","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .panel-heading \u003e .author \u003e span\u0027)","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" .then(($span) \u003d\u003e {","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" firstAuthor \u003d $span.text().match(betweenBracketsRegex).pop();","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" .should(\u0027include\u0027, firstAuthor);","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .files \u003e .file \u003e .title \u003e .path\u0027)","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" .then(($span) \u003d\u003e {","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" firstFilename \u003d $span.text();","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" // switch authorship view","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-charts \u003e .summary-charts\u0027)","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" .find(\u0027.fa-code\u0027)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .panel-heading \u003e .author \u003e span\u0027)","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" .should(($span) \u003d\u003e {","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" lastAuthor \u003d $span.text().match(betweenBracketsRegex).pop();","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" expect(firstAuthor, \u0027First author to have different name from the last author\u0027)","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" .to.not.equal(lastAuthor);","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" })","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" .then(() \u003d\u003e {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" .should(\u0027not.include\u0027, firstAuthor)","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" .should(\u0027include\u0027, lastAuthor);","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-authorship \u003e .files \u003e .file \u003e .title \u003e .path\u0027)","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" .should(($span) \u003d\u003e {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" const lastFilename \u003d $span.text();","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" expect(firstFilename, \u0027First displayed filenames should be different for different authors\u0027)","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" .to.not.equal(lastFilename);","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":111,"jonasongg":4}},{"path":"frontend/cypress/tests/general/general.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027general\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027correctly replaces report title\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" cy.title().should(\u0027eq\u0027, \u0027RepoSense Test Report\u0027);","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"sopa301"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"sopa301"},"content":" it(\u0027correctly contains given title\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"sopa301"},"content":" cy.get(\u0027h1\u0027).should(\u0027contain\u0027, \u0027RepoSense Intro\u0027);","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"sopa301"},"content":" });","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"sopa301":4,"-":5}},{"path":"frontend/cypress/tests/zoomView/zoomView_diffstat.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027diffstat\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027should render container for contribution bars\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .stacked-bar-container\u0027)","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" // Assumptions: The commit selected here is @eugenepeh\u0027s","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" // `README: Fix grammatical error` with 1 insertion and 1 deletion.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" it(\u0027should render non-empty contribution bars for commits with changes\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .within(() \u003d\u003e {","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" cy.get(\u0027.stacked-bar__contrib--bar\u0027)","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" .then((element) \u003d\u003e {","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" expect(element.length).to.be.equal(2);","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" expect(element[0].style[\u0027background-color\u0027]).to.be.equal(\u0027limegreen\u0027);","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" expect(element[0].style.width).to.be.equal(\u00270.1%\u0027);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" expect(element[1].style[\u0027background-color\u0027]).to.be.equal(\u0027red\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" expect(element[1].style.width).to.be.equal(\u00270.1%\u0027);","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" // Assumptions: The commit selected here is @eugenepeh\u0027s","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" // `Merge branch \u0027new-branch` into cypress` with 0 insertions and 0 deletions.","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" it(\u0027should render empty contribution bars for commits with no changes\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027)","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" .within(() \u003d\u003e {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" cy.get(\u0027.stacked-bar__contrib--bar\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" .then((element) \u003d\u003e {","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" expect(element.length).to.be.equal(2);","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" expect(element[0].style[\u0027background-color\u0027]).to.be.equal(\u0027limegreen\u0027);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" expect(element[0].style.width).to.be.equal(\u00270%\u0027);","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" expect(element[1].style[\u0027background-color\u0027]).to.be.equal(\u0027red\u0027);","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" expect(element[1].style.width).to.be.equal(\u00270%\u0027);","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" it(\u0027should render contribution bars in proportion\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" let insertionWidthSum \u003d 0;","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" let deletionWidthSum \u003d 0;","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" let widthProportion \u003d 0;","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .stacked-bar__contrib--bar\u0027)","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" .then((element) \u003d\u003e {","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" for (let i \u003d 0; i \u003c element.length; i +\u003d 1) {","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" const val \u003d parseFloat(element[i].style.width.split(\u0027%\u0027)[0]);","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" if (element[i].style[\u0027background-color\u0027] \u003d\u003d\u003d \u0027limegreen\u0027) {","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" insertionWidthSum +\u003d val;","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" deletionWidthSum +\u003d val;","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" widthProportion \u003d insertionWidthSum / deletionWidthSum;","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" let insertions \u003d 0;","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" let deletions \u003d 0;","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" let actualProportion \u003d 0;","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" cy.get(\u0027[data-cy\u003d\"changes\"]\u0027)","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" .invoke(\u0027text\u0027)","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" .then((text) \u003d\u003e {","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" const temp \u003d text.split(\u0027lines\u0027);","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" for (let i \u003d 0; i \u003c temp.length - 1; i +\u003d 1) {","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" insertions +\u003d parseFloat(temp[i].split(\u0027-\u0027)[0].split(\u0027+\u0027)[1].trim());","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" deletions +\u003d parseFloat(temp[i].split(\u0027-\u0027)[1].trim());","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" actualProportion \u003d insertions / deletions;","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" expect(widthProportion.toFixed(3)).to.be.equal(actualProportion.toFixed(3));","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":89,"jonasongg":4}},{"path":"frontend/cypress/tests/zoomView/zoomView_hideCommitMessages.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027hide all commit messages \u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027check hide all commit messages hides the commit messages\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" // the messages of all the commits should be visible","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .body\u0027)","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" // hides all the commit messages","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" // the messages of all the commits should be hidden","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .body\u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" it(\u0027check show all commit messages show the commit messages\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" // hides all the commit messages","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" // the messages of all the commits should be hidden","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .body\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" // show the messages of all the commits","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .body\u0027)","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" it(\u0027should only display hide all commit messages when none are hidden\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" // should only display \u0027hide all commit messages\u0027","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" .children()","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, 1);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline \u003e a\u0027)","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u0027hide all commit details\u0027);","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" it(\u0027should only display show all commit messages when all are hidden\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" // hides all the commit messages","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline \u003e a\u0027)","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" // should only display \u0027show all commit messages\u0027","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .children()","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, 1);","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline \u003e a\u0027)","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u0027show all commit details\u0027);","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" it(\u0027should display both show and hide all commit messages when some are hidden\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" // hide the message body of the first commit","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message \u003e a .tooltip\u0027)","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" // should now display both \u0027hide all \u0026 show all commit messages\u0027","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" .children()","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, 2);","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline \u003e a\u0027)","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" .eq(0)","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u0027show all commit details\u0027);","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline \u003e a\u0027)","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u0027hide all commit details\u0027);","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" it(\u0027check show all and hide all commit messages only toggle current commits\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" // Assumptions: the fifth commit (19e3294) of the first author of the first repo","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" // contains changes in only .java files.","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" // uncheck java file type","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" // hides all the commit messages","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" // should only display \u0027show all commit messages\u0027","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" .children()","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, 1);","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline \u003e a\u0027)","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u0027show all commit details\u0027);","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" // check java file type","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" .check()","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" // commit body of the merge commit should be visible","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .body\u0027)","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" .eq(0)","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" // commit body of the md commit should not be visible","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .body\u0027)","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" // commit body of the java commit should be visible","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .body\u0027)","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" .eq(4)","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" .scrollIntoView()","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" // should now display both \u0027hide all \u0026 show all commit messages\u0027","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline\u0027)","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" .children()","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, 2);","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline \u003e a\u0027)","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" .eq(0)","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u0027show all commit details\u0027);","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .toolbar--multiline \u003e a\u0027)","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u0027hide all commit details\u0027);","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" it(\u0027check hidden commit message persists after sort\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" // hide the message body of the first commit","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message \u003e a .tooltip\u0027)","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .body\u0027)","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message .hash\u0027)","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" .invoke(\u0027text\u0027)","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" // keep track of first commit by hash so test doesn\u0027t rely on correctness of sort","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" .then((hash) \u003d\u003e {","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" // change sort by","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-by \u003e select\u0027)","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" .select(\u0027LoC\u0027)","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027linesOfCode\u0027);","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" // message body should still be hidden","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" cy.contains(\u0027#tab-zoom .commit-message\u0027, hash)","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" .children(\u0027.body\u0027)","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" // change sort order","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-order \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" .select(\u0027Ascending\u0027)","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027false\u0027);","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" // message body should still be hidden","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" cy.contains(\u0027#tab-zoom .commit-message\u0027, hash)","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" .children(\u0027.body\u0027)","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" .should(\u0027not.be.visible\u0027);","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":230,"jonasongg":7}},{"path":"frontend/cypress/tests/zoomView/zoomView_mergeCommits.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027include merge commits in zoom view\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027show merge commits when all file types selected\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the commits panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" // check if the icon for merge commits is visible","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027.code-merge-icon\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" .should(\u0027exist\u0027);","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" it(\u0027hide merge commits when some file types unselected\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" // open the commits panel","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" // uncheck the java file type","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" // check if the icon for merge commits is not visible","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" cy.get(\u0027.code-merge-icon\u0027)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .should(\u0027not.exist\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":28,"jonasongg":2}},{"path":"frontend/cypress/tests/zoomView/zoomView_rampChart.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027show ramp chart for period\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" // Assumptions: The commit messages on the zoom view are","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // correctly filtered according to the selected period.","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" it(\u0027show ramp chart for all commits by default\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" // ramp chart should be visible","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .ramp\u0027)","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" // ramp chart should have the same number of slices as commits","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" .its(\u0027length\u0027).then(($length) \u003d\u003e {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, $length);","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" // Assumptions: The commit messages on the zoom view are","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" // correctly filtered according to the selected period.","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" it(\u0027show ramp chart for selected commits when date range changed\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" // change since date","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .type(\u00272018-06-10\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" // change until date","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" .type(\u00272019-06-10\u0027);","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" // ramp chart should be visible","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .ramp\u0027)","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" // ramp chart should have the same number of slices as commits","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027)","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" .its(\u0027length\u0027).then(($length) \u003d\u003e {","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, $length);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" // Assumptions: The commit messages on the zoom view are","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" // correctly filtered according to the selected period.","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" it(\u0027show ramp chart for selected commits when zooming\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" const zoomKey \u003d Cypress.platform \u003d\u003d\u003d \u0027darwin\u0027 ? \u0027{meta}\u0027 : \u0027{ctrl}\u0027;","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" // zoom into ramp on summary panel","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" cy.get(\u0027body\u0027).type(zoomKey, { release: false })","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" .get(\u0027#summary-charts .summary-chart__ramp .ramp\u0027)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" .click(10, 20)","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" .click(50, 20);","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" // commits panel should be visible","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom\u0027)","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" // ramp chart should be visible","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .ramp\u0027)","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" // ramp chart should have the same number of slices as commits","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .commit-message\u0027)","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" .its(\u0027length\u0027).then(($length) \u003d\u003e {","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" .should(\u0027have.length\u0027, $length);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" // Assumptions: The first author on the summary panel","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" // should be \u0027eugenepeh\u0027.","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" it(\u0027ramps should be between start date and end date\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" // change since date","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" .type(\u00272018-06-10\u0027);","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" // change until date","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" .type(\u00272019-06-10\u0027);","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" // first ramp should be for commit after start date","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2018-06-12] Setup AppVeyor CI (#142): +19 -0 lines \u0027);","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" // last ramp should be for commit before end date","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027title\u0027)","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027[2019-03-25] [#622] CsvParser#parse: fix error handling of `processLine` (#623): +30 -10 lines \u0027);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" // Assumptions: The first author on the summary panel","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" // should be \u0027eugenepeh\u0027.","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" it(\u0027ramp should have expected properties\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" // change until date","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" .type(\u00272019-06-10\u0027);","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" // last ramp should have expected z-index","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" .should(\u0027have.css\u0027, \u0027z-index\u0027, \u002739\u0027);","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" // last ramp should have expected width","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" .should(\u0027have.css\u0027, \u0027border-left-width\u0027, \u00277px\u0027);","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" // Assumptions: The second author on the summary panel","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" // should be \u0027jamessspanggg\u0027.","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" it(\u0027deletes commit ramp should have expected properties\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" // change since date","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"since\"]:visible\u0027)","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" .type(\u00272019-07-16\u0027);","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" // change until date","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" .type(\u00272019-07-29\u0027);","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" // deletes commit ramp should have expected color","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" cy.get(\u0027[title\u003d\"[2019-07-24] [#828] Revert \\\\\"v_summary.js: remove redundant calls \u0027","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" + \u0027to getFiltered() (#800)\\\\\" (#832): +0 -9 lines \"]\u0027)","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" .should(\u0027have.class\u0027, \u0027ramp__slice\u0027)","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" .should(\u0027have.css\u0027, \u0027border-bottom\u0027, \u002748px solid rgba(244, 67, 54, 0.7)\u0027);","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" // Assumptions: The first author on the summary panel","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" // should be \u0027eugenepeh\u0027.","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" it(\u0027merge commit ramp should have expected properties\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" // change until date","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" .type(\u00272024-03-04\u0027);","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" // merge commit ramp should have expected color","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027border-bottom\u0027))","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" .then((border1) \u003d\u003e {","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027border-bottom\u0027))","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" .then((border2) \u003d\u003e {","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" expect(border1).to.be.eq(border2);","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" // Assumptions: The first author on the summary panel","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" // should be \u0027eugenepeh\u0027.","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" it(\u0027ramps from different days should have expected relative properties\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" // change until date","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" .type(\u00272019-06-10\u0027);","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" // last 2 ramps should have expected relative z-indices","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027z-index\u0027))","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" .then(parseInt) // get 1st z-index","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" .then((index1) \u003d\u003e {","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027z-index\u0027))","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" .then(parseInt) // get 2nd z-index","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" .then((index2) \u003d\u003e {","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" expect(index1).to.be.gt(index2);","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" // last 2 ramps should have expected relative distances from the right","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027right\u0027))","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" .then(parseFloat) // get 1st distance","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" .then((distance1) \u003d\u003e {","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027right\u0027))","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" .then(parseFloat) // get 2nd distance","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" .then((distance2) \u003d\u003e {","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" expect(distance1).to.be.lt(distance2);","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" // Assumptions: The first author on the summary panel","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" // should be \u0027eugenepeh\u0027.","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" it(\u0027ramps from the same day should have expected relative properties\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" // change until date","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" .type(\u00272023-03-04\u0027);","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" // last 2 ramps should have expected relative z-indices","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027z-index\u0027))","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" .then(parseInt) // get 1st z-index","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" .then((index1) \u003d\u003e {","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027z-index\u0027))","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" .then(parseInt) // get 2nd z-index","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" .then((index2) \u003d\u003e {","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" expect(index1).to.be.eq(index2);","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" // last 2 ramps should have expected relative distances from the right","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027right\u0027))","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" .then(parseFloat) // get 1st distance","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" .then((distance1) \u003d\u003e {","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" .eq(1)","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" .then(($el) \u003d\u003e $el.css(\u0027right\u0027))","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" .then(parseFloat) // get 2nd distance","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" .then((distance2) \u003d\u003e {","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" expect(distance1).to.be.gt(distance2);","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" // Assumptions: The first author on the summary panel","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" // should be \u0027eugenepeh\u0027.","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" it(\u0027ramp should link to commit webpage\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" // change until date","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" cy.get(\u0027input[name\u003d\"until\"]:visible\u0027)","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" .type(\u00272019-06-10\u0027);","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" // last ramp should have expected link","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .ramp .ramp__slice\u0027)","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":" .invoke(\u0027attr\u0027, \u0027href\u0027)","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" .should(\u0027eq\u0027, \u0027https://github.com/reposense/RepoSense/commit/19e32944d4c67ed0b6bdc5697016536cc9e17ed9\u0027);","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":284,"jonasongg":9}},{"path":"frontend/cypress/tests/zoomView/zoomView_reload.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027reload page\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027reload page should restore all controls\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" // change sort by","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-by \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" .select(\u0027LoC\u0027);","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" // change sort order","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-order \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" .select(\u0027Ascending\u0027);","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"scss\"]\u0027)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" cy.reload();","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-by \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027linesOfCode\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-order \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027false\u0027);","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"scss\"]\u0027)","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":41,"jonasongg":1}},{"path":"frontend/cypress/tests/zoomView/zoomView_selectFileTypes.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027check file types \u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027check if all file types are visible by default\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .zoom__day\u0027, { timeout: 90000 })","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" .should(\u0027exist\u0027);","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" it(\u0027uncheck all file types should show no files\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .zoom__day\u0027)","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .should(\u0027exist\u0027);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" .uncheck();","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .zoom__day\u0027)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .should(\u0027not.exist\u0027);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" it(\u0027uncheck file type should uncheck all option\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" // Assumptions: the first author of the first repo","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" // committed .java, .js and .gradle files.","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"js\"]\u0027)","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" it(\u0027a commit should not be seen when all of its file types are unchecked\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" // Assumptions: the third commit (19e3294) of the first author of the first repo","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" // contains changes in only .java files.","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" cy.get(\u0027.zoom__day \u003e .commit-message\u0027)","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" .eq(2)","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" .within(() \u003d\u003e {","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" cy.get(\u0027.hash\u0027)","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u002719e3294\u0027);","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" cy.get(\u0027.fileTypeLabel\u0027)","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u0027java\u0027);","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" cy.get(\u0027.zoom__day \u003e .commit-message\u0027)","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" .should(\u0027not.contain.text\u0027, \u002719e3294\u0027);","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" it.only(\u0027unchecked file type label can still remain in a commit of multiple file types\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" // Assumptions: the eighth commit (5ab0322) of the first author of the first repo","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" // contains changes in both .java and .md files.","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" cy.get(\u0027.zoom__day \u003e .commit-message\u0027)","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" .eq(7)","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" .within(() \u003d\u003e {","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" cy.get(\u0027.hash\u0027)","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u00275ab0322\u0027);","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" cy.get(\u0027.fileTypeLabel\u0027)","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" .should(\u0027contain.text\u0027, \u0027java\u0027)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .should(\u0027contain.text\u0027, \u0027md\u0027);","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom .fileTypes input[value\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" cy.get(\u0027.zoom__day \u003e .commit-message\u0027)","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" // note that the same commit is now of fourth order since other commits","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" // were filtered out","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" .eq(3)","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" .within(() \u003d\u003e {","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" cy.get(\u0027.hash\u0027)","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" .should(\u0027have.text\u0027, \u00275ab0322\u0027);","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" cy.get(\u0027.fileTypeLabel\u0027)","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" .should(\u0027contain.text\u0027, \u0027java\u0027)","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" .should(\u0027contain.text\u0027, \u0027md\u0027);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":105,"jonasongg":5}},{"path":"frontend/cypress/tests/zoomView/zoomView_switchZoom.cy.js","fileType":"js","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"describe(\u0027switch zoom\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" it(\u0027switch zoom view should restore all default controls\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" // change sort by","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-by \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" .select(\u0027LoC\u0027)","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027linesOfCode\u0027);","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" // change sort order","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-order \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" .select(\u0027Ascending\u0027)","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027false\u0027);","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" // uncheck a file type","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .uncheck()","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .should(\u0027not.be.checked\u0027);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" // switch zoom view","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" cy.get(\u0027.icon-button.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"jonasongg"},"content":" .eq(4)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" cy.get(\u0027#tabs-wrapper\u0027).scrollTo(\u0027top\u0027);","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" // check default controls","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-by \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" .should(\u0027not.have.value\u0027, \u0027linesOfCode\u0027)","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027time\u0027);","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .sorting \u003e .sort-order \u003e select:visible\u0027)","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" .should(\u0027have.value\u0027, \u0027true\u0027);","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"all\"]\u0027)","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"gradle\"]\u0027)","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"java\"]\u0027)","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"md\"]\u0027)","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .fileTypes input[value\u003d\"yml\"]\u0027)","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" .should(\u0027be.checked\u0027);","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" it(\u0027switch zoom view should not retain information from previous visited tabs\u0027, () \u003d\u003e {","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" // Assumptions:","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" // The first repository has more than one person listed.","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" // The first day in which the first and last person contributed is different.","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" const betweenBracketsRegex \u003d /\\((.*)\\)/;","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" let firstAuthor;","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" let firstDay;","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" let lastAuthor;","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" // open the commit panel","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-charts \u003e .summary-charts\u0027)","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"jonasongg"},"content":" .should(\u0027exist\u0027)","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" .find(\u0027.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .panel-heading \u003e .author \u003e span\u0027)","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" .then(($span) \u003d\u003e {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" firstAuthor \u003d $span.text().match(betweenBracketsRegex).pop();","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" .should(\u0027include\u0027, firstAuthor);","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .zoom__day \u003e h3\u0027)","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" .then(($h3) \u003d\u003e {","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" firstDay \u003d $h3.text();","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" // switch zoom view","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" cy.get(\u0027#summary-charts \u003e .summary-charts\u0027)","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" .should(\u0027be.visible\u0027)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .find(\u0027.fa-list-ul\u0027)","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" .click();","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .panel-heading \u003e .author \u003e span\u0027)","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" .last()","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" .should(($span) \u003d\u003e {","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" lastAuthor \u003d $span.text().match(betweenBracketsRegex).pop();","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" expect(firstAuthor, \u0027First author to have different name from the last author\u0027)","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" .to.not.equal(lastAuthor);","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" })","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" .then(() \u003d\u003e {","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" cy.url()","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" .should(\u0027not.include\u0027, firstAuthor)","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" .should(\u0027include\u0027, lastAuthor);","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" cy.get(\u0027#tab-zoom \u003e .zoom__day \u003e h3\u0027)","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" .first()","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" .should(($h3) \u003d\u003e {","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" const lastDay \u003d $h3.text();","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" expect(firstDay, \u0027First displayed date should be different for different authors by assumptions\u0027)","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" .to.not.equal(lastDay);","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":"});","isFullCredit":false}],"authorContributionMap":{"-":113,"jonasongg":4}},{"path":"frontend/package-lock.json","fileType":"json","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" \"name\": \"reposense\",","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"sopa301"},"content":" \"lockfileVersion\": 3,","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" \"requires\": true,","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" \"packages\": {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" \"\": {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" \"name\": \"reposense\",","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"sopa301"},"content":" \"@fontsource/titillium-web\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/fontawesome-svg-core\": \"^6.5.1\",","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/free-brands-svg-icons\": \"^6.5.1\",","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/free-solid-svg-icons\": \"^6.5.1\",","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/vue-fontawesome\": \"^3.0.6\",","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"sopa301"},"content":" \"@types/markdown-it\": \"^13.0.7\",","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" \"@types/minimatch\": \"^5.1.2\",","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"sopa301"},"content":" \"@types/seedrandom\": \"^3.0.8\",","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" \"core-js\": \"^3.36.1\",","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" \"highlight.js\": \"^10.5.0\",","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" \"jszip\": \"^3.5.0\",","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"sopa301"},"content":" \"markdown-it\": \"^14.1.0\",","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"sopa301"},"content":" \"minimatch\": \"^9.0.0\",","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" \"muicss\": \"^0.10.3\",","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" \"normalize.css\": \"^8.0.1\",","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.4.38\",","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" \"pug-lint-vue\": \"^0.4.0\",","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" \"seedrandom\": \"^3.0.5\",","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"sopa301"},"content":" \"vue\": \"~3.4.0\",","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" \"vue-loader\": \"^17.4.2\",","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"sopa301"},"content":" \"vue-loading-overlay\": \"^6.0.4\",","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" \"vue-observe-visibility\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"sopa301"},"content":" \"vue-router\": \"^4.3.0\",","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" \"vuex\": \"^4.0.2\",","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"sopa301"},"content":" \"zod\": \"^3.22.4\"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" \"devDependencies\": {","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" \"@babel/eslint-parser\": \"^7.24.1\",","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"sopa301"},"content":" \"@stylistic/eslint-plugin\": \"^1.7.0\",","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"sopa301"},"content":" \"@stylistic/stylelint-plugin\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" \"@vue/cli-plugin-babel\": \"^5.0.4\",","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" \"@vue/cli-plugin-eslint\": \"^5.0.4\",","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" \"@vue/cli-plugin-typescript\": \"^5.0.4\",","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" \"@vue/cli-service\": \"^5.0.8\",","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" \"@vue/compiler-sfc\": \"^3.4.21\",","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"sopa301"},"content":" \"@vue/eslint-config-typescript\": \"^13.0.0\",","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^8.57.0\",","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" \"eslint-config-airbnb-base\": \"^15.0.0\",","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"sopa301"},"content":" \"eslint-config-airbnb-typescript\": \"^18.0.0\",","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"sopa301"},"content":" \"eslint-plugin-import\": \"^2.29.1\",","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"sopa301"},"content":" \"eslint-plugin-vue\": \"^9.0.0\",","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"sopa301"},"content":" \"postcss-html\": \"^1.6.0\",","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" \"pug\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" \"pug-plain-loader\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"sopa301"},"content":" \"sass\": \"^1.71.0\",","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" \"sass-loader\": \"^14.0.0\",","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^16.1.0\",","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-recommended-vue\": \"^1.5.0\",","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-standard\": \"^36.0.0\",","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-standard-scss\": \"^13.0.0\",","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"sopa301"},"content":" \"stylelint-order\": \"^6.0.4\",","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"sopa301"},"content":" \"stylelint-webpack-plugin\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"sopa301"},"content":" \"typescript\": \"~4.9.5\",","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" \"typescript-eslint\": \"^7.3.1\"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"sopa301"},"content":" \"node_modules/@aashutoshrathi/word-wrap\": {","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.6\",","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" \"node_modules/@achrinza/node-ipc\": {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" \"version\": \"9.2.6\",","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" \"@node-ipc/js-queue\": \"2.0.3\",","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" \"event-pubsub\": \"4.3.0\",","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" \"js-message\": \"1.0.7\"","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" \"node\": \"8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19\"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" \"node_modules/@ampproject/remapping\": {","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" \"@jridgewell/gen-mapping\": \"^0.1.0\",","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" \"@jridgewell/trace-mapping\": \"^0.3.9\"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" \"node_modules/@babel/code-frame\": {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.23.5\",","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"sopa301"},"content":" \"@babel/highlight\": \"^7.23.4\",","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"sopa301"},"content":" \"chalk\": \"^2.4.2\"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" \"node_modules/@babel/compat-data\": {","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" \"version\": \"7.20.10\",","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" \"node_modules/@babel/core\": {","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" \"version\": \"7.20.12\",","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" \"@ampproject/remapping\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" \"@babel/code-frame\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" \"@babel/generator\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" \"@babel/helper-compilation-targets\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" \"@babel/helper-module-transforms\": \"^7.20.11\",","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" \"@babel/helpers\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" \"@babel/parser\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" \"@babel/template\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" \"@babel/traverse\": \"^7.20.12\",","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" \"convert-source-map\": \"^1.7.0\",","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" \"debug\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" \"gensync\": \"^1.0.0-beta.2\",","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" \"json5\": \"^2.2.2\",","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" \"semver\": \"^6.3.0\"","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/babel\"","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" \"node_modules/@babel/eslint-parser\": {","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" \"version\": \"7.24.1\",","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" \"@nicolo-ribaudo/eslint-scope-5-internals\": \"5.1.1-v1\",","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" \"eslint-visitor-keys\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" \"semver\": \"^6.3.1\"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" \"node\": \"^10.13.0 || ^12.13.0 || \u003e\u003d14.0.0\"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.11.0\",","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" \"eslint\": \"^7.5.0 || ^8.0.0\"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" \"node_modules/@babel/generator\": {","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" \"version\": \"7.23.6\",","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.23.6\",","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" \"@jridgewell/gen-mapping\": \"^0.3.2\",","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" \"@jridgewell/trace-mapping\": \"^0.3.17\",","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" \"jsesc\": \"^2.5.1\"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" \"node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping\": {","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" \"version\": \"0.3.2\",","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" \"@jridgewell/set-array\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" \"@jridgewell/sourcemap-codec\": \"^1.4.10\",","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" \"@jridgewell/trace-mapping\": \"^0.3.9\"","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-annotate-as-pure\": {","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-builder-binary-assignment-operator-visitor\": {","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" \"version\": \"7.18.9\",","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" \"@babel/helper-explode-assignable-expression\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.18.9\"","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-compilation-targets\": {","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" \"version\": \"7.20.7\",","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" \"@babel/compat-data\": \"^7.20.5\",","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" \"@babel/helper-validator-option\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" \"browserslist\": \"^4.21.3\",","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^5.1.1\",","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" \"semver\": \"^6.3.0\"","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-create-class-features-plugin\": {","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" \"version\": \"7.20.12\",","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" \"@babel/helper-annotate-as-pure\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" \"@babel/helper-environment-visitor\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" \"@babel/helper-function-name\": \"^7.19.0\",","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" \"@babel/helper-member-expression-to-functions\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" \"@babel/helper-optimise-call-expression\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" \"@babel/helper-replace-supers\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" \"@babel/helper-skip-transparent-expression-wrappers\": \"^7.20.0\",","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" \"@babel/helper-split-export-declaration\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-create-regexp-features-plugin\": {","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" \"version\": \"7.20.5\",","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" \"@babel/helper-annotate-as-pure\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" \"regexpu-core\": \"^5.2.1\"","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-define-polyfill-provider\": {","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" \"version\": \"0.3.3\",","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" \"@babel/helper-compilation-targets\": \"^7.17.7\",","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.16.7\",","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" \"debug\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" \"lodash.debounce\": \"^4.0.8\",","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" \"resolve\": \"^1.14.2\",","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" \"semver\": \"^6.1.2\"","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.4.0-0\"","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-environment-visitor\": {","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" \"version\": \"7.22.20\",","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-explode-assignable-expression\": {","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-function-name\": {","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" \"version\": \"7.23.0\",","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":" \"@babel/template\": \"^7.22.15\",","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.23.0\"","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-hoist-variables\": {","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":" \"version\": \"7.22.5\",","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.22.5\"","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-member-expression-to-functions\": {","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":" \"version\": \"7.20.7\",","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.20.7\"","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-module-imports\": {","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-module-transforms\": {","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"-"},"content":" \"version\": \"7.20.11\",","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":" \"@babel/helper-environment-visitor\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":" \"@babel/helper-module-imports\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":" \"@babel/helper-simple-access\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":" \"@babel/helper-split-export-declaration\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"-"},"content":" \"@babel/helper-validator-identifier\": \"^7.19.1\",","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"-"},"content":" \"@babel/template\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"-"},"content":" \"@babel/traverse\": \"^7.20.10\",","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.20.7\"","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-optimise-call-expression\": {","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-plugin-utils\": {","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"-"},"content":" \"version\": \"7.20.2\",","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-remap-async-to-generator\": {","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"-"},"content":" \"version\": \"7.18.9\",","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"-"},"content":" \"@babel/helper-annotate-as-pure\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"-"},"content":" \"@babel/helper-environment-visitor\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"-"},"content":" \"@babel/helper-wrap-function\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.18.9\"","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-replace-supers\": {","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"-"},"content":" \"version\": \"7.20.7\",","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"-"},"content":" \"@babel/helper-environment-visitor\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"-"},"content":" \"@babel/helper-member-expression-to-functions\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"-"},"content":" \"@babel/helper-optimise-call-expression\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"-"},"content":" \"@babel/template\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"-"},"content":" \"@babel/traverse\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.20.7\"","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-simple-access\": {","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"-"},"content":" \"version\": \"7.20.2\",","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.20.2\"","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-skip-transparent-expression-wrappers\": {","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"-"},"content":" \"version\": \"7.20.0\",","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.20.0\"","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-split-export-declaration\": {","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"-"},"content":" \"version\": \"7.22.6\",","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.22.5\"","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-string-parser\": {","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"-"},"content":" \"version\": \"7.23.4\",","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-validator-identifier\": {","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"-"},"content":" \"version\": \"7.22.20\",","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-validator-option\": {","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helper-wrap-function\": {","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"-"},"content":" \"version\": \"7.20.5\",","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"-"},"content":" \"@babel/helper-function-name\": \"^7.19.0\",","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"-"},"content":" \"@babel/template\": \"^7.18.10\",","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"-"},"content":" \"@babel/traverse\": \"^7.20.5\",","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.20.5\"","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"-"},"content":" \"node_modules/@babel/helpers\": {","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"-"},"content":" \"version\": \"7.20.13\",","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"-"},"content":" \"@babel/template\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"-"},"content":" \"@babel/traverse\": \"^7.20.13\",","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.20.7\"","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":504,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":505,"author":{"gitId":"-"},"content":" \"node_modules/@babel/highlight\": {","isFullCredit":false},{"lineNumber":506,"author":{"gitId":"-"},"content":" \"version\": \"7.23.4\",","isFullCredit":false},{"lineNumber":507,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":508,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":509,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":510,"author":{"gitId":"-"},"content":" \"@babel/helper-validator-identifier\": \"^7.22.20\",","isFullCredit":false},{"lineNumber":511,"author":{"gitId":"-"},"content":" \"chalk\": \"^2.4.2\",","isFullCredit":false},{"lineNumber":512,"author":{"gitId":"-"},"content":" \"js-tokens\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":513,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":514,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":515,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":516,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":517,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":518,"author":{"gitId":"-"},"content":" \"node_modules/@babel/parser\": {","isFullCredit":false},{"lineNumber":519,"author":{"gitId":"-"},"content":" \"version\": \"7.24.0\",","isFullCredit":false},{"lineNumber":520,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":521,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":522,"author":{"gitId":"-"},"content":" \"parser\": \"bin/babel-parser.js\"","isFullCredit":false},{"lineNumber":523,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":524,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":525,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":526,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":527,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":528,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression\": {","isFullCredit":false},{"lineNumber":529,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":530,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":531,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":532,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":533,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":534,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":535,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":536,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":537,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":538,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":539,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":540,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":541,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":542,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining\": {","isFullCredit":false},{"lineNumber":543,"author":{"gitId":"-"},"content":" \"version\": \"7.20.7\",","isFullCredit":false},{"lineNumber":544,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":545,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":546,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":547,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":548,"author":{"gitId":"-"},"content":" \"@babel/helper-skip-transparent-expression-wrappers\": \"^7.20.0\",","isFullCredit":false},{"lineNumber":549,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-optional-chaining\": \"^7.20.7\"","isFullCredit":false},{"lineNumber":550,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":551,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":552,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":553,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":554,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":555,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.13.0\"","isFullCredit":false},{"lineNumber":556,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":557,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":558,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-proposal-async-generator-functions\": {","isFullCredit":false},{"lineNumber":559,"author":{"gitId":"-"},"content":" \"version\": \"7.20.7\",","isFullCredit":false},{"lineNumber":560,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":561,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":562,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":563,"author":{"gitId":"-"},"content":" \"@babel/helper-environment-visitor\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":564,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":565,"author":{"gitId":"-"},"content":" \"@babel/helper-remap-async-to-generator\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":566,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-async-generators\": \"^7.8.4\"","isFullCredit":false},{"lineNumber":567,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":568,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":569,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":570,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":571,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":572,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":573,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":574,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":575,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-proposal-class-properties\": {","isFullCredit":false},{"lineNumber":576,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":577,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":578,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":579,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":580,"author":{"gitId":"-"},"content":" \"@babel/helper-create-class-features-plugin\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":581,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":582,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":583,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":584,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":585,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":586,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":587,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":588,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":589,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":590,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-proposal-class-static-block\": {","isFullCredit":false},{"lineNumber":591,"author":{"gitId":"-"},"content":" \"version\": \"7.20.7\",","isFullCredit":false},{"lineNumber":592,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":593,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":594,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":595,"author":{"gitId":"-"},"content":" \"@babel/helper-create-class-features-plugin\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":596,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":597,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-class-static-block\": \"^7.14.5\"","isFullCredit":false},{"lineNumber":598,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":599,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":600,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":601,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":602,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":603,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.12.0\"","isFullCredit":false},{"lineNumber":604,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":605,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":606,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-proposal-decorators\": {","isFullCredit":false},{"lineNumber":607,"author":{"gitId":"-"},"content":" \"version\": \"7.20.13\",","isFullCredit":false},{"lineNumber":608,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":609,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":610,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":611,"author":{"gitId":"-"},"content":" \"@babel/helper-create-class-features-plugin\": \"^7.20.12\",","isFullCredit":false},{"lineNumber":612,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":613,"author":{"gitId":"-"},"content":" \"@babel/helper-replace-supers\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":614,"author":{"gitId":"-"},"content":" \"@babel/helper-split-export-declaration\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":615,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-decorators\": \"^7.19.0\"","isFullCredit":false},{"lineNumber":616,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":617,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":618,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":619,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":620,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":621,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":622,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":623,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":624,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-proposal-dynamic-import\": {","isFullCredit":false},{"lineNumber":625,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":626,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":627,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":628,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":629,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":630,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-dynamic-import\": \"^7.8.3\"","isFullCredit":false},{"lineNumber":631,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":632,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":633,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":634,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":635,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":636,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":637,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":638,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":639,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-proposal-export-namespace-from\": {","isFullCredit":false},{"lineNumber":640,"author":{"gitId":"-"},"content":" \"version\": \"7.18.9\",","isFullCredit":false},{"lineNumber":641,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":642,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":643,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":644,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":645,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-export-namespace-from\": \"^7.8.3\"","isFullCredit":false},{"lineNumber":646,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":647,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":648,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":649,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":650,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":651,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":652,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":653,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":654,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-proposal-json-strings\": {","isFullCredit":false},{"lineNumber":655,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":656,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":657,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":658,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":659,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":660,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-json-strings\": \"^7.8.3\"","isFullCredit":false},{"lineNumber":661,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":662,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":663,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":664,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":665,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":666,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":667,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":668,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":669,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-proposal-logical-assignment-operators\": {","isFullCredit":false},{"lineNumber":670,"author":{"gitId":"-"},"content":" \"version\": \"7.20.7\",","isFullCredit":false},{"lineNumber":671,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":672,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":673,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":674,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":675,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-logical-assignment-operators\": \"^7.10.4\"","isFullCredit":false},{"lineNumber":676,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":677,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":678,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":679,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":680,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":681,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":682,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":683,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":684,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-proposal-nullish-coalescing-operator\": {","isFullCredit":false},{"lineNumber":685,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":686,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":687,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":688,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":689,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":690,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-nullish-coalescing-operator\": \"^7.8.3\"","isFullCredit":false},{"lineNumber":691,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":692,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":693,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":694,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":695,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":696,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":697,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":698,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":699,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-proposal-numeric-separator\": {","isFullCredit":false},{"lineNumber":700,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":701,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":702,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":703,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":704,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":705,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-numeric-separator\": \"^7.10.4\"","isFullCredit":false},{"lineNumber":706,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":707,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":708,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":709,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":710,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":711,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":712,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":713,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":714,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-proposal-object-rest-spread\": {","isFullCredit":false},{"lineNumber":715,"author":{"gitId":"-"},"content":" \"version\": \"7.20.7\",","isFullCredit":false},{"lineNumber":716,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":717,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":718,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":719,"author":{"gitId":"-"},"content":" \"@babel/compat-data\": \"^7.20.5\",","isFullCredit":false},{"lineNumber":720,"author":{"gitId":"-"},"content":" \"@babel/helper-compilation-targets\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":721,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":722,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-object-rest-spread\": \"^7.8.3\",","isFullCredit":false},{"lineNumber":723,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-parameters\": \"^7.20.7\"","isFullCredit":false},{"lineNumber":724,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":725,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":726,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":727,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":728,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":729,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":730,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":731,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":732,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-proposal-optional-catch-binding\": {","isFullCredit":false},{"lineNumber":733,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":734,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":735,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":736,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":737,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":738,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-optional-catch-binding\": \"^7.8.3\"","isFullCredit":false},{"lineNumber":739,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":740,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":741,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":742,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":743,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":744,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":745,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":746,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":747,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-proposal-optional-chaining\": {","isFullCredit":false},{"lineNumber":748,"author":{"gitId":"-"},"content":" \"version\": \"7.20.7\",","isFullCredit":false},{"lineNumber":749,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":750,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":751,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":752,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":753,"author":{"gitId":"-"},"content":" \"@babel/helper-skip-transparent-expression-wrappers\": \"^7.20.0\",","isFullCredit":false},{"lineNumber":754,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-optional-chaining\": \"^7.8.3\"","isFullCredit":false},{"lineNumber":755,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":756,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":757,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":758,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":759,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":760,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":761,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":762,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":763,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-proposal-private-methods\": {","isFullCredit":false},{"lineNumber":764,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":765,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":766,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":767,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":768,"author":{"gitId":"-"},"content":" \"@babel/helper-create-class-features-plugin\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":769,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":770,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":771,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":772,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":773,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":774,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":775,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":776,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":777,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":778,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-proposal-private-property-in-object\": {","isFullCredit":false},{"lineNumber":779,"author":{"gitId":"-"},"content":" \"version\": \"7.20.5\",","isFullCredit":false},{"lineNumber":780,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":781,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":782,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":783,"author":{"gitId":"-"},"content":" \"@babel/helper-annotate-as-pure\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":784,"author":{"gitId":"-"},"content":" \"@babel/helper-create-class-features-plugin\": \"^7.20.5\",","isFullCredit":false},{"lineNumber":785,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":786,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-private-property-in-object\": \"^7.14.5\"","isFullCredit":false},{"lineNumber":787,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":788,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":789,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":790,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":791,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":792,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":793,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":794,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":795,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-proposal-unicode-property-regex\": {","isFullCredit":false},{"lineNumber":796,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":797,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":798,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":799,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":800,"author":{"gitId":"-"},"content":" \"@babel/helper-create-regexp-features-plugin\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":801,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":802,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":803,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":804,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":805,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":806,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":807,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":808,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":809,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":810,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-async-generators\": {","isFullCredit":false},{"lineNumber":811,"author":{"gitId":"-"},"content":" \"version\": \"7.8.4\",","isFullCredit":false},{"lineNumber":812,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":813,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":814,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":815,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.8.0\"","isFullCredit":false},{"lineNumber":816,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":817,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":818,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":819,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":820,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":821,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-class-properties\": {","isFullCredit":false},{"lineNumber":822,"author":{"gitId":"-"},"content":" \"version\": \"7.12.13\",","isFullCredit":false},{"lineNumber":823,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":824,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":825,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":826,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.12.13\"","isFullCredit":false},{"lineNumber":827,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":828,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":829,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":830,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":831,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":832,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-class-static-block\": {","isFullCredit":false},{"lineNumber":833,"author":{"gitId":"-"},"content":" \"version\": \"7.14.5\",","isFullCredit":false},{"lineNumber":834,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":835,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":836,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":837,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.14.5\"","isFullCredit":false},{"lineNumber":838,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":839,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":840,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":841,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":842,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":843,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":844,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":845,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":846,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-decorators\": {","isFullCredit":false},{"lineNumber":847,"author":{"gitId":"-"},"content":" \"version\": \"7.19.0\",","isFullCredit":false},{"lineNumber":848,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":849,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":850,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":851,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.19.0\"","isFullCredit":false},{"lineNumber":852,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":853,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":854,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":855,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":856,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":857,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":858,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":859,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":860,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-dynamic-import\": {","isFullCredit":false},{"lineNumber":861,"author":{"gitId":"-"},"content":" \"version\": \"7.8.3\",","isFullCredit":false},{"lineNumber":862,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":863,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":864,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":865,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.8.0\"","isFullCredit":false},{"lineNumber":866,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":867,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":868,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":869,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":870,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":871,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-export-namespace-from\": {","isFullCredit":false},{"lineNumber":872,"author":{"gitId":"-"},"content":" \"version\": \"7.8.3\",","isFullCredit":false},{"lineNumber":873,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":874,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":875,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":876,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.8.3\"","isFullCredit":false},{"lineNumber":877,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":878,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":879,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":880,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":881,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":882,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-import-assertions\": {","isFullCredit":false},{"lineNumber":883,"author":{"gitId":"-"},"content":" \"version\": \"7.20.0\",","isFullCredit":false},{"lineNumber":884,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":885,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":886,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":887,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.19.0\"","isFullCredit":false},{"lineNumber":888,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":889,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":890,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":891,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":892,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":893,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":894,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":895,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":896,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-json-strings\": {","isFullCredit":false},{"lineNumber":897,"author":{"gitId":"-"},"content":" \"version\": \"7.8.3\",","isFullCredit":false},{"lineNumber":898,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":899,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":900,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":901,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.8.0\"","isFullCredit":false},{"lineNumber":902,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":903,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":904,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":905,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":906,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":907,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-jsx\": {","isFullCredit":false},{"lineNumber":908,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":909,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":910,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":911,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":912,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":913,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":914,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":915,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":916,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":917,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":918,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":919,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":920,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":921,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-logical-assignment-operators\": {","isFullCredit":false},{"lineNumber":922,"author":{"gitId":"-"},"content":" \"version\": \"7.10.4\",","isFullCredit":false},{"lineNumber":923,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":924,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":925,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":926,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.10.4\"","isFullCredit":false},{"lineNumber":927,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":928,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":929,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":930,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":931,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":932,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-nullish-coalescing-operator\": {","isFullCredit":false},{"lineNumber":933,"author":{"gitId":"-"},"content":" \"version\": \"7.8.3\",","isFullCredit":false},{"lineNumber":934,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":935,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":936,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":937,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.8.0\"","isFullCredit":false},{"lineNumber":938,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":939,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":940,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":941,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":942,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":943,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-numeric-separator\": {","isFullCredit":false},{"lineNumber":944,"author":{"gitId":"-"},"content":" \"version\": \"7.10.4\",","isFullCredit":false},{"lineNumber":945,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":946,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":947,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":948,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.10.4\"","isFullCredit":false},{"lineNumber":949,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":950,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":951,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":952,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":953,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":954,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-object-rest-spread\": {","isFullCredit":false},{"lineNumber":955,"author":{"gitId":"-"},"content":" \"version\": \"7.8.3\",","isFullCredit":false},{"lineNumber":956,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":957,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":958,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":959,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.8.0\"","isFullCredit":false},{"lineNumber":960,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":961,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":962,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":963,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":964,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":965,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-optional-catch-binding\": {","isFullCredit":false},{"lineNumber":966,"author":{"gitId":"-"},"content":" \"version\": \"7.8.3\",","isFullCredit":false},{"lineNumber":967,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":968,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":969,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":970,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.8.0\"","isFullCredit":false},{"lineNumber":971,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":972,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":973,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":974,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":975,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":976,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-optional-chaining\": {","isFullCredit":false},{"lineNumber":977,"author":{"gitId":"-"},"content":" \"version\": \"7.8.3\",","isFullCredit":false},{"lineNumber":978,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":979,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":980,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":981,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.8.0\"","isFullCredit":false},{"lineNumber":982,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":983,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":984,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":985,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":986,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":987,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-private-property-in-object\": {","isFullCredit":false},{"lineNumber":988,"author":{"gitId":"-"},"content":" \"version\": \"7.14.5\",","isFullCredit":false},{"lineNumber":989,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":990,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":991,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":992,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.14.5\"","isFullCredit":false},{"lineNumber":993,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":994,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":995,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":996,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":997,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":998,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":999,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1000,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1001,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-syntax-top-level-await\": {","isFullCredit":false},{"lineNumber":1002,"author":{"gitId":"-"},"content":" \"version\": \"7.14.5\",","isFullCredit":false},{"lineNumber":1003,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1004,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1005,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1006,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.14.5\"","isFullCredit":false},{"lineNumber":1007,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1008,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1009,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1010,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1011,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1012,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1013,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1014,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1015,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-arrow-functions\": {","isFullCredit":false},{"lineNumber":1016,"author":{"gitId":"-"},"content":" \"version\": \"7.20.7\",","isFullCredit":false},{"lineNumber":1017,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1018,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1019,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1020,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\"","isFullCredit":false},{"lineNumber":1021,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1022,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1023,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1024,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1025,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1026,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1027,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1028,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1029,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-async-to-generator\": {","isFullCredit":false},{"lineNumber":1030,"author":{"gitId":"-"},"content":" \"version\": \"7.20.7\",","isFullCredit":false},{"lineNumber":1031,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1032,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1033,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1034,"author":{"gitId":"-"},"content":" \"@babel/helper-module-imports\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1035,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":1036,"author":{"gitId":"-"},"content":" \"@babel/helper-remap-async-to-generator\": \"^7.18.9\"","isFullCredit":false},{"lineNumber":1037,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1038,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1039,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1040,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1041,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1042,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1043,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1044,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1045,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-block-scoped-functions\": {","isFullCredit":false},{"lineNumber":1046,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":1047,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1048,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1049,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1050,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":1051,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1052,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1053,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1054,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1055,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1056,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1057,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1058,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1059,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-block-scoping\": {","isFullCredit":false},{"lineNumber":1060,"author":{"gitId":"-"},"content":" \"version\": \"7.20.11\",","isFullCredit":false},{"lineNumber":1061,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1062,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1063,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1064,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\"","isFullCredit":false},{"lineNumber":1065,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1066,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1067,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1068,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1069,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1070,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1071,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1072,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1073,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-classes\": {","isFullCredit":false},{"lineNumber":1074,"author":{"gitId":"-"},"content":" \"version\": \"7.20.7\",","isFullCredit":false},{"lineNumber":1075,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1076,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1077,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1078,"author":{"gitId":"-"},"content":" \"@babel/helper-annotate-as-pure\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1079,"author":{"gitId":"-"},"content":" \"@babel/helper-compilation-targets\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":1080,"author":{"gitId":"-"},"content":" \"@babel/helper-environment-visitor\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":1081,"author":{"gitId":"-"},"content":" \"@babel/helper-function-name\": \"^7.19.0\",","isFullCredit":false},{"lineNumber":1082,"author":{"gitId":"-"},"content":" \"@babel/helper-optimise-call-expression\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1083,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":1084,"author":{"gitId":"-"},"content":" \"@babel/helper-replace-supers\": \"^7.20.7\",","isFullCredit":false},{"lineNumber":1085,"author":{"gitId":"-"},"content":" \"@babel/helper-split-export-declaration\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1086,"author":{"gitId":"-"},"content":" \"globals\": \"^11.1.0\"","isFullCredit":false},{"lineNumber":1087,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1088,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1089,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1090,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1091,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1092,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1093,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1094,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1095,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-computed-properties\": {","isFullCredit":false},{"lineNumber":1096,"author":{"gitId":"-"},"content":" \"version\": \"7.20.7\",","isFullCredit":false},{"lineNumber":1097,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1098,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1099,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1100,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":1101,"author":{"gitId":"-"},"content":" \"@babel/template\": \"^7.20.7\"","isFullCredit":false},{"lineNumber":1102,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1103,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1104,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1105,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1106,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1107,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1108,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1109,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1110,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-destructuring\": {","isFullCredit":false},{"lineNumber":1111,"author":{"gitId":"-"},"content":" \"version\": \"7.20.7\",","isFullCredit":false},{"lineNumber":1112,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1113,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1114,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1115,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\"","isFullCredit":false},{"lineNumber":1116,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1117,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1118,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1119,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1120,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1121,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1122,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1123,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1124,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-dotall-regex\": {","isFullCredit":false},{"lineNumber":1125,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":1126,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1127,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1128,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1129,"author":{"gitId":"-"},"content":" \"@babel/helper-create-regexp-features-plugin\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1130,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":1131,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1132,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1133,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1134,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1135,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1136,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1137,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1138,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1139,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-duplicate-keys\": {","isFullCredit":false},{"lineNumber":1140,"author":{"gitId":"-"},"content":" \"version\": \"7.18.9\",","isFullCredit":false},{"lineNumber":1141,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1142,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1143,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1144,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.9\"","isFullCredit":false},{"lineNumber":1145,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1146,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1147,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1148,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1149,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1150,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1151,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1152,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1153,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-exponentiation-operator\": {","isFullCredit":false},{"lineNumber":1154,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":1155,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1156,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1157,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1158,"author":{"gitId":"-"},"content":" \"@babel/helper-builder-binary-assignment-operator-visitor\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1159,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":1160,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1161,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1162,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1163,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1164,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1165,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1166,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1167,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1168,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-for-of\": {","isFullCredit":false},{"lineNumber":1169,"author":{"gitId":"-"},"content":" \"version\": \"7.18.8\",","isFullCredit":false},{"lineNumber":1170,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1171,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1172,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1173,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":1174,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1175,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1176,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1177,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1178,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1179,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1180,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1181,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1182,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-function-name\": {","isFullCredit":false},{"lineNumber":1183,"author":{"gitId":"-"},"content":" \"version\": \"7.18.9\",","isFullCredit":false},{"lineNumber":1184,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1185,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1186,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1187,"author":{"gitId":"-"},"content":" \"@babel/helper-compilation-targets\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":1188,"author":{"gitId":"-"},"content":" \"@babel/helper-function-name\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":1189,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.9\"","isFullCredit":false},{"lineNumber":1190,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1191,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1192,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1193,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1194,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1195,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1196,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1197,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1198,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-literals\": {","isFullCredit":false},{"lineNumber":1199,"author":{"gitId":"-"},"content":" \"version\": \"7.18.9\",","isFullCredit":false},{"lineNumber":1200,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1201,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1202,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1203,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.9\"","isFullCredit":false},{"lineNumber":1204,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1205,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1206,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1207,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1208,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1209,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1210,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1211,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1212,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-member-expression-literals\": {","isFullCredit":false},{"lineNumber":1213,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":1214,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1215,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1216,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1217,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":1218,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1219,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1220,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1221,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1222,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1223,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1224,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1225,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1226,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-modules-amd\": {","isFullCredit":false},{"lineNumber":1227,"author":{"gitId":"-"},"content":" \"version\": \"7.20.11\",","isFullCredit":false},{"lineNumber":1228,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1229,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1230,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1231,"author":{"gitId":"-"},"content":" \"@babel/helper-module-transforms\": \"^7.20.11\",","isFullCredit":false},{"lineNumber":1232,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\"","isFullCredit":false},{"lineNumber":1233,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1234,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1235,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1236,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1237,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1238,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1239,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1240,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1241,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-modules-commonjs\": {","isFullCredit":false},{"lineNumber":1242,"author":{"gitId":"-"},"content":" \"version\": \"7.20.11\",","isFullCredit":false},{"lineNumber":1243,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1244,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1245,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1246,"author":{"gitId":"-"},"content":" \"@babel/helper-module-transforms\": \"^7.20.11\",","isFullCredit":false},{"lineNumber":1247,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":1248,"author":{"gitId":"-"},"content":" \"@babel/helper-simple-access\": \"^7.20.2\"","isFullCredit":false},{"lineNumber":1249,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1250,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1251,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1252,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1253,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1254,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1255,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1256,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1257,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-modules-systemjs\": {","isFullCredit":false},{"lineNumber":1258,"author":{"gitId":"-"},"content":" \"version\": \"7.20.11\",","isFullCredit":false},{"lineNumber":1259,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1260,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1261,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1262,"author":{"gitId":"-"},"content":" \"@babel/helper-hoist-variables\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1263,"author":{"gitId":"-"},"content":" \"@babel/helper-module-transforms\": \"^7.20.11\",","isFullCredit":false},{"lineNumber":1264,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":1265,"author":{"gitId":"-"},"content":" \"@babel/helper-validator-identifier\": \"^7.19.1\"","isFullCredit":false},{"lineNumber":1266,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1267,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1268,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1269,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1270,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1271,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1272,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1273,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1274,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-modules-umd\": {","isFullCredit":false},{"lineNumber":1275,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":1276,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1277,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1278,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1279,"author":{"gitId":"-"},"content":" \"@babel/helper-module-transforms\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1280,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":1281,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1282,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1283,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1284,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1285,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1286,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1287,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1288,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1289,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-named-capturing-groups-regex\": {","isFullCredit":false},{"lineNumber":1290,"author":{"gitId":"-"},"content":" \"version\": \"7.20.5\",","isFullCredit":false},{"lineNumber":1291,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1292,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1293,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1294,"author":{"gitId":"-"},"content":" \"@babel/helper-create-regexp-features-plugin\": \"^7.20.5\",","isFullCredit":false},{"lineNumber":1295,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\"","isFullCredit":false},{"lineNumber":1296,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1297,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1298,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1299,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1300,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1301,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":1302,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1303,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1304,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-new-target\": {","isFullCredit":false},{"lineNumber":1305,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":1306,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1307,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1308,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1309,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":1310,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1311,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1312,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1313,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1314,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1315,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1316,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1317,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1318,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-object-super\": {","isFullCredit":false},{"lineNumber":1319,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":1320,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1321,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1322,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1323,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1324,"author":{"gitId":"-"},"content":" \"@babel/helper-replace-supers\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":1325,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1326,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1327,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1328,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1329,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1330,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1331,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1332,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1333,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-parameters\": {","isFullCredit":false},{"lineNumber":1334,"author":{"gitId":"-"},"content":" \"version\": \"7.20.7\",","isFullCredit":false},{"lineNumber":1335,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1336,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1337,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1338,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\"","isFullCredit":false},{"lineNumber":1339,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1340,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1341,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1342,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1343,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1344,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1345,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1346,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1347,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-property-literals\": {","isFullCredit":false},{"lineNumber":1348,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":1349,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1350,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1351,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1352,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":1353,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1354,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1355,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1356,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1357,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1358,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1359,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1360,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1361,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-regenerator\": {","isFullCredit":false},{"lineNumber":1362,"author":{"gitId":"-"},"content":" \"version\": \"7.20.5\",","isFullCredit":false},{"lineNumber":1363,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1364,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1365,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1366,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":1367,"author":{"gitId":"-"},"content":" \"regenerator-transform\": \"^0.15.1\"","isFullCredit":false},{"lineNumber":1368,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1369,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1370,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1371,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1372,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1373,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1374,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1375,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1376,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-reserved-words\": {","isFullCredit":false},{"lineNumber":1377,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":1378,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1379,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1380,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1381,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":1382,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1383,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1384,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1385,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1386,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1387,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1388,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1389,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1390,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-runtime\": {","isFullCredit":false},{"lineNumber":1391,"author":{"gitId":"-"},"content":" \"version\": \"7.19.6\",","isFullCredit":false},{"lineNumber":1392,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1393,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1394,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1395,"author":{"gitId":"-"},"content":" \"@babel/helper-module-imports\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1396,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.19.0\",","isFullCredit":false},{"lineNumber":1397,"author":{"gitId":"-"},"content":" \"babel-plugin-polyfill-corejs2\": \"^0.3.3\",","isFullCredit":false},{"lineNumber":1398,"author":{"gitId":"-"},"content":" \"babel-plugin-polyfill-corejs3\": \"^0.6.0\",","isFullCredit":false},{"lineNumber":1399,"author":{"gitId":"-"},"content":" \"babel-plugin-polyfill-regenerator\": \"^0.4.1\",","isFullCredit":false},{"lineNumber":1400,"author":{"gitId":"-"},"content":" \"semver\": \"^6.3.0\"","isFullCredit":false},{"lineNumber":1401,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1402,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1403,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1404,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1405,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1406,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1407,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1408,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1409,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-shorthand-properties\": {","isFullCredit":false},{"lineNumber":1410,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":1411,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1412,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1413,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1414,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":1415,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1416,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1417,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1418,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1419,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1420,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1421,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1422,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1423,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-spread\": {","isFullCredit":false},{"lineNumber":1424,"author":{"gitId":"-"},"content":" \"version\": \"7.20.7\",","isFullCredit":false},{"lineNumber":1425,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1426,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1427,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1428,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":1429,"author":{"gitId":"-"},"content":" \"@babel/helper-skip-transparent-expression-wrappers\": \"^7.20.0\"","isFullCredit":false},{"lineNumber":1430,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1431,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1432,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1433,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1434,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1435,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1436,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1437,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1438,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-sticky-regex\": {","isFullCredit":false},{"lineNumber":1439,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":1440,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1441,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1442,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1443,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":1444,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1445,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1446,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1447,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1448,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1449,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1450,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1451,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1452,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-template-literals\": {","isFullCredit":false},{"lineNumber":1453,"author":{"gitId":"-"},"content":" \"version\": \"7.18.9\",","isFullCredit":false},{"lineNumber":1454,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1455,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1456,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1457,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.9\"","isFullCredit":false},{"lineNumber":1458,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1459,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1460,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1461,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1462,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1463,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1464,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1465,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1466,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-typeof-symbol\": {","isFullCredit":false},{"lineNumber":1467,"author":{"gitId":"-"},"content":" \"version\": \"7.18.9\",","isFullCredit":false},{"lineNumber":1468,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1469,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1470,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1471,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.9\"","isFullCredit":false},{"lineNumber":1472,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1473,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1474,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1475,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1476,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1477,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1478,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1479,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1480,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-unicode-escapes\": {","isFullCredit":false},{"lineNumber":1481,"author":{"gitId":"-"},"content":" \"version\": \"7.18.10\",","isFullCredit":false},{"lineNumber":1482,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1483,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1484,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1485,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.9\"","isFullCredit":false},{"lineNumber":1486,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1487,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1488,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1489,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1490,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1491,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1492,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1493,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1494,"author":{"gitId":"-"},"content":" \"node_modules/@babel/plugin-transform-unicode-regex\": {","isFullCredit":false},{"lineNumber":1495,"author":{"gitId":"-"},"content":" \"version\": \"7.18.6\",","isFullCredit":false},{"lineNumber":1496,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1497,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1498,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1499,"author":{"gitId":"-"},"content":" \"@babel/helper-create-regexp-features-plugin\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1500,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.18.6\"","isFullCredit":false},{"lineNumber":1501,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1502,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1503,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1504,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1505,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1506,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1507,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1508,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1509,"author":{"gitId":"-"},"content":" \"node_modules/@babel/preset-env\": {","isFullCredit":false},{"lineNumber":1510,"author":{"gitId":"-"},"content":" \"version\": \"7.20.2\",","isFullCredit":false},{"lineNumber":1511,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1512,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1513,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1514,"author":{"gitId":"-"},"content":" \"@babel/compat-data\": \"^7.20.1\",","isFullCredit":false},{"lineNumber":1515,"author":{"gitId":"-"},"content":" \"@babel/helper-compilation-targets\": \"^7.20.0\",","isFullCredit":false},{"lineNumber":1516,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":1517,"author":{"gitId":"-"},"content":" \"@babel/helper-validator-option\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1518,"author":{"gitId":"-"},"content":" \"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1519,"author":{"gitId":"-"},"content":" \"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":1520,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-async-generator-functions\": \"^7.20.1\",","isFullCredit":false},{"lineNumber":1521,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-class-properties\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1522,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-class-static-block\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1523,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-dynamic-import\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1524,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-export-namespace-from\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":1525,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-json-strings\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1526,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-logical-assignment-operators\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":1527,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-nullish-coalescing-operator\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1528,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-numeric-separator\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1529,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-object-rest-spread\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":1530,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-optional-catch-binding\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1531,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-optional-chaining\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":1532,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-private-methods\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1533,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-private-property-in-object\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1534,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-unicode-property-regex\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1535,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-async-generators\": \"^7.8.4\",","isFullCredit":false},{"lineNumber":1536,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-class-properties\": \"^7.12.13\",","isFullCredit":false},{"lineNumber":1537,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-class-static-block\": \"^7.14.5\",","isFullCredit":false},{"lineNumber":1538,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-dynamic-import\": \"^7.8.3\",","isFullCredit":false},{"lineNumber":1539,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-export-namespace-from\": \"^7.8.3\",","isFullCredit":false},{"lineNumber":1540,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-import-assertions\": \"^7.20.0\",","isFullCredit":false},{"lineNumber":1541,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-json-strings\": \"^7.8.3\",","isFullCredit":false},{"lineNumber":1542,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-logical-assignment-operators\": \"^7.10.4\",","isFullCredit":false},{"lineNumber":1543,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-nullish-coalescing-operator\": \"^7.8.3\",","isFullCredit":false},{"lineNumber":1544,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-numeric-separator\": \"^7.10.4\",","isFullCredit":false},{"lineNumber":1545,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-object-rest-spread\": \"^7.8.3\",","isFullCredit":false},{"lineNumber":1546,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-optional-catch-binding\": \"^7.8.3\",","isFullCredit":false},{"lineNumber":1547,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-optional-chaining\": \"^7.8.3\",","isFullCredit":false},{"lineNumber":1548,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-private-property-in-object\": \"^7.14.5\",","isFullCredit":false},{"lineNumber":1549,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-top-level-await\": \"^7.14.5\",","isFullCredit":false},{"lineNumber":1550,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-arrow-functions\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1551,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-async-to-generator\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1552,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-block-scoped-functions\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1553,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-block-scoping\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":1554,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-classes\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":1555,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-computed-properties\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":1556,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-destructuring\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":1557,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-dotall-regex\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1558,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-duplicate-keys\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":1559,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-exponentiation-operator\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1560,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-for-of\": \"^7.18.8\",","isFullCredit":false},{"lineNumber":1561,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-function-name\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":1562,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-literals\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":1563,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-member-expression-literals\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1564,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-modules-amd\": \"^7.19.6\",","isFullCredit":false},{"lineNumber":1565,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-modules-commonjs\": \"^7.19.6\",","isFullCredit":false},{"lineNumber":1566,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-modules-systemjs\": \"^7.19.6\",","isFullCredit":false},{"lineNumber":1567,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-modules-umd\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1568,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-named-capturing-groups-regex\": \"^7.19.1\",","isFullCredit":false},{"lineNumber":1569,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-new-target\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1570,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-object-super\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1571,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-parameters\": \"^7.20.1\",","isFullCredit":false},{"lineNumber":1572,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-property-literals\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1573,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-regenerator\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1574,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-reserved-words\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1575,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-shorthand-properties\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1576,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-spread\": \"^7.19.0\",","isFullCredit":false},{"lineNumber":1577,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-sticky-regex\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1578,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-template-literals\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":1579,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-typeof-symbol\": \"^7.18.9\",","isFullCredit":false},{"lineNumber":1580,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-unicode-escapes\": \"^7.18.10\",","isFullCredit":false},{"lineNumber":1581,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-unicode-regex\": \"^7.18.6\",","isFullCredit":false},{"lineNumber":1582,"author":{"gitId":"-"},"content":" \"@babel/preset-modules\": \"^0.1.5\",","isFullCredit":false},{"lineNumber":1583,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.20.2\",","isFullCredit":false},{"lineNumber":1584,"author":{"gitId":"-"},"content":" \"babel-plugin-polyfill-corejs2\": \"^0.3.3\",","isFullCredit":false},{"lineNumber":1585,"author":{"gitId":"-"},"content":" \"babel-plugin-polyfill-corejs3\": \"^0.6.0\",","isFullCredit":false},{"lineNumber":1586,"author":{"gitId":"-"},"content":" \"babel-plugin-polyfill-regenerator\": \"^0.4.1\",","isFullCredit":false},{"lineNumber":1587,"author":{"gitId":"-"},"content":" \"core-js-compat\": \"^3.25.1\",","isFullCredit":false},{"lineNumber":1588,"author":{"gitId":"-"},"content":" \"semver\": \"^6.3.0\"","isFullCredit":false},{"lineNumber":1589,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1590,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1591,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1592,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1593,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1594,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1595,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1596,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1597,"author":{"gitId":"-"},"content":" \"node_modules/@babel/preset-modules\": {","isFullCredit":false},{"lineNumber":1598,"author":{"gitId":"-"},"content":" \"version\": \"0.1.5\",","isFullCredit":false},{"lineNumber":1599,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1600,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1601,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1602,"author":{"gitId":"-"},"content":" \"@babel/helper-plugin-utils\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":1603,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-unicode-property-regex\": \"^7.4.4\",","isFullCredit":false},{"lineNumber":1604,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-dotall-regex\": \"^7.4.4\",","isFullCredit":false},{"lineNumber":1605,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.4.4\",","isFullCredit":false},{"lineNumber":1606,"author":{"gitId":"-"},"content":" \"esutils\": \"^2.0.2\"","isFullCredit":false},{"lineNumber":1607,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1608,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1609,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":1610,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1611,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1612,"author":{"gitId":"-"},"content":" \"node_modules/@babel/runtime\": {","isFullCredit":false},{"lineNumber":1613,"author":{"gitId":"-"},"content":" \"version\": \"7.20.13\",","isFullCredit":false},{"lineNumber":1614,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1615,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1616,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1617,"author":{"gitId":"-"},"content":" \"regenerator-runtime\": \"^0.13.11\"","isFullCredit":false},{"lineNumber":1618,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1619,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1620,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1621,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1622,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1623,"author":{"gitId":"-"},"content":" \"node_modules/@babel/template\": {","isFullCredit":false},{"lineNumber":1624,"author":{"gitId":"-"},"content":" \"version\": \"7.24.0\",","isFullCredit":false},{"lineNumber":1625,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1626,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1627,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1628,"author":{"gitId":"-"},"content":" \"@babel/code-frame\": \"^7.23.5\",","isFullCredit":false},{"lineNumber":1629,"author":{"gitId":"-"},"content":" \"@babel/parser\": \"^7.24.0\",","isFullCredit":false},{"lineNumber":1630,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.24.0\"","isFullCredit":false},{"lineNumber":1631,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1632,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1633,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1634,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1635,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1636,"author":{"gitId":"-"},"content":" \"node_modules/@babel/traverse\": {","isFullCredit":false},{"lineNumber":1637,"author":{"gitId":"-"},"content":" \"version\": \"7.24.0\",","isFullCredit":false},{"lineNumber":1638,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1639,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1640,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1641,"author":{"gitId":"-"},"content":" \"@babel/code-frame\": \"^7.23.5\",","isFullCredit":false},{"lineNumber":1642,"author":{"gitId":"-"},"content":" \"@babel/generator\": \"^7.23.6\",","isFullCredit":false},{"lineNumber":1643,"author":{"gitId":"-"},"content":" \"@babel/helper-environment-visitor\": \"^7.22.20\",","isFullCredit":false},{"lineNumber":1644,"author":{"gitId":"-"},"content":" \"@babel/helper-function-name\": \"^7.23.0\",","isFullCredit":false},{"lineNumber":1645,"author":{"gitId":"-"},"content":" \"@babel/helper-hoist-variables\": \"^7.22.5\",","isFullCredit":false},{"lineNumber":1646,"author":{"gitId":"-"},"content":" \"@babel/helper-split-export-declaration\": \"^7.22.6\",","isFullCredit":false},{"lineNumber":1647,"author":{"gitId":"-"},"content":" \"@babel/parser\": \"^7.24.0\",","isFullCredit":false},{"lineNumber":1648,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.24.0\",","isFullCredit":false},{"lineNumber":1649,"author":{"gitId":"-"},"content":" \"debug\": \"^4.3.1\",","isFullCredit":false},{"lineNumber":1650,"author":{"gitId":"-"},"content":" \"globals\": \"^11.1.0\"","isFullCredit":false},{"lineNumber":1651,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1652,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1653,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1654,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1655,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1656,"author":{"gitId":"-"},"content":" \"node_modules/@babel/types\": {","isFullCredit":false},{"lineNumber":1657,"author":{"gitId":"-"},"content":" \"version\": \"7.24.0\",","isFullCredit":false},{"lineNumber":1658,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1659,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1660,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1661,"author":{"gitId":"-"},"content":" \"@babel/helper-string-parser\": \"^7.23.4\",","isFullCredit":false},{"lineNumber":1662,"author":{"gitId":"-"},"content":" \"@babel/helper-validator-identifier\": \"^7.22.20\",","isFullCredit":false},{"lineNumber":1663,"author":{"gitId":"-"},"content":" \"to-fast-properties\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":1664,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1665,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1666,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":1667,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1668,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1669,"author":{"gitId":"-"},"content":" \"node_modules/@csstools/css-parser-algorithms\": {","isFullCredit":false},{"lineNumber":1670,"author":{"gitId":"-"},"content":" \"version\": \"2.6.1\",","isFullCredit":false},{"lineNumber":1671,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.1.tgz\",","isFullCredit":false},{"lineNumber":1672,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1673,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1674,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":1675,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":1676,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":1677,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/csstools\"","isFullCredit":false},{"lineNumber":1678,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1679,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":1680,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1681,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/csstools\"","isFullCredit":false},{"lineNumber":1682,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1683,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":1684,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1685,"author":{"gitId":"-"},"content":" \"node\": \"^14 || ^16 || \u003e\u003d18\"","isFullCredit":false},{"lineNumber":1686,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1687,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1688,"author":{"gitId":"-"},"content":" \"@csstools/css-tokenizer\": \"^2.2.4\"","isFullCredit":false},{"lineNumber":1689,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1690,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1691,"author":{"gitId":"-"},"content":" \"node_modules/@csstools/css-tokenizer\": {","isFullCredit":false},{"lineNumber":1692,"author":{"gitId":"-"},"content":" \"version\": \"2.2.4\",","isFullCredit":false},{"lineNumber":1693,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.4.tgz\",","isFullCredit":false},{"lineNumber":1694,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1695,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1696,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":1697,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":1698,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":1699,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/csstools\"","isFullCredit":false},{"lineNumber":1700,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1701,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":1702,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1703,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/csstools\"","isFullCredit":false},{"lineNumber":1704,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1705,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":1706,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1707,"author":{"gitId":"-"},"content":" \"node\": \"^14 || ^16 || \u003e\u003d18\"","isFullCredit":false},{"lineNumber":1708,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1709,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1710,"author":{"gitId":"-"},"content":" \"node_modules/@csstools/media-query-list-parser\": {","isFullCredit":false},{"lineNumber":1711,"author":{"gitId":"-"},"content":" \"version\": \"2.1.9\",","isFullCredit":false},{"lineNumber":1712,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.9.tgz\",","isFullCredit":false},{"lineNumber":1713,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1714,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1715,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":1716,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":1717,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":1718,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/csstools\"","isFullCredit":false},{"lineNumber":1719,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1720,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":1721,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1722,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/csstools\"","isFullCredit":false},{"lineNumber":1723,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1724,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":1725,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1726,"author":{"gitId":"-"},"content":" \"node\": \"^14 || ^16 || \u003e\u003d18\"","isFullCredit":false},{"lineNumber":1727,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1728,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1729,"author":{"gitId":"-"},"content":" \"@csstools/css-parser-algorithms\": \"^2.6.1\",","isFullCredit":false},{"lineNumber":1730,"author":{"gitId":"-"},"content":" \"@csstools/css-tokenizer\": \"^2.2.4\"","isFullCredit":false},{"lineNumber":1731,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1732,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1733,"author":{"gitId":"-"},"content":" \"node_modules/@csstools/selector-specificity\": {","isFullCredit":false},{"lineNumber":1734,"author":{"gitId":"-"},"content":" \"version\": \"3.0.3\",","isFullCredit":false},{"lineNumber":1735,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.3.tgz\",","isFullCredit":false},{"lineNumber":1736,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-KEPNw4+WW5AVEIyzC80rTbWEUatTW2lXpN8+8ILC8PiPeWPjwUzrPZDIOZ2wwqDmeqOYTdSGyL3+vE5GC3FB3Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":1737,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1738,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":1739,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":1740,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":1741,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/csstools\"","isFullCredit":false},{"lineNumber":1742,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1743,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":1744,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":1745,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/csstools\"","isFullCredit":false},{"lineNumber":1746,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1747,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":1748,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1749,"author":{"gitId":"-"},"content":" \"node\": \"^14 || ^16 || \u003e\u003d18\"","isFullCredit":false},{"lineNumber":1750,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1751,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1752,"author":{"gitId":"-"},"content":" \"postcss-selector-parser\": \"^6.0.13\"","isFullCredit":false},{"lineNumber":1753,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":1754,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1755,"author":{"gitId":"-"},"content":" \"node_modules/@dual-bundle/import-meta-resolve\": {","isFullCredit":false},{"lineNumber":1756,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":1757,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":1758,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ZKXyJeFAzcpKM2kk8ipoGIPUqx9BX52omTGnfwjJvxOCaZTM2wtDK7zN0aIgPRbT9XYAlha0HtmZ+XKteuh0Gw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1759,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1760,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1761,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":1762,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/wooorm\"","isFullCredit":false},{"lineNumber":1763,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1764,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1765,"author":{"gitId":"-"},"content":" \"node_modules/@eslint-community/eslint-utils\": {","isFullCredit":false},{"lineNumber":1766,"author":{"gitId":"-"},"content":" \"version\": \"4.4.0\",","isFullCredit":false},{"lineNumber":1767,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1768,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1769,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1770,"author":{"gitId":"-"},"content":" \"eslint-visitor-keys\": \"^3.3.0\"","isFullCredit":false},{"lineNumber":1771,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":1772,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1773,"author":{"gitId":"-"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":1774,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1775,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1776,"author":{"gitId":"-"},"content":" \"eslint\": \"^6.0.0 || ^7.0.0 || \u003e\u003d8.0.0\"","isFullCredit":false},{"lineNumber":1777,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1778,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1779,"author":{"gitId":"-"},"content":" \"node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys\": {","isFullCredit":false},{"lineNumber":1780,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.3\",","isFullCredit":false},{"lineNumber":1781,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1782,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":1783,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1784,"author":{"gitId":"sopa301"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":1785,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1786,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1787,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":1788,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1789,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1790,"author":{"gitId":"-"},"content":" \"node_modules/@eslint-community/regexpp\": {","isFullCredit":false},{"lineNumber":1791,"author":{"gitId":"-"},"content":" \"version\": \"4.10.0\",","isFullCredit":false},{"lineNumber":1792,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1793,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1794,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1795,"author":{"gitId":"-"},"content":" \"node\": \"^12.0.0 || ^14.0.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":1796,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1797,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1798,"author":{"gitId":"-"},"content":" \"node_modules/@eslint/eslintrc\": {","isFullCredit":false},{"lineNumber":1799,"author":{"gitId":"-"},"content":" \"version\": \"2.1.4\",","isFullCredit":false},{"lineNumber":1800,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1801,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1802,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1803,"author":{"gitId":"-"},"content":" \"ajv\": \"^6.12.4\",","isFullCredit":false},{"lineNumber":1804,"author":{"gitId":"-"},"content":" \"debug\": \"^4.3.2\",","isFullCredit":false},{"lineNumber":1805,"author":{"gitId":"-"},"content":" \"espree\": \"^9.6.0\",","isFullCredit":false},{"lineNumber":1806,"author":{"gitId":"-"},"content":" \"globals\": \"^13.19.0\",","isFullCredit":false},{"lineNumber":1807,"author":{"gitId":"-"},"content":" \"ignore\": \"^5.2.0\",","isFullCredit":false},{"lineNumber":1808,"author":{"gitId":"-"},"content":" \"import-fresh\": \"^3.2.1\",","isFullCredit":false},{"lineNumber":1809,"author":{"gitId":"-"},"content":" \"js-yaml\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":1810,"author":{"gitId":"-"},"content":" \"minimatch\": \"^3.1.2\",","isFullCredit":false},{"lineNumber":1811,"author":{"gitId":"-"},"content":" \"strip-json-comments\": \"^3.1.1\"","isFullCredit":false},{"lineNumber":1812,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1813,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1814,"author":{"gitId":"-"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":1815,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1816,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1817,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":1818,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1819,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1820,"author":{"gitId":"-"},"content":" \"node_modules/@eslint/eslintrc/node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":1821,"author":{"gitId":"-"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":1822,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1823,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1824,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1825,"author":{"gitId":"-"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":1826,"author":{"gitId":"-"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":1827,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1828,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1829,"author":{"gitId":"-"},"content":" \"node_modules/@eslint/eslintrc/node_modules/globals\": {","isFullCredit":false},{"lineNumber":1830,"author":{"gitId":"-"},"content":" \"version\": \"13.24.0\",","isFullCredit":false},{"lineNumber":1831,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1832,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1833,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1834,"author":{"gitId":"-"},"content":" \"type-fest\": \"^0.20.2\"","isFullCredit":false},{"lineNumber":1835,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1836,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1837,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":1838,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1839,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1840,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":1841,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1842,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1843,"author":{"gitId":"-"},"content":" \"node_modules/@eslint/eslintrc/node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":1844,"author":{"gitId":"-"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":1845,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1846,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":1847,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1848,"author":{"gitId":"-"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":1849,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1850,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1851,"author":{"gitId":"-"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":1852,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1853,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1854,"author":{"gitId":"-"},"content":" \"node_modules/@eslint/js\": {","isFullCredit":false},{"lineNumber":1855,"author":{"gitId":"-"},"content":" \"version\": \"8.57.0\",","isFullCredit":false},{"lineNumber":1856,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1857,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1858,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1859,"author":{"gitId":"-"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":1860,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1861,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1862,"author":{"gitId":"-"},"content":" \"node_modules/@fontsource/titillium-web\": {","isFullCredit":false},{"lineNumber":1863,"author":{"gitId":"-"},"content":" \"version\": \"5.0.19\",","isFullCredit":false},{"lineNumber":1864,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@fontsource/titillium-web/-/titillium-web-5.0.19.tgz\",","isFullCredit":false},{"lineNumber":1865,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ktxZrkQUjHD+cKhCgm9YZU6vfHJAguFTidb832BFra21dniFpWiEpkot18VkYyuSnxoGUjrC9aLOB1Dc14N4vg\u003d\u003d\"","isFullCredit":false},{"lineNumber":1866,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1867,"author":{"gitId":"-"},"content":" \"node_modules/@fortawesome/fontawesome-common-types\": {","isFullCredit":false},{"lineNumber":1868,"author":{"gitId":"-"},"content":" \"version\": \"6.5.1\",","isFullCredit":false},{"lineNumber":1869,"author":{"gitId":"-"},"content":" \"hasInstallScript\": true,","isFullCredit":false},{"lineNumber":1870,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1871,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1872,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":1873,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1874,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1875,"author":{"gitId":"-"},"content":" \"node_modules/@fortawesome/fontawesome-svg-core\": {","isFullCredit":false},{"lineNumber":1876,"author":{"gitId":"-"},"content":" \"version\": \"6.5.1\",","isFullCredit":false},{"lineNumber":1877,"author":{"gitId":"-"},"content":" \"hasInstallScript\": true,","isFullCredit":false},{"lineNumber":1878,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1879,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1880,"author":{"gitId":"-"},"content":" \"@fortawesome/fontawesome-common-types\": \"6.5.1\"","isFullCredit":false},{"lineNumber":1881,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1882,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1883,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":1884,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1885,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1886,"author":{"gitId":"-"},"content":" \"node_modules/@fortawesome/free-brands-svg-icons\": {","isFullCredit":false},{"lineNumber":1887,"author":{"gitId":"-"},"content":" \"version\": \"6.5.1\",","isFullCredit":false},{"lineNumber":1888,"author":{"gitId":"-"},"content":" \"hasInstallScript\": true,","isFullCredit":false},{"lineNumber":1889,"author":{"gitId":"-"},"content":" \"license\": \"(CC-BY-4.0 AND MIT)\",","isFullCredit":false},{"lineNumber":1890,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1891,"author":{"gitId":"-"},"content":" \"@fortawesome/fontawesome-common-types\": \"6.5.1\"","isFullCredit":false},{"lineNumber":1892,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1893,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1894,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":1895,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1896,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1897,"author":{"gitId":"-"},"content":" \"node_modules/@fortawesome/free-solid-svg-icons\": {","isFullCredit":false},{"lineNumber":1898,"author":{"gitId":"-"},"content":" \"version\": \"6.5.1\",","isFullCredit":false},{"lineNumber":1899,"author":{"gitId":"-"},"content":" \"hasInstallScript\": true,","isFullCredit":false},{"lineNumber":1900,"author":{"gitId":"-"},"content":" \"license\": \"(CC-BY-4.0 AND MIT)\",","isFullCredit":false},{"lineNumber":1901,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1902,"author":{"gitId":"-"},"content":" \"@fortawesome/fontawesome-common-types\": \"6.5.1\"","isFullCredit":false},{"lineNumber":1903,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1904,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1905,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":1906,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1907,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1908,"author":{"gitId":"-"},"content":" \"node_modules/@fortawesome/vue-fontawesome\": {","isFullCredit":false},{"lineNumber":1909,"author":{"gitId":"-"},"content":" \"version\": \"3.0.6\",","isFullCredit":false},{"lineNumber":1910,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1911,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":1912,"author":{"gitId":"-"},"content":" \"@fortawesome/fontawesome-svg-core\": \"~1 || ~6\",","isFullCredit":false},{"lineNumber":1913,"author":{"gitId":"-"},"content":" \"vue\": \"\u003e\u003d 3.0.0 \u003c 4\"","isFullCredit":false},{"lineNumber":1914,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1915,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1916,"author":{"gitId":"-"},"content":" \"node_modules/@hapi/hoek\": {","isFullCredit":false},{"lineNumber":1917,"author":{"gitId":"-"},"content":" \"version\": \"9.3.0\",","isFullCredit":false},{"lineNumber":1918,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1919,"author":{"gitId":"-"},"content":" \"license\": \"BSD-3-Clause\"","isFullCredit":false},{"lineNumber":1920,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1921,"author":{"gitId":"-"},"content":" \"node_modules/@hapi/topo\": {","isFullCredit":false},{"lineNumber":1922,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":1923,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1924,"author":{"gitId":"-"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":1925,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1926,"author":{"gitId":"-"},"content":" \"@hapi/hoek\": \"^9.0.0\"","isFullCredit":false},{"lineNumber":1927,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1928,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1929,"author":{"gitId":"-"},"content":" \"node_modules/@humanwhocodes/config-array\": {","isFullCredit":false},{"lineNumber":1930,"author":{"gitId":"-"},"content":" \"version\": \"0.11.14\",","isFullCredit":false},{"lineNumber":1931,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1932,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":1933,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1934,"author":{"gitId":"-"},"content":" \"@humanwhocodes/object-schema\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":1935,"author":{"gitId":"-"},"content":" \"debug\": \"^4.3.1\",","isFullCredit":false},{"lineNumber":1936,"author":{"gitId":"-"},"content":" \"minimatch\": \"^3.0.5\"","isFullCredit":false},{"lineNumber":1937,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1938,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1939,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10.10.0\"","isFullCredit":false},{"lineNumber":1940,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1941,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1942,"author":{"gitId":"-"},"content":" \"node_modules/@humanwhocodes/config-array/node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":1943,"author":{"gitId":"-"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":1944,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1945,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":1946,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1947,"author":{"gitId":"-"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":1948,"author":{"gitId":"-"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":1949,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1950,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1951,"author":{"gitId":"-"},"content":" \"node_modules/@humanwhocodes/config-array/node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":1952,"author":{"gitId":"-"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":1953,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1954,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":1955,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1956,"author":{"gitId":"-"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":1957,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1958,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1959,"author":{"gitId":"-"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":1960,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1961,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1962,"author":{"gitId":"-"},"content":" \"node_modules/@humanwhocodes/module-importer\": {","isFullCredit":false},{"lineNumber":1963,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":1964,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1965,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":1966,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1967,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d12.22\"","isFullCredit":false},{"lineNumber":1968,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1969,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":1970,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":1971,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/nzakas\"","isFullCredit":false},{"lineNumber":1972,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1973,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1974,"author":{"gitId":"-"},"content":" \"node_modules/@humanwhocodes/object-schema\": {","isFullCredit":false},{"lineNumber":1975,"author":{"gitId":"-"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":1976,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1977,"author":{"gitId":"-"},"content":" \"license\": \"BSD-3-Clause\"","isFullCredit":false},{"lineNumber":1978,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1979,"author":{"gitId":"-"},"content":" \"node_modules/@jest/schemas\": {","isFullCredit":false},{"lineNumber":1980,"author":{"gitId":"-"},"content":" \"version\": \"29.6.3\",","isFullCredit":false},{"lineNumber":1981,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz\",","isFullCredit":false},{"lineNumber":1982,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA\u003d\u003d\",","isFullCredit":false},{"lineNumber":1983,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1984,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1985,"author":{"gitId":"-"},"content":" \"@sinclair/typebox\": \"^0.27.8\"","isFullCredit":false},{"lineNumber":1986,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1987,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":1988,"author":{"gitId":"-"},"content":" \"node\": \"^14.15.0 || ^16.10.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":1989,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1990,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":1991,"author":{"gitId":"-"},"content":" \"node_modules/@jest/types\": {","isFullCredit":false},{"lineNumber":1992,"author":{"gitId":"-"},"content":" \"version\": \"29.6.3\",","isFullCredit":false},{"lineNumber":1993,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz\",","isFullCredit":false},{"lineNumber":1994,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw\u003d\u003d\",","isFullCredit":false},{"lineNumber":1995,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":1996,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":1997,"author":{"gitId":"-"},"content":" \"@jest/schemas\": \"^29.6.3\",","isFullCredit":false},{"lineNumber":1998,"author":{"gitId":"-"},"content":" \"@types/istanbul-lib-coverage\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":1999,"author":{"gitId":"-"},"content":" \"@types/istanbul-reports\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":2000,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\",","isFullCredit":false},{"lineNumber":2001,"author":{"gitId":"-"},"content":" \"@types/yargs\": \"^17.0.8\",","isFullCredit":false},{"lineNumber":2002,"author":{"gitId":"-"},"content":" \"chalk\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":2003,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2004,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2005,"author":{"gitId":"-"},"content":" \"node\": \"^14.15.0 || ^16.10.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":2006,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2007,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2008,"author":{"gitId":"-"},"content":" \"node_modules/@jest/types/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":2009,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":2010,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",","isFullCredit":false},{"lineNumber":2011,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2012,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2013,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2014,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":2015,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2016,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2017,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":2018,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2019,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2020,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":2021,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2022,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2023,"author":{"gitId":"-"},"content":" \"node_modules/@jest/types/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":2024,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":2025,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",","isFullCredit":false},{"lineNumber":2026,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2027,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2028,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2029,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":2030,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":2031,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2032,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2033,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":2034,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2035,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2036,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":2037,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2038,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2039,"author":{"gitId":"-"},"content":" \"node_modules/@jest/types/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":2040,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":2041,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",","isFullCredit":false},{"lineNumber":2042,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2043,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2044,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2045,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":2046,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2047,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2048,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":2049,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2050,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2051,"author":{"gitId":"-"},"content":" \"node_modules/@jest/types/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":2052,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":2053,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",","isFullCredit":false},{"lineNumber":2054,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2055,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2056,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2057,"author":{"gitId":"-"},"content":" \"node_modules/@jest/types/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":2058,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":2059,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":2060,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2061,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2062,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2063,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":2064,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2065,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2066,"author":{"gitId":"-"},"content":" \"node_modules/@jest/types/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":2067,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":2068,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",","isFullCredit":false},{"lineNumber":2069,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2070,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2071,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2072,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":2073,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2074,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2075,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":2076,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2077,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2078,"author":{"gitId":"-"},"content":" \"node_modules/@jridgewell/gen-mapping\": {","isFullCredit":false},{"lineNumber":2079,"author":{"gitId":"-"},"content":" \"version\": \"0.1.1\",","isFullCredit":false},{"lineNumber":2080,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2081,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2082,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2083,"author":{"gitId":"-"},"content":" \"@jridgewell/set-array\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":2084,"author":{"gitId":"-"},"content":" \"@jridgewell/sourcemap-codec\": \"^1.4.10\"","isFullCredit":false},{"lineNumber":2085,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2086,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2087,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":2088,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2089,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2090,"author":{"gitId":"-"},"content":" \"node_modules/@jridgewell/resolve-uri\": {","isFullCredit":false},{"lineNumber":2091,"author":{"gitId":"-"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":2092,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2093,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2094,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":2095,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2096,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2097,"author":{"gitId":"-"},"content":" \"node_modules/@jridgewell/set-array\": {","isFullCredit":false},{"lineNumber":2098,"author":{"gitId":"-"},"content":" \"version\": \"1.1.2\",","isFullCredit":false},{"lineNumber":2099,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2100,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2101,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":2102,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2103,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2104,"author":{"gitId":"-"},"content":" \"node_modules/@jridgewell/source-map\": {","isFullCredit":false},{"lineNumber":2105,"author":{"gitId":"-"},"content":" \"version\": \"0.3.2\",","isFullCredit":false},{"lineNumber":2106,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2107,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2108,"author":{"gitId":"-"},"content":" \"@jridgewell/gen-mapping\": \"^0.3.0\",","isFullCredit":false},{"lineNumber":2109,"author":{"gitId":"-"},"content":" \"@jridgewell/trace-mapping\": \"^0.3.9\"","isFullCredit":false},{"lineNumber":2110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2111,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2112,"author":{"gitId":"-"},"content":" \"node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping\": {","isFullCredit":false},{"lineNumber":2113,"author":{"gitId":"-"},"content":" \"version\": \"0.3.2\",","isFullCredit":false},{"lineNumber":2114,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2115,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2116,"author":{"gitId":"-"},"content":" \"@jridgewell/set-array\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":2117,"author":{"gitId":"-"},"content":" \"@jridgewell/sourcemap-codec\": \"^1.4.10\",","isFullCredit":false},{"lineNumber":2118,"author":{"gitId":"-"},"content":" \"@jridgewell/trace-mapping\": \"^0.3.9\"","isFullCredit":false},{"lineNumber":2119,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2120,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2121,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":2122,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2123,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2124,"author":{"gitId":"-"},"content":" \"node_modules/@jridgewell/sourcemap-codec\": {","isFullCredit":false},{"lineNumber":2125,"author":{"gitId":"-"},"content":" \"version\": \"1.4.14\",","isFullCredit":false},{"lineNumber":2126,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2127,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2128,"author":{"gitId":"-"},"content":" \"node_modules/@jridgewell/trace-mapping\": {","isFullCredit":false},{"lineNumber":2129,"author":{"gitId":"-"},"content":" \"version\": \"0.3.17\",","isFullCredit":false},{"lineNumber":2130,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2131,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2132,"author":{"gitId":"-"},"content":" \"@jridgewell/resolve-uri\": \"3.1.0\",","isFullCredit":false},{"lineNumber":2133,"author":{"gitId":"-"},"content":" \"@jridgewell/sourcemap-codec\": \"1.4.14\"","isFullCredit":false},{"lineNumber":2134,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2135,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2136,"author":{"gitId":"-"},"content":" \"node_modules/@leichtgewicht/ip-codec\": {","isFullCredit":false},{"lineNumber":2137,"author":{"gitId":"-"},"content":" \"version\": \"2.0.4\",","isFullCredit":false},{"lineNumber":2138,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2139,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2140,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2141,"author":{"gitId":"-"},"content":" \"node_modules/@nicolo-ribaudo/eslint-scope-5-internals\": {","isFullCredit":false},{"lineNumber":2142,"author":{"gitId":"-"},"content":" \"version\": \"5.1.1-v1\",","isFullCredit":false},{"lineNumber":2143,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2144,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2145,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2146,"author":{"gitId":"-"},"content":" \"eslint-scope\": \"5.1.1\"","isFullCredit":false},{"lineNumber":2147,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2148,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2149,"author":{"gitId":"-"},"content":" \"node_modules/@node-ipc/js-queue\": {","isFullCredit":false},{"lineNumber":2150,"author":{"gitId":"-"},"content":" \"version\": \"2.0.3\",","isFullCredit":false},{"lineNumber":2151,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2152,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2153,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2154,"author":{"gitId":"-"},"content":" \"easy-stack\": \"1.0.1\"","isFullCredit":false},{"lineNumber":2155,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2156,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2157,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d1.0.0\"","isFullCredit":false},{"lineNumber":2158,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2159,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2160,"author":{"gitId":"-"},"content":" \"node_modules/@nodelib/fs.scandir\": {","isFullCredit":false},{"lineNumber":2161,"author":{"gitId":"-"},"content":" \"version\": \"2.1.5\",","isFullCredit":false},{"lineNumber":2162,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2163,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2164,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2165,"author":{"gitId":"-"},"content":" \"@nodelib/fs.stat\": \"2.0.5\",","isFullCredit":false},{"lineNumber":2166,"author":{"gitId":"-"},"content":" \"run-parallel\": \"^1.1.9\"","isFullCredit":false},{"lineNumber":2167,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2168,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2169,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":2170,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2171,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2172,"author":{"gitId":"-"},"content":" \"node_modules/@nodelib/fs.stat\": {","isFullCredit":false},{"lineNumber":2173,"author":{"gitId":"-"},"content":" \"version\": \"2.0.5\",","isFullCredit":false},{"lineNumber":2174,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2175,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2176,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2177,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":2178,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2179,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2180,"author":{"gitId":"-"},"content":" \"node_modules/@nodelib/fs.walk\": {","isFullCredit":false},{"lineNumber":2181,"author":{"gitId":"-"},"content":" \"version\": \"1.2.8\",","isFullCredit":false},{"lineNumber":2182,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2183,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2184,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2185,"author":{"gitId":"-"},"content":" \"@nodelib/fs.scandir\": \"2.1.5\",","isFullCredit":false},{"lineNumber":2186,"author":{"gitId":"-"},"content":" \"fastq\": \"^1.6.0\"","isFullCredit":false},{"lineNumber":2187,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2188,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2189,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":2190,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2191,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2192,"author":{"gitId":"-"},"content":" \"node_modules/@polka/url\": {","isFullCredit":false},{"lineNumber":2193,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0-next.21\",","isFullCredit":false},{"lineNumber":2194,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2195,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2196,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2197,"author":{"gitId":"-"},"content":" \"node_modules/@sideway/address\": {","isFullCredit":false},{"lineNumber":2198,"author":{"gitId":"-"},"content":" \"version\": \"4.1.4\",","isFullCredit":false},{"lineNumber":2199,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2200,"author":{"gitId":"-"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":2201,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2202,"author":{"gitId":"-"},"content":" \"@hapi/hoek\": \"^9.0.0\"","isFullCredit":false},{"lineNumber":2203,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2204,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2205,"author":{"gitId":"-"},"content":" \"node_modules/@sideway/formula\": {","isFullCredit":false},{"lineNumber":2206,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":2207,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2208,"author":{"gitId":"-"},"content":" \"license\": \"BSD-3-Clause\"","isFullCredit":false},{"lineNumber":2209,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2210,"author":{"gitId":"-"},"content":" \"node_modules/@sideway/pinpoint\": {","isFullCredit":false},{"lineNumber":2211,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":2212,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2213,"author":{"gitId":"-"},"content":" \"license\": \"BSD-3-Clause\"","isFullCredit":false},{"lineNumber":2214,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2215,"author":{"gitId":"-"},"content":" \"node_modules/@sinclair/typebox\": {","isFullCredit":false},{"lineNumber":2216,"author":{"gitId":"-"},"content":" \"version\": \"0.27.8\",","isFullCredit":false},{"lineNumber":2217,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz\",","isFullCredit":false},{"lineNumber":2218,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2219,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2220,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2221,"author":{"gitId":"-"},"content":" \"node_modules/@soda/friendly-errors-webpack-plugin\": {","isFullCredit":false},{"lineNumber":2222,"author":{"gitId":"-"},"content":" \"version\": \"1.8.1\",","isFullCredit":false},{"lineNumber":2223,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2224,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2225,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2226,"author":{"gitId":"-"},"content":" \"chalk\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":2227,"author":{"gitId":"-"},"content":" \"error-stack-parser\": \"^2.0.6\",","isFullCredit":false},{"lineNumber":2228,"author":{"gitId":"-"},"content":" \"string-width\": \"^4.2.3\",","isFullCredit":false},{"lineNumber":2229,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":2230,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2231,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2232,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8.0.0\"","isFullCredit":false},{"lineNumber":2233,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2234,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2235,"author":{"gitId":"-"},"content":" \"webpack\": \"^4.0.0 || ^5.0.0\"","isFullCredit":false},{"lineNumber":2236,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2237,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2238,"author":{"gitId":"-"},"content":" \"node_modules/@soda/friendly-errors-webpack-plugin/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":2239,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":2240,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2241,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2242,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2243,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":2244,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2245,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2246,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":2247,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2248,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2249,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":2250,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2251,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2252,"author":{"gitId":"-"},"content":" \"node_modules/@soda/friendly-errors-webpack-plugin/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":2253,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":2254,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2255,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2256,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2257,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":2258,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":2259,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2260,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2261,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":2262,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2263,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2264,"author":{"gitId":"-"},"content":" \"node_modules/@soda/friendly-errors-webpack-plugin/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":2265,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":2266,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2267,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2268,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2269,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":2270,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2271,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2272,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":2273,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2274,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2275,"author":{"gitId":"-"},"content":" \"node_modules/@soda/friendly-errors-webpack-plugin/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":2276,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":2277,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2278,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2279,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2280,"author":{"gitId":"-"},"content":" \"node_modules/@soda/friendly-errors-webpack-plugin/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":2281,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":2282,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2283,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2284,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2285,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":2286,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2287,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2288,"author":{"gitId":"-"},"content":" \"node_modules/@soda/friendly-errors-webpack-plugin/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":2289,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":2290,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2291,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2292,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2293,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":2294,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2295,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2296,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":2297,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2298,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2299,"author":{"gitId":"-"},"content":" \"node_modules/@soda/get-current-script\": {","isFullCredit":false},{"lineNumber":2300,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":2301,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2302,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2303,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2304,"author":{"gitId":"-"},"content":" \"node_modules/@stylistic/eslint-plugin\": {","isFullCredit":false},{"lineNumber":2305,"author":{"gitId":"-"},"content":" \"version\": \"1.7.2\",","isFullCredit":false},{"lineNumber":2306,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-1.7.2.tgz\",","isFullCredit":false},{"lineNumber":2307,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-TesaPR4AOCeD4unwu9gZCdTe8SsUpykriICuwXV8GFBgESuVbfVp+S8g6xTWe9ntVR803bNMtnr2UhxHW0iFqg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2308,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2309,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2310,"author":{"gitId":"-"},"content":" \"@stylistic/eslint-plugin-js\": \"1.7.2\",","isFullCredit":false},{"lineNumber":2311,"author":{"gitId":"-"},"content":" \"@stylistic/eslint-plugin-jsx\": \"1.7.2\",","isFullCredit":false},{"lineNumber":2312,"author":{"gitId":"-"},"content":" \"@stylistic/eslint-plugin-plus\": \"1.7.2\",","isFullCredit":false},{"lineNumber":2313,"author":{"gitId":"-"},"content":" \"@stylistic/eslint-plugin-ts\": \"1.7.2\",","isFullCredit":false},{"lineNumber":2314,"author":{"gitId":"-"},"content":" \"@types/eslint\": \"^8.56.8\"","isFullCredit":false},{"lineNumber":2315,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2316,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2317,"author":{"gitId":"-"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":2318,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2319,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2320,"author":{"gitId":"-"},"content":" \"eslint\": \"\u003e\u003d8.40.0\"","isFullCredit":false},{"lineNumber":2321,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2322,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2323,"author":{"gitId":"-"},"content":" \"node_modules/@stylistic/eslint-plugin-js\": {","isFullCredit":false},{"lineNumber":2324,"author":{"gitId":"-"},"content":" \"version\": \"1.7.2\",","isFullCredit":false},{"lineNumber":2325,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-1.7.2.tgz\",","isFullCredit":false},{"lineNumber":2326,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ZYX7C5p7zlHbACwFLU+lISVh6tdcRP/++PWegh2Sy0UgMT5kU0XkPa2tKWEtJYzZmPhJxu9LxbnWcnE/tTwSDQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2327,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2328,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2329,"author":{"gitId":"-"},"content":" \"@types/eslint\": \"^8.56.8\",","isFullCredit":false},{"lineNumber":2330,"author":{"gitId":"-"},"content":" \"acorn\": \"^8.11.3\",","isFullCredit":false},{"lineNumber":2331,"author":{"gitId":"-"},"content":" \"escape-string-regexp\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":2332,"author":{"gitId":"-"},"content":" \"eslint-visitor-keys\": \"^3.4.3\",","isFullCredit":false},{"lineNumber":2333,"author":{"gitId":"-"},"content":" \"espree\": \"^9.6.1\"","isFullCredit":false},{"lineNumber":2334,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2335,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2336,"author":{"gitId":"-"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":2337,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2338,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2339,"author":{"gitId":"-"},"content":" \"eslint\": \"\u003e\u003d8.40.0\"","isFullCredit":false},{"lineNumber":2340,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2341,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2342,"author":{"gitId":"-"},"content":" \"node_modules/@stylistic/eslint-plugin-js/node_modules/escape-string-regexp\": {","isFullCredit":false},{"lineNumber":2343,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":2344,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":2345,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2346,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2347,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2348,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":2349,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2350,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2351,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":2352,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2353,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2354,"author":{"gitId":"-"},"content":" \"node_modules/@stylistic/eslint-plugin-js/node_modules/eslint-visitor-keys\": {","isFullCredit":false},{"lineNumber":2355,"author":{"gitId":"-"},"content":" \"version\": \"3.4.3\",","isFullCredit":false},{"lineNumber":2356,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz\",","isFullCredit":false},{"lineNumber":2357,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag\u003d\u003d\",","isFullCredit":false},{"lineNumber":2358,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2359,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2360,"author":{"gitId":"-"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":2361,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2362,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2363,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":2364,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2365,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2366,"author":{"gitId":"-"},"content":" \"node_modules/@stylistic/eslint-plugin-jsx\": {","isFullCredit":false},{"lineNumber":2367,"author":{"gitId":"-"},"content":" \"version\": \"1.7.2\",","isFullCredit":false},{"lineNumber":2368,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-1.7.2.tgz\",","isFullCredit":false},{"lineNumber":2369,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-lNZR5PR0HLJPs+kY0y8fy6KroKlYqA5PwsYWpVYWzqZWiL5jgAeUo4s9yLFYjJjzildJ5MsTVMy/xP81Qz6GXg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2370,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2371,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2372,"author":{"gitId":"-"},"content":" \"@stylistic/eslint-plugin-js\": \"^1.7.2\",","isFullCredit":false},{"lineNumber":2373,"author":{"gitId":"-"},"content":" \"@types/eslint\": \"^8.56.8\",","isFullCredit":false},{"lineNumber":2374,"author":{"gitId":"-"},"content":" \"estraverse\": \"^5.3.0\",","isFullCredit":false},{"lineNumber":2375,"author":{"gitId":"-"},"content":" \"picomatch\": \"^4.0.2\"","isFullCredit":false},{"lineNumber":2376,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2377,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2378,"author":{"gitId":"-"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":2379,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2380,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2381,"author":{"gitId":"-"},"content":" \"eslint\": \"\u003e\u003d8.40.0\"","isFullCredit":false},{"lineNumber":2382,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2383,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2384,"author":{"gitId":"-"},"content":" \"node_modules/@stylistic/eslint-plugin-jsx/node_modules/estraverse\": {","isFullCredit":false},{"lineNumber":2385,"author":{"gitId":"-"},"content":" \"version\": \"5.3.0\",","isFullCredit":false},{"lineNumber":2386,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz\",","isFullCredit":false},{"lineNumber":2387,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2388,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2389,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2390,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4.0\"","isFullCredit":false},{"lineNumber":2391,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2392,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2393,"author":{"gitId":"-"},"content":" \"node_modules/@stylistic/eslint-plugin-jsx/node_modules/picomatch\": {","isFullCredit":false},{"lineNumber":2394,"author":{"gitId":"-"},"content":" \"version\": \"4.0.2\",","isFullCredit":false},{"lineNumber":2395,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz\",","isFullCredit":false},{"lineNumber":2396,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2397,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2398,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2399,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":2400,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2401,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2402,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/jonschlinkert\"","isFullCredit":false},{"lineNumber":2403,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2404,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2405,"author":{"gitId":"-"},"content":" \"node_modules/@stylistic/eslint-plugin-plus\": {","isFullCredit":false},{"lineNumber":2406,"author":{"gitId":"-"},"content":" \"version\": \"1.7.2\",","isFullCredit":false},{"lineNumber":2407,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@stylistic/eslint-plugin-plus/-/eslint-plugin-plus-1.7.2.tgz\",","isFullCredit":false},{"lineNumber":2408,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-luUfRVbBVtt0+/FNt8/76BANJEzb/nHWasHD7UUjyMrch2U9xUKpObrkTCzqBuisKek+uFupwGjqXqDP07+fQw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2409,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2410,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2411,"author":{"gitId":"-"},"content":" \"@types/eslint\": \"^8.56.8\",","isFullCredit":false},{"lineNumber":2412,"author":{"gitId":"-"},"content":" \"@typescript-eslint/utils\": \"^6.21.0\"","isFullCredit":false},{"lineNumber":2413,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2414,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2415,"author":{"gitId":"-"},"content":" \"eslint\": \"*\"","isFullCredit":false},{"lineNumber":2416,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2417,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2418,"author":{"gitId":"-"},"content":" \"node_modules/@stylistic/eslint-plugin-ts\": {","isFullCredit":false},{"lineNumber":2419,"author":{"gitId":"-"},"content":" \"version\": \"1.7.2\",","isFullCredit":false},{"lineNumber":2420,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-1.7.2.tgz\",","isFullCredit":false},{"lineNumber":2421,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-szX89YPocwCe4T0eT3alj7MwEzDHt5+B+kb/vQfSSLIjI9CGgoWrgj50zU8PtaDctTh4ZieFBzU/lRmkSUo0RQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2422,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2423,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2424,"author":{"gitId":"-"},"content":" \"@stylistic/eslint-plugin-js\": \"1.7.2\",","isFullCredit":false},{"lineNumber":2425,"author":{"gitId":"-"},"content":" \"@types/eslint\": \"^8.56.8\",","isFullCredit":false},{"lineNumber":2426,"author":{"gitId":"-"},"content":" \"@typescript-eslint/utils\": \"^6.21.0\"","isFullCredit":false},{"lineNumber":2427,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2428,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2429,"author":{"gitId":"-"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":2430,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2431,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2432,"author":{"gitId":"-"},"content":" \"eslint\": \"\u003e\u003d8.40.0\"","isFullCredit":false},{"lineNumber":2433,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2434,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2435,"author":{"gitId":"-"},"content":" \"node_modules/@stylistic/stylelint-plugin\": {","isFullCredit":false},{"lineNumber":2436,"author":{"gitId":"-"},"content":" \"version\": \"2.1.1\",","isFullCredit":false},{"lineNumber":2437,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-2.1.1.tgz\",","isFullCredit":false},{"lineNumber":2438,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-xqHTmQZN7EbnFDW7jw0rAsdFNO4IRqvXhrh3qhUlIwF/x09Zm7kgs/ADktHxsTJYcw346PpGihsB0t4pZhpeHw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2439,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2440,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2441,"author":{"gitId":"-"},"content":" \"@csstools/css-parser-algorithms\": \"^2.5.0\",","isFullCredit":false},{"lineNumber":2442,"author":{"gitId":"-"},"content":" \"@csstools/css-tokenizer\": \"^2.2.3\",","isFullCredit":false},{"lineNumber":2443,"author":{"gitId":"-"},"content":" \"@csstools/media-query-list-parser\": \"^2.1.7\",","isFullCredit":false},{"lineNumber":2444,"author":{"gitId":"-"},"content":" \"is-plain-object\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":2445,"author":{"gitId":"-"},"content":" \"postcss-selector-parser\": \"^6.0.15\",","isFullCredit":false},{"lineNumber":2446,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":2447,"author":{"gitId":"-"},"content":" \"style-search\": \"^0.1.0\",","isFullCredit":false},{"lineNumber":2448,"author":{"gitId":"-"},"content":" \"stylelint\": \"^16.2.1\"","isFullCredit":false},{"lineNumber":2449,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2450,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2451,"author":{"gitId":"-"},"content":" \"node\": \"^18.12 || \u003e\u003d20.9\"","isFullCredit":false},{"lineNumber":2452,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2453,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2454,"author":{"gitId":"-"},"content":" \"stylelint\": \"^16.0.2\"","isFullCredit":false},{"lineNumber":2455,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2456,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2457,"author":{"gitId":"-"},"content":" \"node_modules/@trysound/sax\": {","isFullCredit":false},{"lineNumber":2458,"author":{"gitId":"-"},"content":" \"version\": \"0.2.0\",","isFullCredit":false},{"lineNumber":2459,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2460,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":2461,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2462,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10.13.0\"","isFullCredit":false},{"lineNumber":2463,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2464,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2465,"author":{"gitId":"-"},"content":" \"node_modules/@types/babel-types\": {","isFullCredit":false},{"lineNumber":2466,"author":{"gitId":"-"},"content":" \"version\": \"7.0.11\",","isFullCredit":false},{"lineNumber":2467,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2468,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2469,"author":{"gitId":"-"},"content":" \"node_modules/@types/babylon\": {","isFullCredit":false},{"lineNumber":2470,"author":{"gitId":"-"},"content":" \"version\": \"6.16.6\",","isFullCredit":false},{"lineNumber":2471,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2472,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2473,"author":{"gitId":"-"},"content":" \"@types/babel-types\": \"*\"","isFullCredit":false},{"lineNumber":2474,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2475,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2476,"author":{"gitId":"-"},"content":" \"node_modules/@types/body-parser\": {","isFullCredit":false},{"lineNumber":2477,"author":{"gitId":"-"},"content":" \"version\": \"1.19.2\",","isFullCredit":false},{"lineNumber":2478,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2479,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2480,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2481,"author":{"gitId":"-"},"content":" \"@types/connect\": \"*\",","isFullCredit":false},{"lineNumber":2482,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\"","isFullCredit":false},{"lineNumber":2483,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2484,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2485,"author":{"gitId":"-"},"content":" \"node_modules/@types/bonjour\": {","isFullCredit":false},{"lineNumber":2486,"author":{"gitId":"-"},"content":" \"version\": \"3.5.10\",","isFullCredit":false},{"lineNumber":2487,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2488,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2489,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2490,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\"","isFullCredit":false},{"lineNumber":2491,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2492,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2493,"author":{"gitId":"-"},"content":" \"node_modules/@types/connect\": {","isFullCredit":false},{"lineNumber":2494,"author":{"gitId":"-"},"content":" \"version\": \"3.4.35\",","isFullCredit":false},{"lineNumber":2495,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2496,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2497,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2498,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\"","isFullCredit":false},{"lineNumber":2499,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2500,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2501,"author":{"gitId":"-"},"content":" \"node_modules/@types/connect-history-api-fallback\": {","isFullCredit":false},{"lineNumber":2502,"author":{"gitId":"-"},"content":" \"version\": \"1.3.5\",","isFullCredit":false},{"lineNumber":2503,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2504,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2505,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2506,"author":{"gitId":"-"},"content":" \"@types/express-serve-static-core\": \"*\",","isFullCredit":false},{"lineNumber":2507,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\"","isFullCredit":false},{"lineNumber":2508,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2509,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2510,"author":{"gitId":"-"},"content":" \"node_modules/@types/eslint\": {","isFullCredit":false},{"lineNumber":2511,"author":{"gitId":"-"},"content":" \"version\": \"8.56.10\",","isFullCredit":false},{"lineNumber":2512,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz\",","isFullCredit":false},{"lineNumber":2513,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2514,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2515,"author":{"gitId":"-"},"content":" \"@types/estree\": \"*\",","isFullCredit":false},{"lineNumber":2516,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"*\"","isFullCredit":false},{"lineNumber":2517,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2518,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2519,"author":{"gitId":"-"},"content":" \"node_modules/@types/eslint-scope\": {","isFullCredit":false},{"lineNumber":2520,"author":{"gitId":"-"},"content":" \"version\": \"3.7.4\",","isFullCredit":false},{"lineNumber":2521,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2522,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2523,"author":{"gitId":"-"},"content":" \"@types/eslint\": \"*\",","isFullCredit":false},{"lineNumber":2524,"author":{"gitId":"-"},"content":" \"@types/estree\": \"*\"","isFullCredit":false},{"lineNumber":2525,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2526,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2527,"author":{"gitId":"-"},"content":" \"node_modules/@types/estree\": {","isFullCredit":false},{"lineNumber":2528,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":2529,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2530,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2531,"author":{"gitId":"-"},"content":" \"node_modules/@types/express\": {","isFullCredit":false},{"lineNumber":2532,"author":{"gitId":"-"},"content":" \"version\": \"4.17.15\",","isFullCredit":false},{"lineNumber":2533,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2534,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2535,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2536,"author":{"gitId":"-"},"content":" \"@types/body-parser\": \"*\",","isFullCredit":false},{"lineNumber":2537,"author":{"gitId":"-"},"content":" \"@types/express-serve-static-core\": \"^4.17.31\",","isFullCredit":false},{"lineNumber":2538,"author":{"gitId":"-"},"content":" \"@types/qs\": \"*\",","isFullCredit":false},{"lineNumber":2539,"author":{"gitId":"-"},"content":" \"@types/serve-static\": \"*\"","isFullCredit":false},{"lineNumber":2540,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2541,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2542,"author":{"gitId":"-"},"content":" \"node_modules/@types/express-serve-static-core\": {","isFullCredit":false},{"lineNumber":2543,"author":{"gitId":"-"},"content":" \"version\": \"4.17.32\",","isFullCredit":false},{"lineNumber":2544,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2545,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2546,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2547,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\",","isFullCredit":false},{"lineNumber":2548,"author":{"gitId":"-"},"content":" \"@types/qs\": \"*\",","isFullCredit":false},{"lineNumber":2549,"author":{"gitId":"-"},"content":" \"@types/range-parser\": \"*\"","isFullCredit":false},{"lineNumber":2550,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2551,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2552,"author":{"gitId":"-"},"content":" \"node_modules/@types/html-minifier-terser\": {","isFullCredit":false},{"lineNumber":2553,"author":{"gitId":"-"},"content":" \"version\": \"6.1.0\",","isFullCredit":false},{"lineNumber":2554,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2555,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2556,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2557,"author":{"gitId":"-"},"content":" \"node_modules/@types/http-proxy\": {","isFullCredit":false},{"lineNumber":2558,"author":{"gitId":"-"},"content":" \"version\": \"1.17.9\",","isFullCredit":false},{"lineNumber":2559,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2560,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2561,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2562,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\"","isFullCredit":false},{"lineNumber":2563,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2564,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2565,"author":{"gitId":"-"},"content":" \"node_modules/@types/istanbul-lib-coverage\": {","isFullCredit":false},{"lineNumber":2566,"author":{"gitId":"-"},"content":" \"version\": \"2.0.6\",","isFullCredit":false},{"lineNumber":2567,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz\",","isFullCredit":false},{"lineNumber":2568,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w\u003d\u003d\",","isFullCredit":false},{"lineNumber":2569,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2570,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2571,"author":{"gitId":"-"},"content":" \"node_modules/@types/istanbul-lib-report\": {","isFullCredit":false},{"lineNumber":2572,"author":{"gitId":"-"},"content":" \"version\": \"3.0.3\",","isFullCredit":false},{"lineNumber":2573,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz\",","isFullCredit":false},{"lineNumber":2574,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2575,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2576,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2577,"author":{"gitId":"-"},"content":" \"@types/istanbul-lib-coverage\": \"*\"","isFullCredit":false},{"lineNumber":2578,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2579,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2580,"author":{"gitId":"-"},"content":" \"node_modules/@types/istanbul-reports\": {","isFullCredit":false},{"lineNumber":2581,"author":{"gitId":"-"},"content":" \"version\": \"3.0.4\",","isFullCredit":false},{"lineNumber":2582,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz\",","isFullCredit":false},{"lineNumber":2583,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2584,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2585,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2586,"author":{"gitId":"-"},"content":" \"@types/istanbul-lib-report\": \"*\"","isFullCredit":false},{"lineNumber":2587,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2588,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2589,"author":{"gitId":"-"},"content":" \"node_modules/@types/json-schema\": {","isFullCredit":false},{"lineNumber":2590,"author":{"gitId":"-"},"content":" \"version\": \"7.0.15\",","isFullCredit":false},{"lineNumber":2591,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2592,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2593,"author":{"gitId":"-"},"content":" \"node_modules/@types/json5\": {","isFullCredit":false},{"lineNumber":2594,"author":{"gitId":"-"},"content":" \"version\": \"0.0.29\",","isFullCredit":false},{"lineNumber":2595,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2596,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2597,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2598,"author":{"gitId":"-"},"content":" \"node_modules/@types/linkify-it\": {","isFullCredit":false},{"lineNumber":2599,"author":{"gitId":"-"},"content":" \"version\": \"3.0.5\",","isFullCredit":false},{"lineNumber":2600,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2601,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2602,"author":{"gitId":"-"},"content":" \"node_modules/@types/markdown-it\": {","isFullCredit":false},{"lineNumber":2603,"author":{"gitId":"-"},"content":" \"version\": \"13.0.7\",","isFullCredit":false},{"lineNumber":2604,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2605,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2606,"author":{"gitId":"-"},"content":" \"@types/linkify-it\": \"*\",","isFullCredit":false},{"lineNumber":2607,"author":{"gitId":"-"},"content":" \"@types/mdurl\": \"*\"","isFullCredit":false},{"lineNumber":2608,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2609,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2610,"author":{"gitId":"-"},"content":" \"node_modules/@types/mdurl\": {","isFullCredit":false},{"lineNumber":2611,"author":{"gitId":"-"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":2612,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2613,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2614,"author":{"gitId":"-"},"content":" \"node_modules/@types/mime\": {","isFullCredit":false},{"lineNumber":2615,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":2616,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2617,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2618,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2619,"author":{"gitId":"-"},"content":" \"node_modules/@types/minimatch\": {","isFullCredit":false},{"lineNumber":2620,"author":{"gitId":"-"},"content":" \"version\": \"5.1.2\",","isFullCredit":false},{"lineNumber":2621,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2622,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2623,"author":{"gitId":"-"},"content":" \"node_modules/@types/minimist\": {","isFullCredit":false},{"lineNumber":2624,"author":{"gitId":"-"},"content":" \"version\": \"1.2.2\",","isFullCredit":false},{"lineNumber":2625,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2626,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2627,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2628,"author":{"gitId":"-"},"content":" \"node_modules/@types/node\": {","isFullCredit":false},{"lineNumber":2629,"author":{"gitId":"-"},"content":" \"version\": \"18.11.18\",","isFullCredit":false},{"lineNumber":2630,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2631,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2632,"author":{"gitId":"-"},"content":" \"node_modules/@types/normalize-package-data\": {","isFullCredit":false},{"lineNumber":2633,"author":{"gitId":"-"},"content":" \"version\": \"2.4.1\",","isFullCredit":false},{"lineNumber":2634,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2635,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2636,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2637,"author":{"gitId":"-"},"content":" \"node_modules/@types/parse-json\": {","isFullCredit":false},{"lineNumber":2638,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":2639,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2640,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2641,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2642,"author":{"gitId":"-"},"content":" \"node_modules/@types/qs\": {","isFullCredit":false},{"lineNumber":2643,"author":{"gitId":"-"},"content":" \"version\": \"6.9.7\",","isFullCredit":false},{"lineNumber":2644,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2645,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2646,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2647,"author":{"gitId":"-"},"content":" \"node_modules/@types/range-parser\": {","isFullCredit":false},{"lineNumber":2648,"author":{"gitId":"-"},"content":" \"version\": \"1.2.4\",","isFullCredit":false},{"lineNumber":2649,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2650,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2651,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2652,"author":{"gitId":"-"},"content":" \"node_modules/@types/retry\": {","isFullCredit":false},{"lineNumber":2653,"author":{"gitId":"-"},"content":" \"version\": \"0.12.0\",","isFullCredit":false},{"lineNumber":2654,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2655,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2656,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2657,"author":{"gitId":"-"},"content":" \"node_modules/@types/seedrandom\": {","isFullCredit":false},{"lineNumber":2658,"author":{"gitId":"-"},"content":" \"version\": \"3.0.8\",","isFullCredit":false},{"lineNumber":2659,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2660,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2661,"author":{"gitId":"-"},"content":" \"node_modules/@types/semver\": {","isFullCredit":false},{"lineNumber":2662,"author":{"gitId":"-"},"content":" \"version\": \"7.5.8\",","isFullCredit":false},{"lineNumber":2663,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz\",","isFullCredit":false},{"lineNumber":2664,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2665,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2666,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2667,"author":{"gitId":"-"},"content":" \"node_modules/@types/serve-index\": {","isFullCredit":false},{"lineNumber":2668,"author":{"gitId":"-"},"content":" \"version\": \"1.9.1\",","isFullCredit":false},{"lineNumber":2669,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2670,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2671,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2672,"author":{"gitId":"-"},"content":" \"@types/express\": \"*\"","isFullCredit":false},{"lineNumber":2673,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2674,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2675,"author":{"gitId":"-"},"content":" \"node_modules/@types/serve-static\": {","isFullCredit":false},{"lineNumber":2676,"author":{"gitId":"-"},"content":" \"version\": \"1.15.0\",","isFullCredit":false},{"lineNumber":2677,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2678,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2679,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2680,"author":{"gitId":"-"},"content":" \"@types/mime\": \"*\",","isFullCredit":false},{"lineNumber":2681,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\"","isFullCredit":false},{"lineNumber":2682,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2683,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2684,"author":{"gitId":"-"},"content":" \"node_modules/@types/sockjs\": {","isFullCredit":false},{"lineNumber":2685,"author":{"gitId":"-"},"content":" \"version\": \"0.3.33\",","isFullCredit":false},{"lineNumber":2686,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2687,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2688,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2689,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\"","isFullCredit":false},{"lineNumber":2690,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2691,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2692,"author":{"gitId":"-"},"content":" \"node_modules/@types/webpack-env\": {","isFullCredit":false},{"lineNumber":2693,"author":{"gitId":"-"},"content":" \"version\": \"1.18.0\",","isFullCredit":false},{"lineNumber":2694,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2695,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":2696,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2697,"author":{"gitId":"-"},"content":" \"node_modules/@types/ws\": {","isFullCredit":false},{"lineNumber":2698,"author":{"gitId":"-"},"content":" \"version\": \"8.5.4\",","isFullCredit":false},{"lineNumber":2699,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2700,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":2701,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2702,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\"","isFullCredit":false},{"lineNumber":2703,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2704,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2705,"author":{"gitId":"-"},"content":" \"node_modules/@types/yargs\": {","isFullCredit":false},{"lineNumber":2706,"author":{"gitId":"-"},"content":" \"version\": \"17.0.32\",","isFullCredit":false},{"lineNumber":2707,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz\",","isFullCredit":false},{"lineNumber":2708,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog\u003d\u003d\",","isFullCredit":false},{"lineNumber":2709,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2710,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2711,"author":{"gitId":"-"},"content":" \"@types/yargs-parser\": \"*\"","isFullCredit":false},{"lineNumber":2712,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2713,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2714,"author":{"gitId":"-"},"content":" \"node_modules/@types/yargs-parser\": {","isFullCredit":false},{"lineNumber":2715,"author":{"gitId":"-"},"content":" \"version\": \"21.0.3\",","isFullCredit":false},{"lineNumber":2716,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz\",","isFullCredit":false},{"lineNumber":2717,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2718,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2719,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2720,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/eslint-plugin\": {","isFullCredit":false},{"lineNumber":2721,"author":{"gitId":"-"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2722,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":2723,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2724,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2725,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2726,"author":{"gitId":"-"},"content":" \"@eslint-community/regexpp\": \"^4.10.0\",","isFullCredit":false},{"lineNumber":2727,"author":{"gitId":"-"},"content":" \"@typescript-eslint/scope-manager\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2728,"author":{"gitId":"-"},"content":" \"@typescript-eslint/type-utils\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2729,"author":{"gitId":"-"},"content":" \"@typescript-eslint/utils\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2730,"author":{"gitId":"-"},"content":" \"@typescript-eslint/visitor-keys\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2731,"author":{"gitId":"-"},"content":" \"debug\": \"^4.3.4\",","isFullCredit":false},{"lineNumber":2732,"author":{"gitId":"-"},"content":" \"graphemer\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":2733,"author":{"gitId":"-"},"content":" \"ignore\": \"^5.3.1\",","isFullCredit":false},{"lineNumber":2734,"author":{"gitId":"-"},"content":" \"natural-compare\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":2735,"author":{"gitId":"-"},"content":" \"semver\": \"^7.6.0\",","isFullCredit":false},{"lineNumber":2736,"author":{"gitId":"-"},"content":" \"ts-api-utils\": \"^1.3.0\"","isFullCredit":false},{"lineNumber":2737,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2738,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2739,"author":{"gitId":"-"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":2740,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2741,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2742,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":2743,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":2744,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2745,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2746,"author":{"gitId":"-"},"content":" \"@typescript-eslint/parser\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":2747,"author":{"gitId":"-"},"content":" \"eslint\": \"^8.56.0\"","isFullCredit":false},{"lineNumber":2748,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2749,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":2750,"author":{"gitId":"-"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":2751,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":2752,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2753,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2754,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2755,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils\": {","isFullCredit":false},{"lineNumber":2756,"author":{"gitId":"-"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2757,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":2758,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig\u003d\u003d\",","isFullCredit":false},{"lineNumber":2759,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2760,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2761,"author":{"gitId":"-"},"content":" \"@eslint-community/eslint-utils\": \"^4.4.0\",","isFullCredit":false},{"lineNumber":2762,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.15\",","isFullCredit":false},{"lineNumber":2763,"author":{"gitId":"-"},"content":" \"@types/semver\": \"^7.5.8\",","isFullCredit":false},{"lineNumber":2764,"author":{"gitId":"-"},"content":" \"@typescript-eslint/scope-manager\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2765,"author":{"gitId":"-"},"content":" \"@typescript-eslint/types\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2766,"author":{"gitId":"-"},"content":" \"@typescript-eslint/typescript-estree\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2767,"author":{"gitId":"-"},"content":" \"semver\": \"^7.6.0\"","isFullCredit":false},{"lineNumber":2768,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2769,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2770,"author":{"gitId":"-"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":2771,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2772,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2773,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":2774,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":2775,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2776,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2777,"author":{"gitId":"-"},"content":" \"eslint\": \"^8.56.0\"","isFullCredit":false},{"lineNumber":2778,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2779,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2780,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":2781,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":2782,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":2783,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2784,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2785,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2786,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":2787,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2788,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2789,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":2790,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2791,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2792,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/eslint-plugin/node_modules/semver\": {","isFullCredit":false},{"lineNumber":2793,"author":{"gitId":"-"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":2794,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.6.0.tgz\",","isFullCredit":false},{"lineNumber":2795,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2796,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2797,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2798,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":2799,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2800,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":2801,"author":{"gitId":"-"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":2802,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2803,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2804,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":2805,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2806,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2807,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":2808,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":2809,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":2810,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":2811,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2812,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2813,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/parser\": {","isFullCredit":false},{"lineNumber":2814,"author":{"gitId":"-"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2815,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":2816,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2817,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2818,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2819,"author":{"gitId":"-"},"content":" \"@typescript-eslint/scope-manager\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2820,"author":{"gitId":"-"},"content":" \"@typescript-eslint/types\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2821,"author":{"gitId":"-"},"content":" \"@typescript-eslint/typescript-estree\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2822,"author":{"gitId":"-"},"content":" \"@typescript-eslint/visitor-keys\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2823,"author":{"gitId":"-"},"content":" \"debug\": \"^4.3.4\"","isFullCredit":false},{"lineNumber":2824,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2825,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2826,"author":{"gitId":"-"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":2827,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2828,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2829,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":2830,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":2831,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2832,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2833,"author":{"gitId":"-"},"content":" \"eslint\": \"^8.56.0\"","isFullCredit":false},{"lineNumber":2834,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2835,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":2836,"author":{"gitId":"-"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":2837,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":2838,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2839,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2840,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2841,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/scope-manager\": {","isFullCredit":false},{"lineNumber":2842,"author":{"gitId":"-"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2843,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":2844,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw\u003d\u003d\",","isFullCredit":false},{"lineNumber":2845,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2846,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2847,"author":{"gitId":"-"},"content":" \"@typescript-eslint/types\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2848,"author":{"gitId":"-"},"content":" \"@typescript-eslint/visitor-keys\": \"7.7.0\"","isFullCredit":false},{"lineNumber":2849,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2850,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2851,"author":{"gitId":"-"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":2852,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2853,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2854,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":2855,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":2856,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2857,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2858,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/type-utils\": {","isFullCredit":false},{"lineNumber":2859,"author":{"gitId":"-"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2860,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":2861,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2862,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2863,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2864,"author":{"gitId":"-"},"content":" \"@typescript-eslint/typescript-estree\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2865,"author":{"gitId":"-"},"content":" \"@typescript-eslint/utils\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2866,"author":{"gitId":"-"},"content":" \"debug\": \"^4.3.4\",","isFullCredit":false},{"lineNumber":2867,"author":{"gitId":"-"},"content":" \"ts-api-utils\": \"^1.3.0\"","isFullCredit":false},{"lineNumber":2868,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2869,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2870,"author":{"gitId":"-"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":2871,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2872,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2873,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":2874,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":2875,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2876,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2877,"author":{"gitId":"-"},"content":" \"eslint\": \"^8.56.0\"","isFullCredit":false},{"lineNumber":2878,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2879,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":2880,"author":{"gitId":"-"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":2881,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":2882,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2883,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2884,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2885,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils\": {","isFullCredit":false},{"lineNumber":2886,"author":{"gitId":"-"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2887,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":2888,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig\u003d\u003d\",","isFullCredit":false},{"lineNumber":2889,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2890,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2891,"author":{"gitId":"-"},"content":" \"@eslint-community/eslint-utils\": \"^4.4.0\",","isFullCredit":false},{"lineNumber":2892,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.15\",","isFullCredit":false},{"lineNumber":2893,"author":{"gitId":"-"},"content":" \"@types/semver\": \"^7.5.8\",","isFullCredit":false},{"lineNumber":2894,"author":{"gitId":"-"},"content":" \"@typescript-eslint/scope-manager\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2895,"author":{"gitId":"-"},"content":" \"@typescript-eslint/types\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2896,"author":{"gitId":"-"},"content":" \"@typescript-eslint/typescript-estree\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2897,"author":{"gitId":"-"},"content":" \"semver\": \"^7.6.0\"","isFullCredit":false},{"lineNumber":2898,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2899,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2900,"author":{"gitId":"-"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":2901,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2902,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2903,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":2904,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":2905,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2906,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":2907,"author":{"gitId":"-"},"content":" \"eslint\": \"^8.56.0\"","isFullCredit":false},{"lineNumber":2908,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2909,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2910,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/type-utils/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":2911,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":2912,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":2913,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2914,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2915,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2916,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":2917,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2918,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2919,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":2920,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2921,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2922,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/type-utils/node_modules/semver\": {","isFullCredit":false},{"lineNumber":2923,"author":{"gitId":"-"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":2924,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.6.0.tgz\",","isFullCredit":false},{"lineNumber":2925,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":2926,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2927,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2928,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":2929,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2930,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":2931,"author":{"gitId":"-"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":2932,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2933,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2934,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":2935,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2936,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2937,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/type-utils/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":2938,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":2939,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":2940,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":2941,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":2942,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2943,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/types\": {","isFullCredit":false},{"lineNumber":2944,"author":{"gitId":"-"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2945,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":2946,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w\u003d\u003d\",","isFullCredit":false},{"lineNumber":2947,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2948,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2949,"author":{"gitId":"-"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":2950,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2951,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2952,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":2953,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":2954,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2955,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2956,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/typescript-estree\": {","isFullCredit":false},{"lineNumber":2957,"author":{"gitId":"-"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2958,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":2959,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":2960,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2961,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2962,"author":{"gitId":"-"},"content":" \"@typescript-eslint/types\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2963,"author":{"gitId":"-"},"content":" \"@typescript-eslint/visitor-keys\": \"7.7.0\",","isFullCredit":false},{"lineNumber":2964,"author":{"gitId":"-"},"content":" \"debug\": \"^4.3.4\",","isFullCredit":false},{"lineNumber":2965,"author":{"gitId":"-"},"content":" \"globby\": \"^11.1.0\",","isFullCredit":false},{"lineNumber":2966,"author":{"gitId":"-"},"content":" \"is-glob\": \"^4.0.3\",","isFullCredit":false},{"lineNumber":2967,"author":{"gitId":"-"},"content":" \"minimatch\": \"^9.0.4\",","isFullCredit":false},{"lineNumber":2968,"author":{"gitId":"-"},"content":" \"semver\": \"^7.6.0\",","isFullCredit":false},{"lineNumber":2969,"author":{"gitId":"-"},"content":" \"ts-api-utils\": \"^1.3.0\"","isFullCredit":false},{"lineNumber":2970,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2971,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2972,"author":{"gitId":"-"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":2973,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2974,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":2975,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":2976,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":2977,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2978,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":2979,"author":{"gitId":"-"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":2980,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":2981,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2982,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2983,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2984,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":2985,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":2986,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":2987,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":2988,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":2989,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":2990,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":2991,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2992,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":2993,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":2994,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":2995,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":2996,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/typescript-estree/node_modules/semver\": {","isFullCredit":false},{"lineNumber":2997,"author":{"gitId":"-"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":2998,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.6.0.tgz\",","isFullCredit":false},{"lineNumber":2999,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3000,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3001,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3002,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":3003,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3004,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":3005,"author":{"gitId":"-"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":3006,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3007,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3008,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":3009,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3010,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3011,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/typescript-estree/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":3012,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":3013,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":3014,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":3015,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3016,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3017,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/utils\": {","isFullCredit":false},{"lineNumber":3018,"author":{"gitId":"-"},"content":" \"version\": \"6.21.0\",","isFullCredit":false},{"lineNumber":3019,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz\",","isFullCredit":false},{"lineNumber":3020,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3021,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3022,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3023,"author":{"gitId":"-"},"content":" \"@eslint-community/eslint-utils\": \"^4.4.0\",","isFullCredit":false},{"lineNumber":3024,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.12\",","isFullCredit":false},{"lineNumber":3025,"author":{"gitId":"-"},"content":" \"@types/semver\": \"^7.5.0\",","isFullCredit":false},{"lineNumber":3026,"author":{"gitId":"-"},"content":" \"@typescript-eslint/scope-manager\": \"6.21.0\",","isFullCredit":false},{"lineNumber":3027,"author":{"gitId":"-"},"content":" \"@typescript-eslint/types\": \"6.21.0\",","isFullCredit":false},{"lineNumber":3028,"author":{"gitId":"-"},"content":" \"@typescript-eslint/typescript-estree\": \"6.21.0\",","isFullCredit":false},{"lineNumber":3029,"author":{"gitId":"-"},"content":" \"semver\": \"^7.5.4\"","isFullCredit":false},{"lineNumber":3030,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3031,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3032,"author":{"gitId":"-"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":3033,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3034,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3035,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":3036,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":3037,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3038,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3039,"author":{"gitId":"-"},"content":" \"eslint\": \"^7.0.0 || ^8.0.0\"","isFullCredit":false},{"lineNumber":3040,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3041,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3042,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager\": {","isFullCredit":false},{"lineNumber":3043,"author":{"gitId":"-"},"content":" \"version\": \"6.21.0\",","isFullCredit":false},{"lineNumber":3044,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz\",","isFullCredit":false},{"lineNumber":3045,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3046,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3047,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3048,"author":{"gitId":"-"},"content":" \"@typescript-eslint/types\": \"6.21.0\",","isFullCredit":false},{"lineNumber":3049,"author":{"gitId":"-"},"content":" \"@typescript-eslint/visitor-keys\": \"6.21.0\"","isFullCredit":false},{"lineNumber":3050,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3051,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3052,"author":{"gitId":"-"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":3053,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3054,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3055,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":3056,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":3057,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3058,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3059,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types\": {","isFullCredit":false},{"lineNumber":3060,"author":{"gitId":"-"},"content":" \"version\": \"6.21.0\",","isFullCredit":false},{"lineNumber":3061,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz\",","isFullCredit":false},{"lineNumber":3062,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3063,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3064,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3065,"author":{"gitId":"-"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":3066,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3067,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3068,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":3069,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":3070,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3071,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3072,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree\": {","isFullCredit":false},{"lineNumber":3073,"author":{"gitId":"-"},"content":" \"version\": \"6.21.0\",","isFullCredit":false},{"lineNumber":3074,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz\",","isFullCredit":false},{"lineNumber":3075,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":3076,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3077,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3078,"author":{"gitId":"-"},"content":" \"@typescript-eslint/types\": \"6.21.0\",","isFullCredit":false},{"lineNumber":3079,"author":{"gitId":"-"},"content":" \"@typescript-eslint/visitor-keys\": \"6.21.0\",","isFullCredit":false},{"lineNumber":3080,"author":{"gitId":"-"},"content":" \"debug\": \"^4.3.4\",","isFullCredit":false},{"lineNumber":3081,"author":{"gitId":"-"},"content":" \"globby\": \"^11.1.0\",","isFullCredit":false},{"lineNumber":3082,"author":{"gitId":"-"},"content":" \"is-glob\": \"^4.0.3\",","isFullCredit":false},{"lineNumber":3083,"author":{"gitId":"-"},"content":" \"minimatch\": \"9.0.3\",","isFullCredit":false},{"lineNumber":3084,"author":{"gitId":"-"},"content":" \"semver\": \"^7.5.4\",","isFullCredit":false},{"lineNumber":3085,"author":{"gitId":"-"},"content":" \"ts-api-utils\": \"^1.0.1\"","isFullCredit":false},{"lineNumber":3086,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3087,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3088,"author":{"gitId":"-"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":3089,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3090,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3091,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":3092,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":3093,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3094,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":3095,"author":{"gitId":"-"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":3096,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3097,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3098,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3099,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3100,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys\": {","isFullCredit":false},{"lineNumber":3101,"author":{"gitId":"-"},"content":" \"version\": \"6.21.0\",","isFullCredit":false},{"lineNumber":3102,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz\",","isFullCredit":false},{"lineNumber":3103,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A\u003d\u003d\",","isFullCredit":false},{"lineNumber":3104,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3105,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3106,"author":{"gitId":"-"},"content":" \"@typescript-eslint/types\": \"6.21.0\",","isFullCredit":false},{"lineNumber":3107,"author":{"gitId":"-"},"content":" \"eslint-visitor-keys\": \"^3.4.1\"","isFullCredit":false},{"lineNumber":3108,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3109,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3110,"author":{"gitId":"-"},"content":" \"node\": \"^16.0.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":3111,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3112,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3113,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":3114,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":3115,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3116,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3117,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys\": {","isFullCredit":false},{"lineNumber":3118,"author":{"gitId":"-"},"content":" \"version\": \"3.4.3\",","isFullCredit":false},{"lineNumber":3119,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz\",","isFullCredit":false},{"lineNumber":3120,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag\u003d\u003d\",","isFullCredit":false},{"lineNumber":3121,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3122,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3123,"author":{"gitId":"-"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":3124,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3125,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3126,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":3127,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3128,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3129,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":3130,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":3131,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":3132,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3133,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3134,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3135,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":3136,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3137,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3138,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":3139,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3140,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3141,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":3142,"author":{"gitId":"-"},"content":" \"version\": \"9.0.3\",","isFullCredit":false},{"lineNumber":3143,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz\",","isFullCredit":false},{"lineNumber":3144,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3145,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3146,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3147,"author":{"gitId":"-"},"content":" \"brace-expansion\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":3148,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3149,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3150,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d16 || 14 \u003e\u003d14.17\"","isFullCredit":false},{"lineNumber":3151,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3152,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3153,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/isaacs\"","isFullCredit":false},{"lineNumber":3154,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3155,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3156,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/semver\": {","isFullCredit":false},{"lineNumber":3157,"author":{"gitId":"-"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":3158,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.6.0.tgz\",","isFullCredit":false},{"lineNumber":3159,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3160,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3161,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3162,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":3163,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3164,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":3165,"author":{"gitId":"-"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":3166,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3167,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3168,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":3169,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3170,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3171,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/utils/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":3172,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":3173,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":3174,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":3175,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":3176,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3177,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/visitor-keys\": {","isFullCredit":false},{"lineNumber":3178,"author":{"gitId":"-"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":3179,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":3180,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA\u003d\u003d\",","isFullCredit":false},{"lineNumber":3181,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3182,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3183,"author":{"gitId":"-"},"content":" \"@typescript-eslint/types\": \"7.7.0\",","isFullCredit":false},{"lineNumber":3184,"author":{"gitId":"-"},"content":" \"eslint-visitor-keys\": \"^3.4.3\"","isFullCredit":false},{"lineNumber":3185,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3186,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3187,"author":{"gitId":"-"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":3188,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3189,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3190,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":3191,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":3192,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3193,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3194,"author":{"gitId":"-"},"content":" \"node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys\": {","isFullCredit":false},{"lineNumber":3195,"author":{"gitId":"-"},"content":" \"version\": \"3.4.3\",","isFullCredit":false},{"lineNumber":3196,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz\",","isFullCredit":false},{"lineNumber":3197,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag\u003d\u003d\",","isFullCredit":false},{"lineNumber":3198,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3199,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3200,"author":{"gitId":"-"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":3201,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3202,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3203,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":3204,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3205,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3206,"author":{"gitId":"-"},"content":" \"node_modules/@ungap/structured-clone\": {","isFullCredit":false},{"lineNumber":3207,"author":{"gitId":"-"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":3208,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3209,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":3210,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3211,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-helper-vue-jsx-merge-props\": {","isFullCredit":false},{"lineNumber":3212,"author":{"gitId":"-"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":3213,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3214,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3215,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3216,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-helper-vue-transform-on\": {","isFullCredit":false},{"lineNumber":3217,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":3218,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3219,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3220,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3221,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-plugin-jsx\": {","isFullCredit":false},{"lineNumber":3222,"author":{"gitId":"-"},"content":" \"version\": \"1.1.1\",","isFullCredit":false},{"lineNumber":3223,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3224,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3225,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3226,"author":{"gitId":"-"},"content":" \"@babel/helper-module-imports\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":3227,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-jsx\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":3228,"author":{"gitId":"-"},"content":" \"@babel/template\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":3229,"author":{"gitId":"-"},"content":" \"@babel/traverse\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":3230,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":3231,"author":{"gitId":"-"},"content":" \"@vue/babel-helper-vue-transform-on\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":3232,"author":{"gitId":"-"},"content":" \"camelcase\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":3233,"author":{"gitId":"-"},"content":" \"html-tags\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":3234,"author":{"gitId":"-"},"content":" \"svg-tags\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":3235,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3236,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3237,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-plugin-transform-vue-jsx\": {","isFullCredit":false},{"lineNumber":3238,"author":{"gitId":"-"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":3239,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3240,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3241,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3242,"author":{"gitId":"-"},"content":" \"@babel/helper-module-imports\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":3243,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-jsx\": \"^7.2.0\",","isFullCredit":false},{"lineNumber":3244,"author":{"gitId":"-"},"content":" \"@vue/babel-helper-vue-jsx-merge-props\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":3245,"author":{"gitId":"-"},"content":" \"html-tags\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":3246,"author":{"gitId":"-"},"content":" \"lodash.kebabcase\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":3247,"author":{"gitId":"-"},"content":" \"svg-tags\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":3248,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3249,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3250,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":3251,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3252,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3253,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-plugin-transform-vue-jsx/node_modules/html-tags\": {","isFullCredit":false},{"lineNumber":3254,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":3255,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3256,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3257,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3258,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":3259,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3260,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3261,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-preset-app\": {","isFullCredit":false},{"lineNumber":3262,"author":{"gitId":"-"},"content":" \"version\": \"5.0.8\",","isFullCredit":false},{"lineNumber":3263,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3264,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3265,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3266,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.12.16\",","isFullCredit":false},{"lineNumber":3267,"author":{"gitId":"-"},"content":" \"@babel/helper-compilation-targets\": \"^7.12.16\",","isFullCredit":false},{"lineNumber":3268,"author":{"gitId":"-"},"content":" \"@babel/helper-module-imports\": \"^7.12.13\",","isFullCredit":false},{"lineNumber":3269,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-class-properties\": \"^7.12.13\",","isFullCredit":false},{"lineNumber":3270,"author":{"gitId":"-"},"content":" \"@babel/plugin-proposal-decorators\": \"^7.12.13\",","isFullCredit":false},{"lineNumber":3271,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-dynamic-import\": \"^7.8.3\",","isFullCredit":false},{"lineNumber":3272,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-jsx\": \"^7.12.13\",","isFullCredit":false},{"lineNumber":3273,"author":{"gitId":"-"},"content":" \"@babel/plugin-transform-runtime\": \"^7.12.15\",","isFullCredit":false},{"lineNumber":3274,"author":{"gitId":"-"},"content":" \"@babel/preset-env\": \"^7.12.16\",","isFullCredit":false},{"lineNumber":3275,"author":{"gitId":"-"},"content":" \"@babel/runtime\": \"^7.12.13\",","isFullCredit":false},{"lineNumber":3276,"author":{"gitId":"-"},"content":" \"@vue/babel-plugin-jsx\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":3277,"author":{"gitId":"-"},"content":" \"@vue/babel-preset-jsx\": \"^1.1.2\",","isFullCredit":false},{"lineNumber":3278,"author":{"gitId":"-"},"content":" \"babel-plugin-dynamic-import-node\": \"^2.3.3\",","isFullCredit":false},{"lineNumber":3279,"author":{"gitId":"-"},"content":" \"core-js\": \"^3.8.3\",","isFullCredit":false},{"lineNumber":3280,"author":{"gitId":"-"},"content":" \"core-js-compat\": \"^3.8.3\",","isFullCredit":false},{"lineNumber":3281,"author":{"gitId":"-"},"content":" \"semver\": \"^7.3.4\"","isFullCredit":false},{"lineNumber":3282,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3283,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3284,"author":{"gitId":"-"},"content":" \"@babel/core\": \"*\",","isFullCredit":false},{"lineNumber":3285,"author":{"gitId":"-"},"content":" \"core-js\": \"^3\",","isFullCredit":false},{"lineNumber":3286,"author":{"gitId":"-"},"content":" \"vue\": \"^2 || ^3.2.13\"","isFullCredit":false},{"lineNumber":3287,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3288,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":3289,"author":{"gitId":"-"},"content":" \"core-js\": {","isFullCredit":false},{"lineNumber":3290,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3291,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3292,"author":{"gitId":"-"},"content":" \"vue\": {","isFullCredit":false},{"lineNumber":3293,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3294,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3295,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3296,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3297,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-preset-app/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":3298,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":3299,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3300,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":3301,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3302,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":3303,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3304,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3305,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":3306,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3307,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3308,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-preset-app/node_modules/semver\": {","isFullCredit":false},{"lineNumber":3309,"author":{"gitId":"-"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":3310,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3311,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":3312,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3313,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":3314,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3315,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":3316,"author":{"gitId":"-"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":3317,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3318,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3319,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":3320,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3321,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3322,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-preset-app/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":3323,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":3324,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3325,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":3326,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3327,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-preset-jsx\": {","isFullCredit":false},{"lineNumber":3328,"author":{"gitId":"-"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":3329,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3330,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3331,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3332,"author":{"gitId":"-"},"content":" \"@vue/babel-helper-vue-jsx-merge-props\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":3333,"author":{"gitId":"-"},"content":" \"@vue/babel-plugin-transform-vue-jsx\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":3334,"author":{"gitId":"-"},"content":" \"@vue/babel-sugar-composition-api-inject-h\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":3335,"author":{"gitId":"-"},"content":" \"@vue/babel-sugar-composition-api-render-instance\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":3336,"author":{"gitId":"-"},"content":" \"@vue/babel-sugar-functional-vue\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":3337,"author":{"gitId":"-"},"content":" \"@vue/babel-sugar-inject-h\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":3338,"author":{"gitId":"-"},"content":" \"@vue/babel-sugar-v-model\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":3339,"author":{"gitId":"-"},"content":" \"@vue/babel-sugar-v-on\": \"^1.4.0\"","isFullCredit":false},{"lineNumber":3340,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3341,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3342,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\",","isFullCredit":false},{"lineNumber":3343,"author":{"gitId":"-"},"content":" \"vue\": \"*\"","isFullCredit":false},{"lineNumber":3344,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3345,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":3346,"author":{"gitId":"-"},"content":" \"vue\": {","isFullCredit":false},{"lineNumber":3347,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3348,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3349,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3350,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3351,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-sugar-composition-api-inject-h\": {","isFullCredit":false},{"lineNumber":3352,"author":{"gitId":"-"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":3353,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3354,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3355,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3356,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-jsx\": \"^7.2.0\"","isFullCredit":false},{"lineNumber":3357,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3358,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3359,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":3360,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3361,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3362,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-sugar-composition-api-render-instance\": {","isFullCredit":false},{"lineNumber":3363,"author":{"gitId":"-"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":3364,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3365,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3366,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3367,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-jsx\": \"^7.2.0\"","isFullCredit":false},{"lineNumber":3368,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3369,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3370,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":3371,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3372,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3373,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-sugar-functional-vue\": {","isFullCredit":false},{"lineNumber":3374,"author":{"gitId":"-"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":3375,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3376,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3377,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3378,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-jsx\": \"^7.2.0\"","isFullCredit":false},{"lineNumber":3379,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3380,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3381,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":3382,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3383,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3384,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-sugar-inject-h\": {","isFullCredit":false},{"lineNumber":3385,"author":{"gitId":"-"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":3386,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3387,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3388,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3389,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-jsx\": \"^7.2.0\"","isFullCredit":false},{"lineNumber":3390,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3391,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3392,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":3393,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3394,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3395,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-sugar-v-model\": {","isFullCredit":false},{"lineNumber":3396,"author":{"gitId":"-"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":3397,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3398,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3399,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3400,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-jsx\": \"^7.2.0\",","isFullCredit":false},{"lineNumber":3401,"author":{"gitId":"-"},"content":" \"@vue/babel-helper-vue-jsx-merge-props\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":3402,"author":{"gitId":"-"},"content":" \"@vue/babel-plugin-transform-vue-jsx\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":3403,"author":{"gitId":"-"},"content":" \"camelcase\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":3404,"author":{"gitId":"-"},"content":" \"html-tags\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":3405,"author":{"gitId":"-"},"content":" \"svg-tags\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":3406,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3407,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3408,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":3409,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3410,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3411,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-sugar-v-model/node_modules/camelcase\": {","isFullCredit":false},{"lineNumber":3412,"author":{"gitId":"-"},"content":" \"version\": \"5.3.1\",","isFullCredit":false},{"lineNumber":3413,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3414,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3415,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3416,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":3417,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3418,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3419,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-sugar-v-model/node_modules/html-tags\": {","isFullCredit":false},{"lineNumber":3420,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":3421,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3422,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3423,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3424,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":3425,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3426,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3427,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-sugar-v-on\": {","isFullCredit":false},{"lineNumber":3428,"author":{"gitId":"-"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":3429,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3430,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3431,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3432,"author":{"gitId":"-"},"content":" \"@babel/plugin-syntax-jsx\": \"^7.2.0\",","isFullCredit":false},{"lineNumber":3433,"author":{"gitId":"-"},"content":" \"@vue/babel-plugin-transform-vue-jsx\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":3434,"author":{"gitId":"-"},"content":" \"camelcase\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":3435,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3436,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3437,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":3438,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3439,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3440,"author":{"gitId":"-"},"content":" \"node_modules/@vue/babel-sugar-v-on/node_modules/camelcase\": {","isFullCredit":false},{"lineNumber":3441,"author":{"gitId":"-"},"content":" \"version\": \"5.3.1\",","isFullCredit":false},{"lineNumber":3442,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3443,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3444,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3445,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":3446,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3447,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3448,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-overlay\": {","isFullCredit":false},{"lineNumber":3449,"author":{"gitId":"-"},"content":" \"version\": \"5.0.8\",","isFullCredit":false},{"lineNumber":3450,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3451,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3452,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3453,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-plugin-babel\": {","isFullCredit":false},{"lineNumber":3454,"author":{"gitId":"-"},"content":" \"version\": \"5.0.8\",","isFullCredit":false},{"lineNumber":3455,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3456,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3457,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3458,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.12.16\",","isFullCredit":false},{"lineNumber":3459,"author":{"gitId":"-"},"content":" \"@vue/babel-preset-app\": \"^5.0.8\",","isFullCredit":false},{"lineNumber":3460,"author":{"gitId":"-"},"content":" \"@vue/cli-shared-utils\": \"^5.0.8\",","isFullCredit":false},{"lineNumber":3461,"author":{"gitId":"-"},"content":" \"babel-loader\": \"^8.2.2\",","isFullCredit":false},{"lineNumber":3462,"author":{"gitId":"-"},"content":" \"thread-loader\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":3463,"author":{"gitId":"-"},"content":" \"webpack\": \"^5.54.0\"","isFullCredit":false},{"lineNumber":3464,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3465,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3466,"author":{"gitId":"-"},"content":" \"@vue/cli-service\": \"^3.0.0 || ^4.0.0 || ^5.0.0-0\"","isFullCredit":false},{"lineNumber":3467,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3468,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3469,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-plugin-eslint\": {","isFullCredit":false},{"lineNumber":3470,"author":{"gitId":"-"},"content":" \"version\": \"5.0.8\",","isFullCredit":false},{"lineNumber":3471,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3472,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3473,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3474,"author":{"gitId":"-"},"content":" \"@vue/cli-shared-utils\": \"^5.0.8\",","isFullCredit":false},{"lineNumber":3475,"author":{"gitId":"-"},"content":" \"eslint-webpack-plugin\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":3476,"author":{"gitId":"-"},"content":" \"globby\": \"^11.0.2\",","isFullCredit":false},{"lineNumber":3477,"author":{"gitId":"-"},"content":" \"webpack\": \"^5.54.0\",","isFullCredit":false},{"lineNumber":3478,"author":{"gitId":"-"},"content":" \"yorkie\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":3479,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3480,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3481,"author":{"gitId":"-"},"content":" \"@vue/cli-service\": \"^3.0.0 || ^4.0.0 || ^5.0.0-0\",","isFullCredit":false},{"lineNumber":3482,"author":{"gitId":"-"},"content":" \"eslint\": \"\u003e\u003d7.5.0\"","isFullCredit":false},{"lineNumber":3483,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3484,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3485,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-plugin-router\": {","isFullCredit":false},{"lineNumber":3486,"author":{"gitId":"-"},"content":" \"version\": \"5.0.8\",","isFullCredit":false},{"lineNumber":3487,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3488,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3489,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3490,"author":{"gitId":"-"},"content":" \"@vue/cli-shared-utils\": \"^5.0.8\"","isFullCredit":false},{"lineNumber":3491,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3492,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3493,"author":{"gitId":"-"},"content":" \"@vue/cli-service\": \"^3.0.0 || ^4.0.0 || ^5.0.0-0\"","isFullCredit":false},{"lineNumber":3494,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3495,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3496,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-plugin-typescript\": {","isFullCredit":false},{"lineNumber":3497,"author":{"gitId":"-"},"content":" \"version\": \"5.0.8\",","isFullCredit":false},{"lineNumber":3498,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3499,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3500,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3501,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.12.16\",","isFullCredit":false},{"lineNumber":3502,"author":{"gitId":"-"},"content":" \"@types/webpack-env\": \"^1.15.2\",","isFullCredit":false},{"lineNumber":3503,"author":{"gitId":"-"},"content":" \"@vue/cli-shared-utils\": \"^5.0.8\",","isFullCredit":false},{"lineNumber":3504,"author":{"gitId":"-"},"content":" \"babel-loader\": \"^8.2.2\",","isFullCredit":false},{"lineNumber":3505,"author":{"gitId":"-"},"content":" \"fork-ts-checker-webpack-plugin\": \"^6.4.0\",","isFullCredit":false},{"lineNumber":3506,"author":{"gitId":"-"},"content":" \"globby\": \"^11.0.2\",","isFullCredit":false},{"lineNumber":3507,"author":{"gitId":"-"},"content":" \"thread-loader\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":3508,"author":{"gitId":"-"},"content":" \"ts-loader\": \"^9.2.5\",","isFullCredit":false},{"lineNumber":3509,"author":{"gitId":"-"},"content":" \"webpack\": \"^5.54.0\"","isFullCredit":false},{"lineNumber":3510,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3511,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3512,"author":{"gitId":"-"},"content":" \"@vue/cli-service\": \"^3.0.0 || ^4.0.0 || ^5.0.0-0\",","isFullCredit":false},{"lineNumber":3513,"author":{"gitId":"-"},"content":" \"cache-loader\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":3514,"author":{"gitId":"-"},"content":" \"typescript\": \"\u003e\u003d2\",","isFullCredit":false},{"lineNumber":3515,"author":{"gitId":"-"},"content":" \"vue\": \"^2 || ^3.2.13\",","isFullCredit":false},{"lineNumber":3516,"author":{"gitId":"-"},"content":" \"vue-template-compiler\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":3517,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3518,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":3519,"author":{"gitId":"-"},"content":" \"cache-loader\": {","isFullCredit":false},{"lineNumber":3520,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3521,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3522,"author":{"gitId":"-"},"content":" \"vue-template-compiler\": {","isFullCredit":false},{"lineNumber":3523,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3524,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3525,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3526,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3527,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-plugin-vuex\": {","isFullCredit":false},{"lineNumber":3528,"author":{"gitId":"-"},"content":" \"version\": \"5.0.8\",","isFullCredit":false},{"lineNumber":3529,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3530,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3531,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3532,"author":{"gitId":"-"},"content":" \"@vue/cli-service\": \"^3.0.0 || ^4.0.0 || ^5.0.0-0\"","isFullCredit":false},{"lineNumber":3533,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3534,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3535,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-service\": {","isFullCredit":false},{"lineNumber":3536,"author":{"gitId":"-"},"content":" \"version\": \"5.0.8\",","isFullCredit":false},{"lineNumber":3537,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3538,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3539,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3540,"author":{"gitId":"-"},"content":" \"@babel/helper-compilation-targets\": \"^7.12.16\",","isFullCredit":false},{"lineNumber":3541,"author":{"gitId":"-"},"content":" \"@soda/friendly-errors-webpack-plugin\": \"^1.8.0\",","isFullCredit":false},{"lineNumber":3542,"author":{"gitId":"-"},"content":" \"@soda/get-current-script\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":3543,"author":{"gitId":"-"},"content":" \"@types/minimist\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":3544,"author":{"gitId":"-"},"content":" \"@vue/cli-overlay\": \"^5.0.8\",","isFullCredit":false},{"lineNumber":3545,"author":{"gitId":"-"},"content":" \"@vue/cli-plugin-router\": \"^5.0.8\",","isFullCredit":false},{"lineNumber":3546,"author":{"gitId":"-"},"content":" \"@vue/cli-plugin-vuex\": \"^5.0.8\",","isFullCredit":false},{"lineNumber":3547,"author":{"gitId":"-"},"content":" \"@vue/cli-shared-utils\": \"^5.0.8\",","isFullCredit":false},{"lineNumber":3548,"author":{"gitId":"-"},"content":" \"@vue/component-compiler-utils\": \"^3.3.0\",","isFullCredit":false},{"lineNumber":3549,"author":{"gitId":"-"},"content":" \"@vue/vue-loader-v15\": \"npm:vue-loader@^15.9.7\",","isFullCredit":false},{"lineNumber":3550,"author":{"gitId":"-"},"content":" \"@vue/web-component-wrapper\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":3551,"author":{"gitId":"-"},"content":" \"acorn\": \"^8.0.5\",","isFullCredit":false},{"lineNumber":3552,"author":{"gitId":"-"},"content":" \"acorn-walk\": \"^8.0.2\",","isFullCredit":false},{"lineNumber":3553,"author":{"gitId":"-"},"content":" \"address\": \"^1.1.2\",","isFullCredit":false},{"lineNumber":3554,"author":{"gitId":"-"},"content":" \"autoprefixer\": \"^10.2.4\",","isFullCredit":false},{"lineNumber":3555,"author":{"gitId":"-"},"content":" \"browserslist\": \"^4.16.3\",","isFullCredit":false},{"lineNumber":3556,"author":{"gitId":"-"},"content":" \"case-sensitive-paths-webpack-plugin\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":3557,"author":{"gitId":"-"},"content":" \"cli-highlight\": \"^2.1.10\",","isFullCredit":false},{"lineNumber":3558,"author":{"gitId":"-"},"content":" \"clipboardy\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":3559,"author":{"gitId":"-"},"content":" \"cliui\": \"^7.0.4\",","isFullCredit":false},{"lineNumber":3560,"author":{"gitId":"-"},"content":" \"copy-webpack-plugin\": \"^9.0.1\",","isFullCredit":false},{"lineNumber":3561,"author":{"gitId":"-"},"content":" \"css-loader\": \"^6.5.0\",","isFullCredit":false},{"lineNumber":3562,"author":{"gitId":"-"},"content":" \"css-minimizer-webpack-plugin\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":3563,"author":{"gitId":"-"},"content":" \"cssnano\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":3564,"author":{"gitId":"-"},"content":" \"debug\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":3565,"author":{"gitId":"-"},"content":" \"default-gateway\": \"^6.0.3\",","isFullCredit":false},{"lineNumber":3566,"author":{"gitId":"-"},"content":" \"dotenv\": \"^10.0.0\",","isFullCredit":false},{"lineNumber":3567,"author":{"gitId":"-"},"content":" \"dotenv-expand\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":3568,"author":{"gitId":"-"},"content":" \"fs-extra\": \"^9.1.0\",","isFullCredit":false},{"lineNumber":3569,"author":{"gitId":"-"},"content":" \"globby\": \"^11.0.2\",","isFullCredit":false},{"lineNumber":3570,"author":{"gitId":"-"},"content":" \"hash-sum\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":3571,"author":{"gitId":"-"},"content":" \"html-webpack-plugin\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":3572,"author":{"gitId":"-"},"content":" \"is-file-esm\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":3573,"author":{"gitId":"-"},"content":" \"launch-editor-middleware\": \"^2.2.1\",","isFullCredit":false},{"lineNumber":3574,"author":{"gitId":"-"},"content":" \"lodash.defaultsdeep\": \"^4.6.1\",","isFullCredit":false},{"lineNumber":3575,"author":{"gitId":"-"},"content":" \"lodash.mapvalues\": \"^4.6.0\",","isFullCredit":false},{"lineNumber":3576,"author":{"gitId":"-"},"content":" \"mini-css-extract-plugin\": \"^2.5.3\",","isFullCredit":false},{"lineNumber":3577,"author":{"gitId":"-"},"content":" \"minimist\": \"^1.2.5\",","isFullCredit":false},{"lineNumber":3578,"author":{"gitId":"-"},"content":" \"module-alias\": \"^2.2.2\",","isFullCredit":false},{"lineNumber":3579,"author":{"gitId":"-"},"content":" \"portfinder\": \"^1.0.26\",","isFullCredit":false},{"lineNumber":3580,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.6\",","isFullCredit":false},{"lineNumber":3581,"author":{"gitId":"-"},"content":" \"postcss-loader\": \"^6.1.1\",","isFullCredit":false},{"lineNumber":3582,"author":{"gitId":"-"},"content":" \"progress-webpack-plugin\": \"^1.0.12\",","isFullCredit":false},{"lineNumber":3583,"author":{"gitId":"-"},"content":" \"ssri\": \"^8.0.1\",","isFullCredit":false},{"lineNumber":3584,"author":{"gitId":"-"},"content":" \"terser-webpack-plugin\": \"^5.1.1\",","isFullCredit":false},{"lineNumber":3585,"author":{"gitId":"-"},"content":" \"thread-loader\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":3586,"author":{"gitId":"-"},"content":" \"vue-loader\": \"^17.0.0\",","isFullCredit":false},{"lineNumber":3587,"author":{"gitId":"-"},"content":" \"vue-style-loader\": \"^4.1.3\",","isFullCredit":false},{"lineNumber":3588,"author":{"gitId":"-"},"content":" \"webpack\": \"^5.54.0\",","isFullCredit":false},{"lineNumber":3589,"author":{"gitId":"-"},"content":" \"webpack-bundle-analyzer\": \"^4.4.0\",","isFullCredit":false},{"lineNumber":3590,"author":{"gitId":"-"},"content":" \"webpack-chain\": \"^6.5.1\",","isFullCredit":false},{"lineNumber":3591,"author":{"gitId":"-"},"content":" \"webpack-dev-server\": \"^4.7.3\",","isFullCredit":false},{"lineNumber":3592,"author":{"gitId":"-"},"content":" \"webpack-merge\": \"^5.7.3\",","isFullCredit":false},{"lineNumber":3593,"author":{"gitId":"-"},"content":" \"webpack-virtual-modules\": \"^0.4.2\",","isFullCredit":false},{"lineNumber":3594,"author":{"gitId":"-"},"content":" \"whatwg-fetch\": \"^3.6.2\"","isFullCredit":false},{"lineNumber":3595,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3596,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":3597,"author":{"gitId":"-"},"content":" \"vue-cli-service\": \"bin/vue-cli-service.js\"","isFullCredit":false},{"lineNumber":3598,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3599,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3600,"author":{"gitId":"-"},"content":" \"node\": \"^12.0.0 || \u003e\u003d 14.0.0\"","isFullCredit":false},{"lineNumber":3601,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3602,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3603,"author":{"gitId":"-"},"content":" \"vue-template-compiler\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":3604,"author":{"gitId":"-"},"content":" \"webpack-sources\": \"*\"","isFullCredit":false},{"lineNumber":3605,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3606,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":3607,"author":{"gitId":"-"},"content":" \"cache-loader\": {","isFullCredit":false},{"lineNumber":3608,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3609,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3610,"author":{"gitId":"-"},"content":" \"less-loader\": {","isFullCredit":false},{"lineNumber":3611,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3612,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3613,"author":{"gitId":"-"},"content":" \"pug-plain-loader\": {","isFullCredit":false},{"lineNumber":3614,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3615,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3616,"author":{"gitId":"-"},"content":" \"raw-loader\": {","isFullCredit":false},{"lineNumber":3617,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3618,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3619,"author":{"gitId":"-"},"content":" \"sass-loader\": {","isFullCredit":false},{"lineNumber":3620,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3621,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3622,"author":{"gitId":"-"},"content":" \"stylus-loader\": {","isFullCredit":false},{"lineNumber":3623,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3624,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3625,"author":{"gitId":"-"},"content":" \"vue-template-compiler\": {","isFullCredit":false},{"lineNumber":3626,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3627,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3628,"author":{"gitId":"-"},"content":" \"webpack-sources\": {","isFullCredit":false},{"lineNumber":3629,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3630,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3631,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3632,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3633,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-shared-utils\": {","isFullCredit":false},{"lineNumber":3634,"author":{"gitId":"-"},"content":" \"version\": \"5.0.8\",","isFullCredit":false},{"lineNumber":3635,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3636,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3637,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3638,"author":{"gitId":"-"},"content":" \"@achrinza/node-ipc\": \"^9.2.5\",","isFullCredit":false},{"lineNumber":3639,"author":{"gitId":"-"},"content":" \"chalk\": \"^4.1.2\",","isFullCredit":false},{"lineNumber":3640,"author":{"gitId":"-"},"content":" \"execa\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":3641,"author":{"gitId":"-"},"content":" \"joi\": \"^17.4.0\",","isFullCredit":false},{"lineNumber":3642,"author":{"gitId":"-"},"content":" \"launch-editor\": \"^2.2.1\",","isFullCredit":false},{"lineNumber":3643,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":3644,"author":{"gitId":"-"},"content":" \"node-fetch\": \"^2.6.7\",","isFullCredit":false},{"lineNumber":3645,"author":{"gitId":"-"},"content":" \"open\": \"^8.0.2\",","isFullCredit":false},{"lineNumber":3646,"author":{"gitId":"-"},"content":" \"ora\": \"^5.3.0\",","isFullCredit":false},{"lineNumber":3647,"author":{"gitId":"-"},"content":" \"read-pkg\": \"^5.1.1\",","isFullCredit":false},{"lineNumber":3648,"author":{"gitId":"-"},"content":" \"semver\": \"^7.3.4\",","isFullCredit":false},{"lineNumber":3649,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":3650,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3651,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3652,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-shared-utils/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":3653,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":3654,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3655,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3656,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3657,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":3658,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3659,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3660,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":3661,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3662,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3663,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":3664,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3665,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3666,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-shared-utils/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":3667,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":3668,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3669,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3670,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3671,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":3672,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":3673,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3674,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3675,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":3676,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3677,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3678,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":3679,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3680,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3681,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-shared-utils/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":3682,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":3683,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3684,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3685,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3686,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":3687,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3688,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3689,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":3690,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3691,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3692,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-shared-utils/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":3693,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":3694,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3695,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3696,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3697,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-shared-utils/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":3698,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":3699,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3700,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3701,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3702,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":3703,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3704,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3705,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-shared-utils/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":3706,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":3707,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3708,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":3709,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3710,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":3711,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3712,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3713,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":3714,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3715,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3716,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-shared-utils/node_modules/semver\": {","isFullCredit":false},{"lineNumber":3717,"author":{"gitId":"-"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":3718,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3719,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":3720,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3721,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":3722,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3723,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":3724,"author":{"gitId":"-"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":3725,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3726,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3727,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":3728,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3729,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3730,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-shared-utils/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":3731,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":3732,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3733,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3734,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3735,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":3736,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3737,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3738,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":3739,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3740,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3741,"author":{"gitId":"-"},"content":" \"node_modules/@vue/cli-shared-utils/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":3742,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":3743,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3744,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":3745,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3746,"author":{"gitId":"-"},"content":" \"node_modules/@vue/compiler-core\": {","isFullCredit":false},{"lineNumber":3747,"author":{"gitId":"-"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3748,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3749,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3750,"author":{"gitId":"-"},"content":" \"@babel/parser\": \"^7.23.9\",","isFullCredit":false},{"lineNumber":3751,"author":{"gitId":"-"},"content":" \"@vue/shared\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3752,"author":{"gitId":"-"},"content":" \"entities\": \"^4.5.0\",","isFullCredit":false},{"lineNumber":3753,"author":{"gitId":"-"},"content":" \"estree-walker\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":3754,"author":{"gitId":"-"},"content":" \"source-map-js\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":3755,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3756,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3757,"author":{"gitId":"-"},"content":" \"node_modules/@vue/compiler-dom\": {","isFullCredit":false},{"lineNumber":3758,"author":{"gitId":"-"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3759,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3760,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3761,"author":{"gitId":"-"},"content":" \"@vue/compiler-core\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3762,"author":{"gitId":"-"},"content":" \"@vue/shared\": \"3.4.21\"","isFullCredit":false},{"lineNumber":3763,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3764,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3765,"author":{"gitId":"-"},"content":" \"node_modules/@vue/compiler-sfc\": {","isFullCredit":false},{"lineNumber":3766,"author":{"gitId":"-"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3767,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3768,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3769,"author":{"gitId":"-"},"content":" \"@babel/parser\": \"^7.23.9\",","isFullCredit":false},{"lineNumber":3770,"author":{"gitId":"-"},"content":" \"@vue/compiler-core\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3771,"author":{"gitId":"-"},"content":" \"@vue/compiler-dom\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3772,"author":{"gitId":"-"},"content":" \"@vue/compiler-ssr\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3773,"author":{"gitId":"-"},"content":" \"@vue/shared\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3774,"author":{"gitId":"-"},"content":" \"estree-walker\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":3775,"author":{"gitId":"-"},"content":" \"magic-string\": \"^0.30.7\",","isFullCredit":false},{"lineNumber":3776,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.4.35\",","isFullCredit":false},{"lineNumber":3777,"author":{"gitId":"-"},"content":" \"source-map-js\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":3778,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3779,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3780,"author":{"gitId":"-"},"content":" \"node_modules/@vue/compiler-ssr\": {","isFullCredit":false},{"lineNumber":3781,"author":{"gitId":"-"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3782,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3783,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3784,"author":{"gitId":"-"},"content":" \"@vue/compiler-dom\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3785,"author":{"gitId":"-"},"content":" \"@vue/shared\": \"3.4.21\"","isFullCredit":false},{"lineNumber":3786,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3787,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3788,"author":{"gitId":"-"},"content":" \"node_modules/@vue/component-compiler-utils\": {","isFullCredit":false},{"lineNumber":3789,"author":{"gitId":"-"},"content":" \"version\": \"3.3.0\",","isFullCredit":false},{"lineNumber":3790,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3791,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3792,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3793,"author":{"gitId":"-"},"content":" \"consolidate\": \"^0.15.1\",","isFullCredit":false},{"lineNumber":3794,"author":{"gitId":"-"},"content":" \"hash-sum\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":3795,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^4.1.2\",","isFullCredit":false},{"lineNumber":3796,"author":{"gitId":"-"},"content":" \"merge-source-map\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":3797,"author":{"gitId":"-"},"content":" \"postcss\": \"^7.0.36\",","isFullCredit":false},{"lineNumber":3798,"author":{"gitId":"-"},"content":" \"postcss-selector-parser\": \"^6.0.2\",","isFullCredit":false},{"lineNumber":3799,"author":{"gitId":"-"},"content":" \"source-map\": \"~0.6.1\",","isFullCredit":false},{"lineNumber":3800,"author":{"gitId":"-"},"content":" \"vue-template-es2015-compiler\": \"^1.9.0\"","isFullCredit":false},{"lineNumber":3801,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3802,"author":{"gitId":"-"},"content":" \"optionalDependencies\": {","isFullCredit":false},{"lineNumber":3803,"author":{"gitId":"-"},"content":" \"prettier\": \"^1.18.2 || ^2.0.0\"","isFullCredit":false},{"lineNumber":3804,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3805,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3806,"author":{"gitId":"-"},"content":" \"node_modules/@vue/component-compiler-utils/node_modules/hash-sum\": {","isFullCredit":false},{"lineNumber":3807,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":3808,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3809,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3810,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3811,"author":{"gitId":"-"},"content":" \"node_modules/@vue/component-compiler-utils/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":3812,"author":{"gitId":"-"},"content":" \"version\": \"4.1.5\",","isFullCredit":false},{"lineNumber":3813,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3814,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":3815,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3816,"author":{"gitId":"-"},"content":" \"pseudomap\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":3817,"author":{"gitId":"-"},"content":" \"yallist\": \"^2.1.2\"","isFullCredit":false},{"lineNumber":3818,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3819,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3820,"author":{"gitId":"-"},"content":" \"node_modules/@vue/component-compiler-utils/node_modules/picocolors\": {","isFullCredit":false},{"lineNumber":3821,"author":{"gitId":"-"},"content":" \"version\": \"0.2.1\",","isFullCredit":false},{"lineNumber":3822,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3823,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":3824,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3825,"author":{"gitId":"-"},"content":" \"node_modules/@vue/component-compiler-utils/node_modules/postcss\": {","isFullCredit":false},{"lineNumber":3826,"author":{"gitId":"-"},"content":" \"version\": \"7.0.39\",","isFullCredit":false},{"lineNumber":3827,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3828,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3829,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3830,"author":{"gitId":"-"},"content":" \"picocolors\": \"^0.2.1\",","isFullCredit":false},{"lineNumber":3831,"author":{"gitId":"-"},"content":" \"source-map\": \"^0.6.1\"","isFullCredit":false},{"lineNumber":3832,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3833,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3834,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":3835,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3836,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":3837,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":3838,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/postcss/\"","isFullCredit":false},{"lineNumber":3839,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3840,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3841,"author":{"gitId":"-"},"content":" \"node_modules/@vue/component-compiler-utils/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":3842,"author":{"gitId":"-"},"content":" \"version\": \"2.1.2\",","isFullCredit":false},{"lineNumber":3843,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3844,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":3845,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3846,"author":{"gitId":"-"},"content":" \"node_modules/@vue/devtools-api\": {","isFullCredit":false},{"lineNumber":3847,"author":{"gitId":"-"},"content":" \"version\": \"6.6.1\",","isFullCredit":false},{"lineNumber":3848,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3849,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3850,"author":{"gitId":"-"},"content":" \"node_modules/@vue/eslint-config-typescript\": {","isFullCredit":false},{"lineNumber":3851,"author":{"gitId":"-"},"content":" \"version\": \"13.0.0\",","isFullCredit":false},{"lineNumber":3852,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-13.0.0.tgz\",","isFullCredit":false},{"lineNumber":3853,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-MHh9SncG/sfqjVqjcuFLOLD6Ed4dRAis4HNt0dXASeAuLqIAx4YMB1/m2o4pUKK1vCt8fUvYG8KKX2Ot3BVZTg\u003d\u003d\",","isFullCredit":false},{"lineNumber":3854,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3855,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3856,"author":{"gitId":"-"},"content":" \"@typescript-eslint/eslint-plugin\": \"^7.1.1\",","isFullCredit":false},{"lineNumber":3857,"author":{"gitId":"-"},"content":" \"@typescript-eslint/parser\": \"^7.1.1\",","isFullCredit":false},{"lineNumber":3858,"author":{"gitId":"-"},"content":" \"vue-eslint-parser\": \"^9.3.1\"","isFullCredit":false},{"lineNumber":3859,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3860,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":3861,"author":{"gitId":"-"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":3862,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3863,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3864,"author":{"gitId":"-"},"content":" \"eslint\": \"^8.56.0\",","isFullCredit":false},{"lineNumber":3865,"author":{"gitId":"-"},"content":" \"eslint-plugin-vue\": \"^9.0.0\",","isFullCredit":false},{"lineNumber":3866,"author":{"gitId":"-"},"content":" \"typescript\": \"\u003e\u003d4.7.4\"","isFullCredit":false},{"lineNumber":3867,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3868,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":3869,"author":{"gitId":"-"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":3870,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3871,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3872,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3873,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3874,"author":{"gitId":"-"},"content":" \"node_modules/@vue/reactivity\": {","isFullCredit":false},{"lineNumber":3875,"author":{"gitId":"-"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3876,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3877,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3878,"author":{"gitId":"-"},"content":" \"@vue/shared\": \"3.4.21\"","isFullCredit":false},{"lineNumber":3879,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3880,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3881,"author":{"gitId":"-"},"content":" \"node_modules/@vue/runtime-core\": {","isFullCredit":false},{"lineNumber":3882,"author":{"gitId":"-"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3883,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3884,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3885,"author":{"gitId":"-"},"content":" \"@vue/reactivity\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3886,"author":{"gitId":"-"},"content":" \"@vue/shared\": \"3.4.21\"","isFullCredit":false},{"lineNumber":3887,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3888,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3889,"author":{"gitId":"-"},"content":" \"node_modules/@vue/runtime-dom\": {","isFullCredit":false},{"lineNumber":3890,"author":{"gitId":"-"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3891,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3892,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3893,"author":{"gitId":"-"},"content":" \"@vue/runtime-core\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3894,"author":{"gitId":"-"},"content":" \"@vue/shared\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3895,"author":{"gitId":"-"},"content":" \"csstype\": \"^3.1.3\"","isFullCredit":false},{"lineNumber":3896,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3897,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3898,"author":{"gitId":"-"},"content":" \"node_modules/@vue/server-renderer\": {","isFullCredit":false},{"lineNumber":3899,"author":{"gitId":"-"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3900,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3901,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3902,"author":{"gitId":"-"},"content":" \"@vue/compiler-ssr\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3903,"author":{"gitId":"-"},"content":" \"@vue/shared\": \"3.4.21\"","isFullCredit":false},{"lineNumber":3904,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3905,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3906,"author":{"gitId":"-"},"content":" \"vue\": \"3.4.21\"","isFullCredit":false},{"lineNumber":3907,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3908,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3909,"author":{"gitId":"-"},"content":" \"node_modules/@vue/shared\": {","isFullCredit":false},{"lineNumber":3910,"author":{"gitId":"-"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":3911,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3912,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3913,"author":{"gitId":"-"},"content":" \"node_modules/@vue/vue-loader-v15\": {","isFullCredit":false},{"lineNumber":3914,"author":{"gitId":"-"},"content":" \"name\": \"vue-loader\",","isFullCredit":false},{"lineNumber":3915,"author":{"gitId":"-"},"content":" \"version\": \"15.11.1\",","isFullCredit":false},{"lineNumber":3916,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3917,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3918,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3919,"author":{"gitId":"-"},"content":" \"@vue/component-compiler-utils\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":3920,"author":{"gitId":"-"},"content":" \"hash-sum\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":3921,"author":{"gitId":"-"},"content":" \"loader-utils\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":3922,"author":{"gitId":"-"},"content":" \"vue-hot-reload-api\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":3923,"author":{"gitId":"-"},"content":" \"vue-style-loader\": \"^4.1.0\"","isFullCredit":false},{"lineNumber":3924,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3925,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":3926,"author":{"gitId":"-"},"content":" \"css-loader\": \"*\",","isFullCredit":false},{"lineNumber":3927,"author":{"gitId":"-"},"content":" \"webpack\": \"^3.0.0 || ^4.1.0 || ^5.0.0-0\"","isFullCredit":false},{"lineNumber":3928,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3929,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":3930,"author":{"gitId":"-"},"content":" \"cache-loader\": {","isFullCredit":false},{"lineNumber":3931,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3932,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3933,"author":{"gitId":"-"},"content":" \"prettier\": {","isFullCredit":false},{"lineNumber":3934,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3935,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3936,"author":{"gitId":"-"},"content":" \"vue-template-compiler\": {","isFullCredit":false},{"lineNumber":3937,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":3938,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3939,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3940,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3941,"author":{"gitId":"-"},"content":" \"node_modules/@vue/vue-loader-v15/node_modules/hash-sum\": {","isFullCredit":false},{"lineNumber":3942,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":3943,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3944,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3945,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3946,"author":{"gitId":"-"},"content":" \"node_modules/@vue/web-component-wrapper\": {","isFullCredit":false},{"lineNumber":3947,"author":{"gitId":"-"},"content":" \"version\": \"1.3.0\",","isFullCredit":false},{"lineNumber":3948,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":3949,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3950,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3951,"author":{"gitId":"-"},"content":" \"node_modules/@webassemblyjs/ast\": {","isFullCredit":false},{"lineNumber":3952,"author":{"gitId":"-"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":3953,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3954,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3955,"author":{"gitId":"-"},"content":" \"@webassemblyjs/helper-numbers\": \"1.11.1\",","isFullCredit":false},{"lineNumber":3956,"author":{"gitId":"-"},"content":" \"@webassemblyjs/helper-wasm-bytecode\": \"1.11.1\"","isFullCredit":false},{"lineNumber":3957,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3958,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3959,"author":{"gitId":"-"},"content":" \"node_modules/@webassemblyjs/floating-point-hex-parser\": {","isFullCredit":false},{"lineNumber":3960,"author":{"gitId":"-"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":3961,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3962,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3963,"author":{"gitId":"-"},"content":" \"node_modules/@webassemblyjs/helper-api-error\": {","isFullCredit":false},{"lineNumber":3964,"author":{"gitId":"-"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":3965,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3966,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3967,"author":{"gitId":"-"},"content":" \"node_modules/@webassemblyjs/helper-buffer\": {","isFullCredit":false},{"lineNumber":3968,"author":{"gitId":"-"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":3969,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3970,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3971,"author":{"gitId":"-"},"content":" \"node_modules/@webassemblyjs/helper-numbers\": {","isFullCredit":false},{"lineNumber":3972,"author":{"gitId":"-"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":3973,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3974,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3975,"author":{"gitId":"-"},"content":" \"@webassemblyjs/floating-point-hex-parser\": \"1.11.1\",","isFullCredit":false},{"lineNumber":3976,"author":{"gitId":"-"},"content":" \"@webassemblyjs/helper-api-error\": \"1.11.1\",","isFullCredit":false},{"lineNumber":3977,"author":{"gitId":"-"},"content":" \"@xtuc/long\": \"4.2.2\"","isFullCredit":false},{"lineNumber":3978,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3979,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3980,"author":{"gitId":"-"},"content":" \"node_modules/@webassemblyjs/helper-wasm-bytecode\": {","isFullCredit":false},{"lineNumber":3981,"author":{"gitId":"-"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":3982,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":3983,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3984,"author":{"gitId":"-"},"content":" \"node_modules/@webassemblyjs/helper-wasm-section\": {","isFullCredit":false},{"lineNumber":3985,"author":{"gitId":"-"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":3986,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3987,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3988,"author":{"gitId":"-"},"content":" \"@webassemblyjs/ast\": \"1.11.1\",","isFullCredit":false},{"lineNumber":3989,"author":{"gitId":"-"},"content":" \"@webassemblyjs/helper-buffer\": \"1.11.1\",","isFullCredit":false},{"lineNumber":3990,"author":{"gitId":"-"},"content":" \"@webassemblyjs/helper-wasm-bytecode\": \"1.11.1\",","isFullCredit":false},{"lineNumber":3991,"author":{"gitId":"-"},"content":" \"@webassemblyjs/wasm-gen\": \"1.11.1\"","isFullCredit":false},{"lineNumber":3992,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":3993,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":3994,"author":{"gitId":"-"},"content":" \"node_modules/@webassemblyjs/ieee754\": {","isFullCredit":false},{"lineNumber":3995,"author":{"gitId":"-"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":3996,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":3997,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":3998,"author":{"gitId":"-"},"content":" \"@xtuc/ieee754\": \"^1.2.0\"","isFullCredit":false},{"lineNumber":3999,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4000,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4001,"author":{"gitId":"-"},"content":" \"node_modules/@webassemblyjs/leb128\": {","isFullCredit":false},{"lineNumber":4002,"author":{"gitId":"-"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4003,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":4004,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4005,"author":{"gitId":"-"},"content":" \"@xtuc/long\": \"4.2.2\"","isFullCredit":false},{"lineNumber":4006,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4007,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4008,"author":{"gitId":"-"},"content":" \"node_modules/@webassemblyjs/utf8\": {","isFullCredit":false},{"lineNumber":4009,"author":{"gitId":"-"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4010,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4011,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4012,"author":{"gitId":"-"},"content":" \"node_modules/@webassemblyjs/wasm-edit\": {","isFullCredit":false},{"lineNumber":4013,"author":{"gitId":"-"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4014,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4015,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4016,"author":{"gitId":"-"},"content":" \"@webassemblyjs/ast\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4017,"author":{"gitId":"-"},"content":" \"@webassemblyjs/helper-buffer\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4018,"author":{"gitId":"-"},"content":" \"@webassemblyjs/helper-wasm-bytecode\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4019,"author":{"gitId":"-"},"content":" \"@webassemblyjs/helper-wasm-section\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4020,"author":{"gitId":"-"},"content":" \"@webassemblyjs/wasm-gen\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4021,"author":{"gitId":"-"},"content":" \"@webassemblyjs/wasm-opt\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4022,"author":{"gitId":"-"},"content":" \"@webassemblyjs/wasm-parser\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4023,"author":{"gitId":"-"},"content":" \"@webassemblyjs/wast-printer\": \"1.11.1\"","isFullCredit":false},{"lineNumber":4024,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4025,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4026,"author":{"gitId":"-"},"content":" \"node_modules/@webassemblyjs/wasm-gen\": {","isFullCredit":false},{"lineNumber":4027,"author":{"gitId":"-"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4028,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4029,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4030,"author":{"gitId":"-"},"content":" \"@webassemblyjs/ast\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4031,"author":{"gitId":"-"},"content":" \"@webassemblyjs/helper-wasm-bytecode\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4032,"author":{"gitId":"-"},"content":" \"@webassemblyjs/ieee754\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4033,"author":{"gitId":"-"},"content":" \"@webassemblyjs/leb128\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4034,"author":{"gitId":"-"},"content":" \"@webassemblyjs/utf8\": \"1.11.1\"","isFullCredit":false},{"lineNumber":4035,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4036,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4037,"author":{"gitId":"-"},"content":" \"node_modules/@webassemblyjs/wasm-opt\": {","isFullCredit":false},{"lineNumber":4038,"author":{"gitId":"-"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4039,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4040,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4041,"author":{"gitId":"-"},"content":" \"@webassemblyjs/ast\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4042,"author":{"gitId":"-"},"content":" \"@webassemblyjs/helper-buffer\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4043,"author":{"gitId":"-"},"content":" \"@webassemblyjs/wasm-gen\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4044,"author":{"gitId":"-"},"content":" \"@webassemblyjs/wasm-parser\": \"1.11.1\"","isFullCredit":false},{"lineNumber":4045,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4046,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4047,"author":{"gitId":"-"},"content":" \"node_modules/@webassemblyjs/wasm-parser\": {","isFullCredit":false},{"lineNumber":4048,"author":{"gitId":"-"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4049,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4050,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4051,"author":{"gitId":"-"},"content":" \"@webassemblyjs/ast\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4052,"author":{"gitId":"-"},"content":" \"@webassemblyjs/helper-api-error\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4053,"author":{"gitId":"-"},"content":" \"@webassemblyjs/helper-wasm-bytecode\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4054,"author":{"gitId":"-"},"content":" \"@webassemblyjs/ieee754\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4055,"author":{"gitId":"-"},"content":" \"@webassemblyjs/leb128\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4056,"author":{"gitId":"-"},"content":" \"@webassemblyjs/utf8\": \"1.11.1\"","isFullCredit":false},{"lineNumber":4057,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4058,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4059,"author":{"gitId":"-"},"content":" \"node_modules/@webassemblyjs/wast-printer\": {","isFullCredit":false},{"lineNumber":4060,"author":{"gitId":"-"},"content":" \"version\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4061,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4062,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4063,"author":{"gitId":"-"},"content":" \"@webassemblyjs/ast\": \"1.11.1\",","isFullCredit":false},{"lineNumber":4064,"author":{"gitId":"-"},"content":" \"@xtuc/long\": \"4.2.2\"","isFullCredit":false},{"lineNumber":4065,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4066,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4067,"author":{"gitId":"-"},"content":" \"node_modules/@xtuc/ieee754\": {","isFullCredit":false},{"lineNumber":4068,"author":{"gitId":"-"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":4069,"author":{"gitId":"-"},"content":" \"license\": \"BSD-3-Clause\"","isFullCredit":false},{"lineNumber":4070,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4071,"author":{"gitId":"-"},"content":" \"node_modules/@xtuc/long\": {","isFullCredit":false},{"lineNumber":4072,"author":{"gitId":"-"},"content":" \"version\": \"4.2.2\",","isFullCredit":false},{"lineNumber":4073,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\"","isFullCredit":false},{"lineNumber":4074,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4075,"author":{"gitId":"-"},"content":" \"node_modules/accepts\": {","isFullCredit":false},{"lineNumber":4076,"author":{"gitId":"-"},"content":" \"version\": \"1.3.8\",","isFullCredit":false},{"lineNumber":4077,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4078,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4079,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4080,"author":{"gitId":"-"},"content":" \"mime-types\": \"~2.1.34\",","isFullCredit":false},{"lineNumber":4081,"author":{"gitId":"-"},"content":" \"negotiator\": \"0.6.3\"","isFullCredit":false},{"lineNumber":4082,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4083,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4084,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":4085,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4086,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4087,"author":{"gitId":"-"},"content":" \"node_modules/acorn\": {","isFullCredit":false},{"lineNumber":4088,"author":{"gitId":"-"},"content":" \"version\": \"8.11.3\",","isFullCredit":false},{"lineNumber":4089,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4090,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":4091,"author":{"gitId":"-"},"content":" \"acorn\": \"bin/acorn\"","isFullCredit":false},{"lineNumber":4092,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4093,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4094,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.4.0\"","isFullCredit":false},{"lineNumber":4095,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4096,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4097,"author":{"gitId":"-"},"content":" \"node_modules/acorn-import-assertions\": {","isFullCredit":false},{"lineNumber":4098,"author":{"gitId":"-"},"content":" \"version\": \"1.8.0\",","isFullCredit":false},{"lineNumber":4099,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4100,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":4101,"author":{"gitId":"-"},"content":" \"acorn\": \"^8\"","isFullCredit":false},{"lineNumber":4102,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4103,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4104,"author":{"gitId":"-"},"content":" \"node_modules/acorn-jsx\": {","isFullCredit":false},{"lineNumber":4105,"author":{"gitId":"-"},"content":" \"version\": \"5.3.2\",","isFullCredit":false},{"lineNumber":4106,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4107,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4108,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":4109,"author":{"gitId":"-"},"content":" \"acorn\": \"^6.0.0 || ^7.0.0 || ^8.0.0\"","isFullCredit":false},{"lineNumber":4110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4111,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4112,"author":{"gitId":"-"},"content":" \"node_modules/acorn-walk\": {","isFullCredit":false},{"lineNumber":4113,"author":{"gitId":"-"},"content":" \"version\": \"8.2.0\",","isFullCredit":false},{"lineNumber":4114,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4115,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4116,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4117,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.4.0\"","isFullCredit":false},{"lineNumber":4118,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4119,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4120,"author":{"gitId":"-"},"content":" \"node_modules/address\": {","isFullCredit":false},{"lineNumber":4121,"author":{"gitId":"-"},"content":" \"version\": \"1.2.2\",","isFullCredit":false},{"lineNumber":4122,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4123,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4124,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4125,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10.0.0\"","isFullCredit":false},{"lineNumber":4126,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4127,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4128,"author":{"gitId":"-"},"content":" \"node_modules/ajv\": {","isFullCredit":false},{"lineNumber":4129,"author":{"gitId":"-"},"content":" \"version\": \"6.12.6\",","isFullCredit":false},{"lineNumber":4130,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4131,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4132,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":4133,"author":{"gitId":"-"},"content":" \"fast-json-stable-stringify\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":4134,"author":{"gitId":"-"},"content":" \"json-schema-traverse\": \"^0.4.1\",","isFullCredit":false},{"lineNumber":4135,"author":{"gitId":"-"},"content":" \"uri-js\": \"^4.2.2\"","isFullCredit":false},{"lineNumber":4136,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4137,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4138,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":4139,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/epoberezkin\"","isFullCredit":false},{"lineNumber":4140,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4141,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4142,"author":{"gitId":"-"},"content":" \"node_modules/ajv-formats\": {","isFullCredit":false},{"lineNumber":4143,"author":{"gitId":"-"},"content":" \"version\": \"2.1.1\",","isFullCredit":false},{"lineNumber":4144,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4145,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4146,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4147,"author":{"gitId":"-"},"content":" \"ajv\": \"^8.0.0\"","isFullCredit":false},{"lineNumber":4148,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4149,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":4150,"author":{"gitId":"-"},"content":" \"ajv\": \"^8.0.0\"","isFullCredit":false},{"lineNumber":4151,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4152,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":4153,"author":{"gitId":"-"},"content":" \"ajv\": {","isFullCredit":false},{"lineNumber":4154,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":4155,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4156,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4157,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4158,"author":{"gitId":"-"},"content":" \"node_modules/ajv-formats/node_modules/ajv\": {","isFullCredit":false},{"lineNumber":4159,"author":{"gitId":"-"},"content":" \"version\": \"8.12.0\",","isFullCredit":false},{"lineNumber":4160,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4161,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4162,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4163,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":4164,"author":{"gitId":"-"},"content":" \"json-schema-traverse\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":4165,"author":{"gitId":"-"},"content":" \"require-from-string\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":4166,"author":{"gitId":"-"},"content":" \"uri-js\": \"^4.2.2\"","isFullCredit":false},{"lineNumber":4167,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4168,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4169,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":4170,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/epoberezkin\"","isFullCredit":false},{"lineNumber":4171,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4172,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4173,"author":{"gitId":"-"},"content":" \"node_modules/ajv-formats/node_modules/json-schema-traverse\": {","isFullCredit":false},{"lineNumber":4174,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":4175,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4176,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4177,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4178,"author":{"gitId":"-"},"content":" \"node_modules/ajv-keywords\": {","isFullCredit":false},{"lineNumber":4179,"author":{"gitId":"-"},"content":" \"version\": \"3.5.2\",","isFullCredit":false},{"lineNumber":4180,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4181,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":4182,"author":{"gitId":"-"},"content":" \"ajv\": \"^6.9.1\"","isFullCredit":false},{"lineNumber":4183,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4184,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4185,"author":{"gitId":"-"},"content":" \"node_modules/ansi-escapes\": {","isFullCredit":false},{"lineNumber":4186,"author":{"gitId":"-"},"content":" \"version\": \"3.2.0\",","isFullCredit":false},{"lineNumber":4187,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4188,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4189,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4190,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":4191,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4192,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4193,"author":{"gitId":"-"},"content":" \"node_modules/ansi-html-community\": {","isFullCredit":false},{"lineNumber":4194,"author":{"gitId":"-"},"content":" \"version\": \"0.0.8\",","isFullCredit":false},{"lineNumber":4195,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4196,"author":{"gitId":"-"},"content":" \"engines\": [","isFullCredit":false},{"lineNumber":4197,"author":{"gitId":"-"},"content":" \"node \u003e\u003d 0.8.0\"","isFullCredit":false},{"lineNumber":4198,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":4199,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":4200,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":4201,"author":{"gitId":"-"},"content":" \"ansi-html\": \"bin/ansi-html\"","isFullCredit":false},{"lineNumber":4202,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4203,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4204,"author":{"gitId":"-"},"content":" \"node_modules/ansi-regex\": {","isFullCredit":false},{"lineNumber":4205,"author":{"gitId":"-"},"content":" \"version\": \"5.0.1\",","isFullCredit":false},{"lineNumber":4206,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4207,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4208,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4209,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":4210,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4211,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4212,"author":{"gitId":"-"},"content":" \"node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":4213,"author":{"gitId":"-"},"content":" \"version\": \"3.2.1\",","isFullCredit":false},{"lineNumber":4214,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4215,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4216,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4217,"author":{"gitId":"-"},"content":" \"color-convert\": \"^1.9.0\"","isFullCredit":false},{"lineNumber":4218,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4219,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4220,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":4221,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4222,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4223,"author":{"gitId":"-"},"content":" \"node_modules/any-promise\": {","isFullCredit":false},{"lineNumber":4224,"author":{"gitId":"-"},"content":" \"version\": \"1.3.0\",","isFullCredit":false},{"lineNumber":4225,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4226,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4227,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4228,"author":{"gitId":"-"},"content":" \"node_modules/anymatch\": {","isFullCredit":false},{"lineNumber":4229,"author":{"gitId":"-"},"content":" \"version\": \"3.1.3\",","isFullCredit":false},{"lineNumber":4230,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4231,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":4232,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4233,"author":{"gitId":"-"},"content":" \"normalize-path\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":4234,"author":{"gitId":"-"},"content":" \"picomatch\": \"^2.0.4\"","isFullCredit":false},{"lineNumber":4235,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4236,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4237,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":4238,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4239,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4240,"author":{"gitId":"-"},"content":" \"node_modules/arch\": {","isFullCredit":false},{"lineNumber":4241,"author":{"gitId":"-"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":4242,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4243,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":4244,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":4245,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":4246,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":4247,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4248,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":4249,"author":{"gitId":"-"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":4250,"author":{"gitId":"-"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":4251,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4252,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":4253,"author":{"gitId":"-"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":4254,"author":{"gitId":"-"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":4255,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4256,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":4257,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4258,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4259,"author":{"gitId":"-"},"content":" \"node_modules/argparse\": {","isFullCredit":false},{"lineNumber":4260,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":4261,"author":{"gitId":"-"},"content":" \"license\": \"Python-2.0\"","isFullCredit":false},{"lineNumber":4262,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4263,"author":{"gitId":"-"},"content":" \"node_modules/array-buffer-byte-length\": {","isFullCredit":false},{"lineNumber":4264,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":4265,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4266,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4267,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4268,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":4269,"author":{"gitId":"-"},"content":" \"is-array-buffer\": \"^3.0.4\"","isFullCredit":false},{"lineNumber":4270,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4271,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4272,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4273,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4274,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4275,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4276,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4277,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4278,"author":{"gitId":"-"},"content":" \"node_modules/array-flatten\": {","isFullCredit":false},{"lineNumber":4279,"author":{"gitId":"-"},"content":" \"version\": \"2.1.2\",","isFullCredit":false},{"lineNumber":4280,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4281,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4282,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4283,"author":{"gitId":"-"},"content":" \"node_modules/array-includes\": {","isFullCredit":false},{"lineNumber":4284,"author":{"gitId":"-"},"content":" \"version\": \"3.1.7\",","isFullCredit":false},{"lineNumber":4285,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4286,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4287,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4288,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":4289,"author":{"gitId":"-"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":4290,"author":{"gitId":"-"},"content":" \"es-abstract\": \"^1.22.1\",","isFullCredit":false},{"lineNumber":4291,"author":{"gitId":"-"},"content":" \"get-intrinsic\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":4292,"author":{"gitId":"-"},"content":" \"is-string\": \"^1.0.7\"","isFullCredit":false},{"lineNumber":4293,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4294,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4295,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4296,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4297,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4298,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4299,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4300,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4301,"author":{"gitId":"-"},"content":" \"node_modules/array-union\": {","isFullCredit":false},{"lineNumber":4302,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":4303,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4304,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4305,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4306,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":4307,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4308,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4309,"author":{"gitId":"-"},"content":" \"node_modules/array.prototype.filter\": {","isFullCredit":false},{"lineNumber":4310,"author":{"gitId":"-"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":4311,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4312,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4313,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4314,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":4315,"author":{"gitId":"-"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":4316,"author":{"gitId":"-"},"content":" \"es-abstract\": \"^1.22.1\",","isFullCredit":false},{"lineNumber":4317,"author":{"gitId":"-"},"content":" \"es-array-method-boxes-properly\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":4318,"author":{"gitId":"-"},"content":" \"is-string\": \"^1.0.7\"","isFullCredit":false},{"lineNumber":4319,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4320,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4321,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4322,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4323,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4324,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4325,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4326,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4327,"author":{"gitId":"-"},"content":" \"node_modules/array.prototype.findlastindex\": {","isFullCredit":false},{"lineNumber":4328,"author":{"gitId":"-"},"content":" \"version\": \"1.2.4\",","isFullCredit":false},{"lineNumber":4329,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4330,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4331,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4332,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":4333,"author":{"gitId":"-"},"content":" \"define-properties\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":4334,"author":{"gitId":"-"},"content":" \"es-abstract\": \"^1.22.3\",","isFullCredit":false},{"lineNumber":4335,"author":{"gitId":"-"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":4336,"author":{"gitId":"-"},"content":" \"es-shim-unscopables\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":4337,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4338,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4339,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4340,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4341,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4342,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4343,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4344,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4345,"author":{"gitId":"-"},"content":" \"node_modules/array.prototype.flat\": {","isFullCredit":false},{"lineNumber":4346,"author":{"gitId":"-"},"content":" \"version\": \"1.3.2\",","isFullCredit":false},{"lineNumber":4347,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4348,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4349,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4350,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":4351,"author":{"gitId":"-"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":4352,"author":{"gitId":"-"},"content":" \"es-abstract\": \"^1.22.1\",","isFullCredit":false},{"lineNumber":4353,"author":{"gitId":"-"},"content":" \"es-shim-unscopables\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":4354,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4355,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4356,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4357,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4358,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4359,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4360,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4361,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4362,"author":{"gitId":"-"},"content":" \"node_modules/array.prototype.flatmap\": {","isFullCredit":false},{"lineNumber":4363,"author":{"gitId":"-"},"content":" \"version\": \"1.3.2\",","isFullCredit":false},{"lineNumber":4364,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4365,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4366,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4367,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":4368,"author":{"gitId":"-"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":4369,"author":{"gitId":"-"},"content":" \"es-abstract\": \"^1.22.1\",","isFullCredit":false},{"lineNumber":4370,"author":{"gitId":"-"},"content":" \"es-shim-unscopables\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":4371,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4372,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4373,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4374,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4375,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4376,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4377,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4378,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4379,"author":{"gitId":"-"},"content":" \"node_modules/arraybuffer.prototype.slice\": {","isFullCredit":false},{"lineNumber":4380,"author":{"gitId":"-"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":4381,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4382,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4383,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4384,"author":{"gitId":"-"},"content":" \"array-buffer-byte-length\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":4385,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":4386,"author":{"gitId":"-"},"content":" \"define-properties\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":4387,"author":{"gitId":"-"},"content":" \"es-abstract\": \"^1.22.3\",","isFullCredit":false},{"lineNumber":4388,"author":{"gitId":"-"},"content":" \"es-errors\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":4389,"author":{"gitId":"-"},"content":" \"get-intrinsic\": \"^1.2.3\",","isFullCredit":false},{"lineNumber":4390,"author":{"gitId":"-"},"content":" \"is-array-buffer\": \"^3.0.4\",","isFullCredit":false},{"lineNumber":4391,"author":{"gitId":"-"},"content":" \"is-shared-array-buffer\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":4392,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4393,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4394,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4395,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4396,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4397,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4398,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4399,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4400,"author":{"gitId":"-"},"content":" \"node_modules/asap\": {","isFullCredit":false},{"lineNumber":4401,"author":{"gitId":"-"},"content":" \"version\": \"2.0.6\",","isFullCredit":false},{"lineNumber":4402,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4403,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4404,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4405,"author":{"gitId":"-"},"content":" \"node_modules/assert-never\": {","isFullCredit":false},{"lineNumber":4406,"author":{"gitId":"-"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":4407,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4408,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4409,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4410,"author":{"gitId":"-"},"content":" \"node_modules/astral-regex\": {","isFullCredit":false},{"lineNumber":4411,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":4412,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4413,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4414,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4415,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":4416,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4417,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4418,"author":{"gitId":"-"},"content":" \"node_modules/async\": {","isFullCredit":false},{"lineNumber":4419,"author":{"gitId":"-"},"content":" \"version\": \"2.6.4\",","isFullCredit":false},{"lineNumber":4420,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4421,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4422,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4423,"author":{"gitId":"-"},"content":" \"lodash\": \"^4.17.14\"","isFullCredit":false},{"lineNumber":4424,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4425,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4426,"author":{"gitId":"-"},"content":" \"node_modules/at-least-node\": {","isFullCredit":false},{"lineNumber":4427,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":4428,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4429,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":4430,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4431,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 4.0.0\"","isFullCredit":false},{"lineNumber":4432,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4433,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4434,"author":{"gitId":"-"},"content":" \"node_modules/autoprefixer\": {","isFullCredit":false},{"lineNumber":4435,"author":{"gitId":"-"},"content":" \"version\": \"10.4.13\",","isFullCredit":false},{"lineNumber":4436,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4437,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":4438,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":4439,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":4440,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/postcss/\"","isFullCredit":false},{"lineNumber":4441,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4442,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":4443,"author":{"gitId":"-"},"content":" \"type\": \"tidelift\",","isFullCredit":false},{"lineNumber":4444,"author":{"gitId":"-"},"content":" \"url\": \"https://tidelift.com/funding/github/npm/autoprefixer\"","isFullCredit":false},{"lineNumber":4445,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4446,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":4447,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4448,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4449,"author":{"gitId":"-"},"content":" \"browserslist\": \"^4.21.4\",","isFullCredit":false},{"lineNumber":4450,"author":{"gitId":"-"},"content":" \"caniuse-lite\": \"^1.0.30001426\",","isFullCredit":false},{"lineNumber":4451,"author":{"gitId":"-"},"content":" \"fraction.js\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":4452,"author":{"gitId":"-"},"content":" \"normalize-range\": \"^0.1.2\",","isFullCredit":false},{"lineNumber":4453,"author":{"gitId":"-"},"content":" \"picocolors\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":4454,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":4455,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4456,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":4457,"author":{"gitId":"-"},"content":" \"autoprefixer\": \"bin/autoprefixer\"","isFullCredit":false},{"lineNumber":4458,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4459,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4460,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14\"","isFullCredit":false},{"lineNumber":4461,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4462,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":4463,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.1.0\"","isFullCredit":false},{"lineNumber":4464,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4465,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4466,"author":{"gitId":"-"},"content":" \"node_modules/available-typed-arrays\": {","isFullCredit":false},{"lineNumber":4467,"author":{"gitId":"-"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":4468,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4469,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4470,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4471,"author":{"gitId":"-"},"content":" \"possible-typed-array-names\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":4472,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4473,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4474,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4475,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4476,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4477,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4478,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4479,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4480,"author":{"gitId":"-"},"content":" \"node_modules/babel-loader\": {","isFullCredit":false},{"lineNumber":4481,"author":{"gitId":"-"},"content":" \"version\": \"8.3.0\",","isFullCredit":false},{"lineNumber":4482,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4483,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4484,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4485,"author":{"gitId":"-"},"content":" \"find-cache-dir\": \"^3.3.1\",","isFullCredit":false},{"lineNumber":4486,"author":{"gitId":"-"},"content":" \"loader-utils\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":4487,"author":{"gitId":"-"},"content":" \"make-dir\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":4488,"author":{"gitId":"-"},"content":" \"schema-utils\": \"^2.6.5\"","isFullCredit":false},{"lineNumber":4489,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4490,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4491,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 8.9\"","isFullCredit":false},{"lineNumber":4492,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4493,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":4494,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":4495,"author":{"gitId":"-"},"content":" \"webpack\": \"\u003e\u003d2\"","isFullCredit":false},{"lineNumber":4496,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4497,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4498,"author":{"gitId":"-"},"content":" \"node_modules/babel-loader/node_modules/loader-utils\": {","isFullCredit":false},{"lineNumber":4499,"author":{"gitId":"-"},"content":" \"version\": \"2.0.4\",","isFullCredit":false},{"lineNumber":4500,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4501,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4502,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4503,"author":{"gitId":"-"},"content":" \"big.js\": \"^5.2.2\",","isFullCredit":false},{"lineNumber":4504,"author":{"gitId":"-"},"content":" \"emojis-list\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":4505,"author":{"gitId":"-"},"content":" \"json5\": \"^2.1.2\"","isFullCredit":false},{"lineNumber":4506,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4507,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4508,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8.9.0\"","isFullCredit":false},{"lineNumber":4509,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4510,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4511,"author":{"gitId":"-"},"content":" \"node_modules/babel-plugin-dynamic-import-node\": {","isFullCredit":false},{"lineNumber":4512,"author":{"gitId":"-"},"content":" \"version\": \"2.3.3\",","isFullCredit":false},{"lineNumber":4513,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4514,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4515,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4516,"author":{"gitId":"-"},"content":" \"object.assign\": \"^4.1.0\"","isFullCredit":false},{"lineNumber":4517,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4518,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4519,"author":{"gitId":"-"},"content":" \"node_modules/babel-plugin-polyfill-corejs2\": {","isFullCredit":false},{"lineNumber":4520,"author":{"gitId":"-"},"content":" \"version\": \"0.3.3\",","isFullCredit":false},{"lineNumber":4521,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4522,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4523,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4524,"author":{"gitId":"-"},"content":" \"@babel/compat-data\": \"^7.17.7\",","isFullCredit":false},{"lineNumber":4525,"author":{"gitId":"-"},"content":" \"@babel/helper-define-polyfill-provider\": \"^0.3.3\",","isFullCredit":false},{"lineNumber":4526,"author":{"gitId":"-"},"content":" \"semver\": \"^6.1.1\"","isFullCredit":false},{"lineNumber":4527,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4528,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":4529,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":4530,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4531,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4532,"author":{"gitId":"-"},"content":" \"node_modules/babel-plugin-polyfill-corejs3\": {","isFullCredit":false},{"lineNumber":4533,"author":{"gitId":"-"},"content":" \"version\": \"0.6.0\",","isFullCredit":false},{"lineNumber":4534,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4535,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4536,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4537,"author":{"gitId":"-"},"content":" \"@babel/helper-define-polyfill-provider\": \"^0.3.3\",","isFullCredit":false},{"lineNumber":4538,"author":{"gitId":"-"},"content":" \"core-js-compat\": \"^3.25.1\"","isFullCredit":false},{"lineNumber":4539,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4540,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":4541,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":4542,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4543,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4544,"author":{"gitId":"-"},"content":" \"node_modules/babel-plugin-polyfill-regenerator\": {","isFullCredit":false},{"lineNumber":4545,"author":{"gitId":"-"},"content":" \"version\": \"0.4.1\",","isFullCredit":false},{"lineNumber":4546,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4547,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4548,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4549,"author":{"gitId":"-"},"content":" \"@babel/helper-define-polyfill-provider\": \"^0.3.3\"","isFullCredit":false},{"lineNumber":4550,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4551,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":4552,"author":{"gitId":"-"},"content":" \"@babel/core\": \"^7.0.0-0\"","isFullCredit":false},{"lineNumber":4553,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4554,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4555,"author":{"gitId":"-"},"content":" \"node_modules/babel-runtime\": {","isFullCredit":false},{"lineNumber":4556,"author":{"gitId":"-"},"content":" \"version\": \"6.26.0\",","isFullCredit":false},{"lineNumber":4557,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4558,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4559,"author":{"gitId":"-"},"content":" \"core-js\": \"^2.4.0\",","isFullCredit":false},{"lineNumber":4560,"author":{"gitId":"-"},"content":" \"regenerator-runtime\": \"^0.11.0\"","isFullCredit":false},{"lineNumber":4561,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4562,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4563,"author":{"gitId":"-"},"content":" \"node_modules/babel-runtime/node_modules/core-js\": {","isFullCredit":false},{"lineNumber":4564,"author":{"gitId":"-"},"content":" \"version\": \"2.6.12\",","isFullCredit":false},{"lineNumber":4565,"author":{"gitId":"-"},"content":" \"hasInstallScript\": true,","isFullCredit":false},{"lineNumber":4566,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4567,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4568,"author":{"gitId":"-"},"content":" \"node_modules/babel-runtime/node_modules/regenerator-runtime\": {","isFullCredit":false},{"lineNumber":4569,"author":{"gitId":"-"},"content":" \"version\": \"0.11.1\",","isFullCredit":false},{"lineNumber":4570,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4571,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4572,"author":{"gitId":"-"},"content":" \"node_modules/babel-types\": {","isFullCredit":false},{"lineNumber":4573,"author":{"gitId":"-"},"content":" \"version\": \"6.26.0\",","isFullCredit":false},{"lineNumber":4574,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4575,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4576,"author":{"gitId":"-"},"content":" \"babel-runtime\": \"^6.26.0\",","isFullCredit":false},{"lineNumber":4577,"author":{"gitId":"-"},"content":" \"esutils\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":4578,"author":{"gitId":"-"},"content":" \"lodash\": \"^4.17.4\",","isFullCredit":false},{"lineNumber":4579,"author":{"gitId":"-"},"content":" \"to-fast-properties\": \"^1.0.3\"","isFullCredit":false},{"lineNumber":4580,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4581,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4582,"author":{"gitId":"-"},"content":" \"node_modules/babel-types/node_modules/to-fast-properties\": {","isFullCredit":false},{"lineNumber":4583,"author":{"gitId":"-"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":4584,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4585,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4586,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":4587,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4588,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4589,"author":{"gitId":"-"},"content":" \"node_modules/babel-walk\": {","isFullCredit":false},{"lineNumber":4590,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0-canary-5\",","isFullCredit":false},{"lineNumber":4591,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4592,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4593,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4594,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.9.6\"","isFullCredit":false},{"lineNumber":4595,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4596,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4597,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10.0.0\"","isFullCredit":false},{"lineNumber":4598,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4599,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4600,"author":{"gitId":"-"},"content":" \"node_modules/babylon\": {","isFullCredit":false},{"lineNumber":4601,"author":{"gitId":"-"},"content":" \"version\": \"6.18.0\",","isFullCredit":false},{"lineNumber":4602,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4603,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":4604,"author":{"gitId":"-"},"content":" \"babylon\": \"bin/babylon.js\"","isFullCredit":false},{"lineNumber":4605,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4606,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4607,"author":{"gitId":"-"},"content":" \"node_modules/balanced-match\": {","isFullCredit":false},{"lineNumber":4608,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":4609,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4610,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4611,"author":{"gitId":"-"},"content":" \"node_modules/base64-js\": {","isFullCredit":false},{"lineNumber":4612,"author":{"gitId":"-"},"content":" \"version\": \"1.5.1\",","isFullCredit":false},{"lineNumber":4613,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4614,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":4615,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":4616,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":4617,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":4618,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4619,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":4620,"author":{"gitId":"-"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":4621,"author":{"gitId":"-"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":4622,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4623,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":4624,"author":{"gitId":"-"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":4625,"author":{"gitId":"-"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":4626,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4627,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":4628,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4629,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4630,"author":{"gitId":"-"},"content":" \"node_modules/batch\": {","isFullCredit":false},{"lineNumber":4631,"author":{"gitId":"-"},"content":" \"version\": \"0.6.1\",","isFullCredit":false},{"lineNumber":4632,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4633,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4634,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4635,"author":{"gitId":"-"},"content":" \"node_modules/big.js\": {","isFullCredit":false},{"lineNumber":4636,"author":{"gitId":"-"},"content":" \"version\": \"5.2.2\",","isFullCredit":false},{"lineNumber":4637,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4638,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4639,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4640,"author":{"gitId":"-"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":4641,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4642,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4643,"author":{"gitId":"-"},"content":" \"node_modules/binary-extensions\": {","isFullCredit":false},{"lineNumber":4644,"author":{"gitId":"-"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":4645,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4646,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4647,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4648,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":4649,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4650,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4651,"author":{"gitId":"-"},"content":" \"node_modules/bl\": {","isFullCredit":false},{"lineNumber":4652,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":4653,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4654,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4655,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4656,"author":{"gitId":"-"},"content":" \"buffer\": \"^5.5.0\",","isFullCredit":false},{"lineNumber":4657,"author":{"gitId":"-"},"content":" \"inherits\": \"^2.0.4\",","isFullCredit":false},{"lineNumber":4658,"author":{"gitId":"-"},"content":" \"readable-stream\": \"^3.4.0\"","isFullCredit":false},{"lineNumber":4659,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4660,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4661,"author":{"gitId":"-"},"content":" \"node_modules/bl/node_modules/readable-stream\": {","isFullCredit":false},{"lineNumber":4662,"author":{"gitId":"-"},"content":" \"version\": \"3.6.0\",","isFullCredit":false},{"lineNumber":4663,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4664,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4665,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4666,"author":{"gitId":"-"},"content":" \"inherits\": \"^2.0.3\",","isFullCredit":false},{"lineNumber":4667,"author":{"gitId":"-"},"content":" \"string_decoder\": \"^1.1.1\",","isFullCredit":false},{"lineNumber":4668,"author":{"gitId":"-"},"content":" \"util-deprecate\": \"^1.0.1\"","isFullCredit":false},{"lineNumber":4669,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4670,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4671,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":4672,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4673,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4674,"author":{"gitId":"-"},"content":" \"node_modules/bluebird\": {","isFullCredit":false},{"lineNumber":4675,"author":{"gitId":"-"},"content":" \"version\": \"3.7.2\",","isFullCredit":false},{"lineNumber":4676,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4677,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4678,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4679,"author":{"gitId":"-"},"content":" \"node_modules/body-parser\": {","isFullCredit":false},{"lineNumber":4680,"author":{"gitId":"-"},"content":" \"version\": \"1.20.2\",","isFullCredit":false},{"lineNumber":4681,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4682,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4683,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4684,"author":{"gitId":"-"},"content":" \"bytes\": \"3.1.2\",","isFullCredit":false},{"lineNumber":4685,"author":{"gitId":"-"},"content":" \"content-type\": \"~1.0.5\",","isFullCredit":false},{"lineNumber":4686,"author":{"gitId":"-"},"content":" \"debug\": \"2.6.9\",","isFullCredit":false},{"lineNumber":4687,"author":{"gitId":"-"},"content":" \"depd\": \"2.0.0\",","isFullCredit":false},{"lineNumber":4688,"author":{"gitId":"-"},"content":" \"destroy\": \"1.2.0\",","isFullCredit":false},{"lineNumber":4689,"author":{"gitId":"-"},"content":" \"http-errors\": \"2.0.0\",","isFullCredit":false},{"lineNumber":4690,"author":{"gitId":"-"},"content":" \"iconv-lite\": \"0.4.24\",","isFullCredit":false},{"lineNumber":4691,"author":{"gitId":"-"},"content":" \"on-finished\": \"2.4.1\",","isFullCredit":false},{"lineNumber":4692,"author":{"gitId":"-"},"content":" \"qs\": \"6.11.0\",","isFullCredit":false},{"lineNumber":4693,"author":{"gitId":"-"},"content":" \"raw-body\": \"2.5.2\",","isFullCredit":false},{"lineNumber":4694,"author":{"gitId":"-"},"content":" \"type-is\": \"~1.6.18\",","isFullCredit":false},{"lineNumber":4695,"author":{"gitId":"-"},"content":" \"unpipe\": \"1.0.0\"","isFullCredit":false},{"lineNumber":4696,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4697,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4698,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\",","isFullCredit":false},{"lineNumber":4699,"author":{"gitId":"-"},"content":" \"npm\": \"1.2.8000 || \u003e\u003d 1.4.16\"","isFullCredit":false},{"lineNumber":4700,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4701,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4702,"author":{"gitId":"-"},"content":" \"node_modules/body-parser/node_modules/bytes\": {","isFullCredit":false},{"lineNumber":4703,"author":{"gitId":"-"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":4704,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4705,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4706,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4707,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":4708,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4709,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4710,"author":{"gitId":"-"},"content":" \"node_modules/body-parser/node_modules/debug\": {","isFullCredit":false},{"lineNumber":4711,"author":{"gitId":"-"},"content":" \"version\": \"2.6.9\",","isFullCredit":false},{"lineNumber":4712,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4713,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4714,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4715,"author":{"gitId":"-"},"content":" \"ms\": \"2.0.0\"","isFullCredit":false},{"lineNumber":4716,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4717,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4718,"author":{"gitId":"-"},"content":" \"node_modules/body-parser/node_modules/depd\": {","isFullCredit":false},{"lineNumber":4719,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":4720,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4721,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4722,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4723,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":4724,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4725,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4726,"author":{"gitId":"-"},"content":" \"node_modules/body-parser/node_modules/iconv-lite\": {","isFullCredit":false},{"lineNumber":4727,"author":{"gitId":"-"},"content":" \"version\": \"0.4.24\",","isFullCredit":false},{"lineNumber":4728,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4729,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4730,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4731,"author":{"gitId":"-"},"content":" \"safer-buffer\": \"\u003e\u003d 2.1.2 \u003c 3\"","isFullCredit":false},{"lineNumber":4732,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4733,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4734,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":4735,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4736,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4737,"author":{"gitId":"-"},"content":" \"node_modules/body-parser/node_modules/ms\": {","isFullCredit":false},{"lineNumber":4738,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":4739,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4740,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4741,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4742,"author":{"gitId":"-"},"content":" \"node_modules/bonjour-service\": {","isFullCredit":false},{"lineNumber":4743,"author":{"gitId":"-"},"content":" \"version\": \"1.1.0\",","isFullCredit":false},{"lineNumber":4744,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4745,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4746,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4747,"author":{"gitId":"-"},"content":" \"array-flatten\": \"^2.1.2\",","isFullCredit":false},{"lineNumber":4748,"author":{"gitId":"-"},"content":" \"dns-equal\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":4749,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.3\",","isFullCredit":false},{"lineNumber":4750,"author":{"gitId":"-"},"content":" \"multicast-dns\": \"^7.2.5\"","isFullCredit":false},{"lineNumber":4751,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4752,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4753,"author":{"gitId":"-"},"content":" \"node_modules/boolbase\": {","isFullCredit":false},{"lineNumber":4754,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":4755,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":4756,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4757,"author":{"gitId":"-"},"content":" \"node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":4758,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":4759,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4760,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4761,"author":{"gitId":"-"},"content":" \"balanced-match\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":4762,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4763,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4764,"author":{"gitId":"-"},"content":" \"node_modules/braces\": {","isFullCredit":false},{"lineNumber":4765,"author":{"gitId":"-"},"content":" \"version\": \"3.0.2\",","isFullCredit":false},{"lineNumber":4766,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4767,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4768,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4769,"author":{"gitId":"-"},"content":" \"fill-range\": \"^7.0.1\"","isFullCredit":false},{"lineNumber":4770,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4771,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4772,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":4773,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4774,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4775,"author":{"gitId":"-"},"content":" \"node_modules/browserslist\": {","isFullCredit":false},{"lineNumber":4776,"author":{"gitId":"-"},"content":" \"version\": \"4.21.4\",","isFullCredit":false},{"lineNumber":4777,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":4778,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":4779,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":4780,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/browserslist\"","isFullCredit":false},{"lineNumber":4781,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4782,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":4783,"author":{"gitId":"-"},"content":" \"type\": \"tidelift\",","isFullCredit":false},{"lineNumber":4784,"author":{"gitId":"-"},"content":" \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"","isFullCredit":false},{"lineNumber":4785,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4786,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":4787,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4788,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4789,"author":{"gitId":"-"},"content":" \"caniuse-lite\": \"^1.0.30001400\",","isFullCredit":false},{"lineNumber":4790,"author":{"gitId":"-"},"content":" \"electron-to-chromium\": \"^1.4.251\",","isFullCredit":false},{"lineNumber":4791,"author":{"gitId":"-"},"content":" \"node-releases\": \"^2.0.6\",","isFullCredit":false},{"lineNumber":4792,"author":{"gitId":"-"},"content":" \"update-browserslist-db\": \"^1.0.9\"","isFullCredit":false},{"lineNumber":4793,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4794,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":4795,"author":{"gitId":"-"},"content":" \"browserslist\": \"cli.js\"","isFullCredit":false},{"lineNumber":4796,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4797,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4798,"author":{"gitId":"-"},"content":" \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || \u003e\u003d13.7\"","isFullCredit":false},{"lineNumber":4799,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4800,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4801,"author":{"gitId":"-"},"content":" \"node_modules/buffer\": {","isFullCredit":false},{"lineNumber":4802,"author":{"gitId":"-"},"content":" \"version\": \"5.7.1\",","isFullCredit":false},{"lineNumber":4803,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4804,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":4805,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":4806,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":4807,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":4808,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4809,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":4810,"author":{"gitId":"-"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":4811,"author":{"gitId":"-"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":4812,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4813,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":4814,"author":{"gitId":"-"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":4815,"author":{"gitId":"-"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":4816,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4817,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":4818,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4819,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4820,"author":{"gitId":"-"},"content":" \"base64-js\": \"^1.3.1\",","isFullCredit":false},{"lineNumber":4821,"author":{"gitId":"-"},"content":" \"ieee754\": \"^1.1.13\"","isFullCredit":false},{"lineNumber":4822,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4823,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4824,"author":{"gitId":"-"},"content":" \"node_modules/buffer-from\": {","isFullCredit":false},{"lineNumber":4825,"author":{"gitId":"-"},"content":" \"version\": \"1.1.2\",","isFullCredit":false},{"lineNumber":4826,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":4827,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4828,"author":{"gitId":"-"},"content":" \"node_modules/bytes\": {","isFullCredit":false},{"lineNumber":4829,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":4830,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4831,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4832,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4833,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":4834,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4835,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4836,"author":{"gitId":"-"},"content":" \"node_modules/call-bind\": {","isFullCredit":false},{"lineNumber":4837,"author":{"gitId":"-"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":4838,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4839,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4840,"author":{"gitId":"-"},"content":" \"es-define-property\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":4841,"author":{"gitId":"-"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":4842,"author":{"gitId":"-"},"content":" \"function-bind\": \"^1.1.2\",","isFullCredit":false},{"lineNumber":4843,"author":{"gitId":"-"},"content":" \"get-intrinsic\": \"^1.2.4\",","isFullCredit":false},{"lineNumber":4844,"author":{"gitId":"-"},"content":" \"set-function-length\": \"^1.2.1\"","isFullCredit":false},{"lineNumber":4845,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4846,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4847,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":4848,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4849,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4850,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":4851,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4852,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4853,"author":{"gitId":"-"},"content":" \"node_modules/callsites\": {","isFullCredit":false},{"lineNumber":4854,"author":{"gitId":"-"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":4855,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4856,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4857,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4858,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":4859,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4860,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4861,"author":{"gitId":"-"},"content":" \"node_modules/camel-case\": {","isFullCredit":false},{"lineNumber":4862,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":4863,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4864,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4865,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4866,"author":{"gitId":"-"},"content":" \"pascal-case\": \"^3.1.2\",","isFullCredit":false},{"lineNumber":4867,"author":{"gitId":"-"},"content":" \"tslib\": \"^2.0.3\"","isFullCredit":false},{"lineNumber":4868,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4869,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4870,"author":{"gitId":"-"},"content":" \"node_modules/camelcase\": {","isFullCredit":false},{"lineNumber":4871,"author":{"gitId":"-"},"content":" \"version\": \"6.3.0\",","isFullCredit":false},{"lineNumber":4872,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4873,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4874,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4875,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":4876,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4877,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4878,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":4879,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4880,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4881,"author":{"gitId":"-"},"content":" \"node_modules/caniuse-api\": {","isFullCredit":false},{"lineNumber":4882,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":4883,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4884,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4885,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4886,"author":{"gitId":"-"},"content":" \"browserslist\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":4887,"author":{"gitId":"-"},"content":" \"caniuse-lite\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":4888,"author":{"gitId":"-"},"content":" \"lodash.memoize\": \"^4.1.2\",","isFullCredit":false},{"lineNumber":4889,"author":{"gitId":"-"},"content":" \"lodash.uniq\": \"^4.5.0\"","isFullCredit":false},{"lineNumber":4890,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4891,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4892,"author":{"gitId":"-"},"content":" \"node_modules/caniuse-lite\": {","isFullCredit":false},{"lineNumber":4893,"author":{"gitId":"-"},"content":" \"version\": \"1.0.30001446\",","isFullCredit":false},{"lineNumber":4894,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":4895,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":4896,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":4897,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/browserslist\"","isFullCredit":false},{"lineNumber":4898,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4899,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":4900,"author":{"gitId":"-"},"content":" \"type\": \"tidelift\",","isFullCredit":false},{"lineNumber":4901,"author":{"gitId":"-"},"content":" \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"","isFullCredit":false},{"lineNumber":4902,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4903,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":4904,"author":{"gitId":"-"},"content":" \"license\": \"CC-BY-4.0\"","isFullCredit":false},{"lineNumber":4905,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4906,"author":{"gitId":"-"},"content":" \"node_modules/case-sensitive-paths-webpack-plugin\": {","isFullCredit":false},{"lineNumber":4907,"author":{"gitId":"-"},"content":" \"version\": \"2.4.0\",","isFullCredit":false},{"lineNumber":4908,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4909,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4910,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4911,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":4912,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4913,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4914,"author":{"gitId":"-"},"content":" \"node_modules/chalk\": {","isFullCredit":false},{"lineNumber":4915,"author":{"gitId":"-"},"content":" \"version\": \"2.4.2\",","isFullCredit":false},{"lineNumber":4916,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4917,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4918,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4919,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^3.2.1\",","isFullCredit":false},{"lineNumber":4920,"author":{"gitId":"-"},"content":" \"escape-string-regexp\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":4921,"author":{"gitId":"-"},"content":" \"supports-color\": \"^5.3.0\"","isFullCredit":false},{"lineNumber":4922,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4923,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4924,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":4925,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4926,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4927,"author":{"gitId":"-"},"content":" \"node_modules/character-parser\": {","isFullCredit":false},{"lineNumber":4928,"author":{"gitId":"-"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":4929,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4930,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4931,"author":{"gitId":"-"},"content":" \"is-regex\": \"^1.0.3\"","isFullCredit":false},{"lineNumber":4932,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4933,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4934,"author":{"gitId":"-"},"content":" \"node_modules/cheerio\": {","isFullCredit":false},{"lineNumber":4935,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0-rc.12\",","isFullCredit":false},{"lineNumber":4936,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4937,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4938,"author":{"gitId":"-"},"content":" \"cheerio-select\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":4939,"author":{"gitId":"-"},"content":" \"dom-serializer\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":4940,"author":{"gitId":"-"},"content":" \"domhandler\": \"^5.0.3\",","isFullCredit":false},{"lineNumber":4941,"author":{"gitId":"-"},"content":" \"domutils\": \"^3.0.1\",","isFullCredit":false},{"lineNumber":4942,"author":{"gitId":"-"},"content":" \"htmlparser2\": \"^8.0.1\",","isFullCredit":false},{"lineNumber":4943,"author":{"gitId":"-"},"content":" \"parse5\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":4944,"author":{"gitId":"-"},"content":" \"parse5-htmlparser2-tree-adapter\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":4945,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4946,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":4947,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":4948,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4949,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4950,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/cheeriojs/cheerio?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":4951,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4952,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4953,"author":{"gitId":"-"},"content":" \"node_modules/cheerio-select\": {","isFullCredit":false},{"lineNumber":4954,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":4955,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":4956,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4957,"author":{"gitId":"-"},"content":" \"boolbase\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":4958,"author":{"gitId":"-"},"content":" \"css-select\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":4959,"author":{"gitId":"-"},"content":" \"css-what\": \"^6.1.0\",","isFullCredit":false},{"lineNumber":4960,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":4961,"author":{"gitId":"-"},"content":" \"domhandler\": \"^5.0.3\",","isFullCredit":false},{"lineNumber":4962,"author":{"gitId":"-"},"content":" \"domutils\": \"^3.0.1\"","isFullCredit":false},{"lineNumber":4963,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4964,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4965,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/fb55\"","isFullCredit":false},{"lineNumber":4966,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4967,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4968,"author":{"gitId":"-"},"content":" \"node_modules/cheerio/node_modules/parse5\": {","isFullCredit":false},{"lineNumber":4969,"author":{"gitId":"-"},"content":" \"version\": \"7.1.2\",","isFullCredit":false},{"lineNumber":4970,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4971,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4972,"author":{"gitId":"-"},"content":" \"entities\": \"^4.4.0\"","isFullCredit":false},{"lineNumber":4973,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4974,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4975,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/inikulin/parse5?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":4976,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4977,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4978,"author":{"gitId":"-"},"content":" \"node_modules/cheerio/node_modules/parse5-htmlparser2-tree-adapter\": {","isFullCredit":false},{"lineNumber":4979,"author":{"gitId":"-"},"content":" \"version\": \"7.0.0\",","isFullCredit":false},{"lineNumber":4980,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4981,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":4982,"author":{"gitId":"-"},"content":" \"domhandler\": \"^5.0.2\",","isFullCredit":false},{"lineNumber":4983,"author":{"gitId":"-"},"content":" \"parse5\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":4984,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4985,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":4986,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/inikulin/parse5?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":4987,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4988,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":4989,"author":{"gitId":"-"},"content":" \"node_modules/chokidar\": {","isFullCredit":false},{"lineNumber":4990,"author":{"gitId":"-"},"content":" \"version\": \"3.5.3\",","isFullCredit":false},{"lineNumber":4991,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":4992,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":4993,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":4994,"author":{"gitId":"-"},"content":" \"type\": \"individual\",","isFullCredit":false},{"lineNumber":4995,"author":{"gitId":"-"},"content":" \"url\": \"https://paulmillr.com/funding/\"","isFullCredit":false},{"lineNumber":4996,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":4997,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":4998,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":4999,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5000,"author":{"gitId":"-"},"content":" \"anymatch\": \"~3.1.2\",","isFullCredit":false},{"lineNumber":5001,"author":{"gitId":"-"},"content":" \"braces\": \"~3.0.2\",","isFullCredit":false},{"lineNumber":5002,"author":{"gitId":"-"},"content":" \"glob-parent\": \"~5.1.2\",","isFullCredit":false},{"lineNumber":5003,"author":{"gitId":"-"},"content":" \"is-binary-path\": \"~2.1.0\",","isFullCredit":false},{"lineNumber":5004,"author":{"gitId":"-"},"content":" \"is-glob\": \"~4.0.1\",","isFullCredit":false},{"lineNumber":5005,"author":{"gitId":"-"},"content":" \"normalize-path\": \"~3.0.0\",","isFullCredit":false},{"lineNumber":5006,"author":{"gitId":"-"},"content":" \"readdirp\": \"~3.6.0\"","isFullCredit":false},{"lineNumber":5007,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5008,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5009,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 8.10.0\"","isFullCredit":false},{"lineNumber":5010,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5011,"author":{"gitId":"-"},"content":" \"optionalDependencies\": {","isFullCredit":false},{"lineNumber":5012,"author":{"gitId":"-"},"content":" \"fsevents\": \"~2.3.2\"","isFullCredit":false},{"lineNumber":5013,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5014,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5015,"author":{"gitId":"-"},"content":" \"node_modules/chokidar/node_modules/glob-parent\": {","isFullCredit":false},{"lineNumber":5016,"author":{"gitId":"-"},"content":" \"version\": \"5.1.2\",","isFullCredit":false},{"lineNumber":5017,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5018,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":5019,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5020,"author":{"gitId":"-"},"content":" \"is-glob\": \"^4.0.1\"","isFullCredit":false},{"lineNumber":5021,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5022,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5023,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":5024,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5025,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5026,"author":{"gitId":"-"},"content":" \"node_modules/chrome-trace-event\": {","isFullCredit":false},{"lineNumber":5027,"author":{"gitId":"-"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":5028,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5029,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5030,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.0\"","isFullCredit":false},{"lineNumber":5031,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5032,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5033,"author":{"gitId":"-"},"content":" \"node_modules/ci-info\": {","isFullCredit":false},{"lineNumber":5034,"author":{"gitId":"-"},"content":" \"version\": \"1.6.0\",","isFullCredit":false},{"lineNumber":5035,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5036,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5037,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5038,"author":{"gitId":"-"},"content":" \"node_modules/clean-css\": {","isFullCredit":false},{"lineNumber":5039,"author":{"gitId":"-"},"content":" \"version\": \"5.3.2\",","isFullCredit":false},{"lineNumber":5040,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5041,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5042,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5043,"author":{"gitId":"-"},"content":" \"source-map\": \"~0.6.0\"","isFullCredit":false},{"lineNumber":5044,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5045,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5046,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10.0\"","isFullCredit":false},{"lineNumber":5047,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5048,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5049,"author":{"gitId":"-"},"content":" \"node_modules/cli-cursor\": {","isFullCredit":false},{"lineNumber":5050,"author":{"gitId":"-"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":5051,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5052,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5053,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5054,"author":{"gitId":"-"},"content":" \"restore-cursor\": \"^3.1.0\"","isFullCredit":false},{"lineNumber":5055,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5056,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5057,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5058,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5059,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5060,"author":{"gitId":"-"},"content":" \"node_modules/cli-highlight\": {","isFullCredit":false},{"lineNumber":5061,"author":{"gitId":"-"},"content":" \"version\": \"2.1.11\",","isFullCredit":false},{"lineNumber":5062,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5063,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":5064,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5065,"author":{"gitId":"-"},"content":" \"chalk\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":5066,"author":{"gitId":"-"},"content":" \"highlight.js\": \"^10.7.1\",","isFullCredit":false},{"lineNumber":5067,"author":{"gitId":"-"},"content":" \"mz\": \"^2.4.0\",","isFullCredit":false},{"lineNumber":5068,"author":{"gitId":"-"},"content":" \"parse5\": \"^5.1.1\",","isFullCredit":false},{"lineNumber":5069,"author":{"gitId":"-"},"content":" \"parse5-htmlparser2-tree-adapter\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":5070,"author":{"gitId":"-"},"content":" \"yargs\": \"^16.0.0\"","isFullCredit":false},{"lineNumber":5071,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5072,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":5073,"author":{"gitId":"-"},"content":" \"highlight\": \"bin/highlight\"","isFullCredit":false},{"lineNumber":5074,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5075,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5076,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8.0.0\",","isFullCredit":false},{"lineNumber":5077,"author":{"gitId":"-"},"content":" \"npm\": \"\u003e\u003d5.0.0\"","isFullCredit":false},{"lineNumber":5078,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5079,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5080,"author":{"gitId":"-"},"content":" \"node_modules/cli-highlight/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":5081,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":5082,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5083,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5084,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5085,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":5086,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5087,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5088,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5089,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5090,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5091,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":5092,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5093,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5094,"author":{"gitId":"-"},"content":" \"node_modules/cli-highlight/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":5095,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":5096,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5097,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5098,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5099,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":5100,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":5101,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5102,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5103,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":5104,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5105,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5106,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":5107,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5108,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5109,"author":{"gitId":"-"},"content":" \"node_modules/cli-highlight/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":5110,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":5111,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5112,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5113,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5114,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":5115,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5116,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5117,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":5118,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5119,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5120,"author":{"gitId":"-"},"content":" \"node_modules/cli-highlight/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":5121,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":5122,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5123,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5124,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5125,"author":{"gitId":"-"},"content":" \"node_modules/cli-highlight/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":5126,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":5127,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5128,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5129,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5130,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5132,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5133,"author":{"gitId":"-"},"content":" \"node_modules/cli-highlight/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":5134,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":5135,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5136,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5137,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5138,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":5139,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5140,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5141,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5142,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5143,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5144,"author":{"gitId":"-"},"content":" \"node_modules/cli-spinners\": {","isFullCredit":false},{"lineNumber":5145,"author":{"gitId":"-"},"content":" \"version\": \"2.7.0\",","isFullCredit":false},{"lineNumber":5146,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5147,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5148,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5149,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":5150,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5151,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5152,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":5153,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5154,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5155,"author":{"gitId":"-"},"content":" \"node_modules/clipboardy\": {","isFullCredit":false},{"lineNumber":5156,"author":{"gitId":"-"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":5157,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5158,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5159,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5160,"author":{"gitId":"-"},"content":" \"arch\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":5161,"author":{"gitId":"-"},"content":" \"execa\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":5162,"author":{"gitId":"-"},"content":" \"is-wsl\": \"^2.1.1\"","isFullCredit":false},{"lineNumber":5163,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5164,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5165,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5166,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5167,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5168,"author":{"gitId":"-"},"content":" \"node_modules/cliui\": {","isFullCredit":false},{"lineNumber":5169,"author":{"gitId":"-"},"content":" \"version\": \"7.0.4\",","isFullCredit":false},{"lineNumber":5170,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5171,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":5172,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5173,"author":{"gitId":"-"},"content":" \"string-width\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":5174,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":5175,"author":{"gitId":"-"},"content":" \"wrap-ansi\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":5176,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5177,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5178,"author":{"gitId":"-"},"content":" \"node_modules/clone\": {","isFullCredit":false},{"lineNumber":5179,"author":{"gitId":"-"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":5180,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5181,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5182,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5183,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.8\"","isFullCredit":false},{"lineNumber":5184,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5185,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5186,"author":{"gitId":"-"},"content":" \"node_modules/clone-deep\": {","isFullCredit":false},{"lineNumber":5187,"author":{"gitId":"-"},"content":" \"version\": \"4.0.1\",","isFullCredit":false},{"lineNumber":5188,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5189,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5190,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5191,"author":{"gitId":"-"},"content":" \"is-plain-object\": \"^2.0.4\",","isFullCredit":false},{"lineNumber":5192,"author":{"gitId":"-"},"content":" \"kind-of\": \"^6.0.2\",","isFullCredit":false},{"lineNumber":5193,"author":{"gitId":"-"},"content":" \"shallow-clone\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":5194,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5195,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5196,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":5197,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5198,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5199,"author":{"gitId":"-"},"content":" \"node_modules/clone-deep/node_modules/is-plain-object\": {","isFullCredit":false},{"lineNumber":5200,"author":{"gitId":"-"},"content":" \"version\": \"2.0.4\",","isFullCredit":false},{"lineNumber":5201,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5202,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5203,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5204,"author":{"gitId":"-"},"content":" \"isobject\": \"^3.0.1\"","isFullCredit":false},{"lineNumber":5205,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5206,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5207,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":5208,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5209,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5210,"author":{"gitId":"-"},"content":" \"node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":5211,"author":{"gitId":"-"},"content":" \"version\": \"1.9.3\",","isFullCredit":false},{"lineNumber":5212,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5213,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5214,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5215,"author":{"gitId":"-"},"content":" \"color-name\": \"1.1.3\"","isFullCredit":false},{"lineNumber":5216,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5217,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5218,"author":{"gitId":"-"},"content":" \"node_modules/color-name\": {","isFullCredit":false},{"lineNumber":5219,"author":{"gitId":"-"},"content":" \"version\": \"1.1.3\",","isFullCredit":false},{"lineNumber":5220,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5221,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5222,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5223,"author":{"gitId":"-"},"content":" \"node_modules/colord\": {","isFullCredit":false},{"lineNumber":5224,"author":{"gitId":"-"},"content":" \"version\": \"2.9.3\",","isFullCredit":false},{"lineNumber":5225,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5226,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5227,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5228,"author":{"gitId":"-"},"content":" \"node_modules/colorette\": {","isFullCredit":false},{"lineNumber":5229,"author":{"gitId":"-"},"content":" \"version\": \"2.0.19\",","isFullCredit":false},{"lineNumber":5230,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5231,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5232,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5233,"author":{"gitId":"-"},"content":" \"node_modules/commander\": {","isFullCredit":false},{"lineNumber":5234,"author":{"gitId":"-"},"content":" \"version\": \"8.3.0\",","isFullCredit":false},{"lineNumber":5235,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5236,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5237,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5238,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 12\"","isFullCredit":false},{"lineNumber":5239,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5240,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5241,"author":{"gitId":"-"},"content":" \"node_modules/commondir\": {","isFullCredit":false},{"lineNumber":5242,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":5243,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5244,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5245,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5246,"author":{"gitId":"-"},"content":" \"node_modules/compressible\": {","isFullCredit":false},{"lineNumber":5247,"author":{"gitId":"-"},"content":" \"version\": \"2.0.18\",","isFullCredit":false},{"lineNumber":5248,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5249,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5250,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5251,"author":{"gitId":"-"},"content":" \"mime-db\": \"\u003e\u003d 1.43.0 \u003c 2\"","isFullCredit":false},{"lineNumber":5252,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5253,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5254,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":5255,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5256,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5257,"author":{"gitId":"-"},"content":" \"node_modules/compression\": {","isFullCredit":false},{"lineNumber":5258,"author":{"gitId":"-"},"content":" \"version\": \"1.7.4\",","isFullCredit":false},{"lineNumber":5259,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5260,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5261,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5262,"author":{"gitId":"-"},"content":" \"accepts\": \"~1.3.5\",","isFullCredit":false},{"lineNumber":5263,"author":{"gitId":"-"},"content":" \"bytes\": \"3.0.0\",","isFullCredit":false},{"lineNumber":5264,"author":{"gitId":"-"},"content":" \"compressible\": \"~2.0.16\",","isFullCredit":false},{"lineNumber":5265,"author":{"gitId":"-"},"content":" \"debug\": \"2.6.9\",","isFullCredit":false},{"lineNumber":5266,"author":{"gitId":"-"},"content":" \"on-headers\": \"~1.0.2\",","isFullCredit":false},{"lineNumber":5267,"author":{"gitId":"-"},"content":" \"safe-buffer\": \"5.1.2\",","isFullCredit":false},{"lineNumber":5268,"author":{"gitId":"-"},"content":" \"vary\": \"~1.1.2\"","isFullCredit":false},{"lineNumber":5269,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5270,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5271,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8.0\"","isFullCredit":false},{"lineNumber":5272,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5273,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5274,"author":{"gitId":"-"},"content":" \"node_modules/compression/node_modules/debug\": {","isFullCredit":false},{"lineNumber":5275,"author":{"gitId":"-"},"content":" \"version\": \"2.6.9\",","isFullCredit":false},{"lineNumber":5276,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5277,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5278,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5279,"author":{"gitId":"-"},"content":" \"ms\": \"2.0.0\"","isFullCredit":false},{"lineNumber":5280,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5281,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5282,"author":{"gitId":"-"},"content":" \"node_modules/compression/node_modules/ms\": {","isFullCredit":false},{"lineNumber":5283,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":5284,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5285,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5286,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5287,"author":{"gitId":"-"},"content":" \"node_modules/concat-map\": {","isFullCredit":false},{"lineNumber":5288,"author":{"gitId":"-"},"content":" \"version\": \"0.0.1\",","isFullCredit":false},{"lineNumber":5289,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5290,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5291,"author":{"gitId":"-"},"content":" \"node_modules/confusing-browser-globals\": {","isFullCredit":false},{"lineNumber":5292,"author":{"gitId":"-"},"content":" \"version\": \"1.0.11\",","isFullCredit":false},{"lineNumber":5293,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5294,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5295,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5296,"author":{"gitId":"-"},"content":" \"node_modules/connect-history-api-fallback\": {","isFullCredit":false},{"lineNumber":5297,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":5298,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5299,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5300,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5301,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.8\"","isFullCredit":false},{"lineNumber":5302,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5303,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5304,"author":{"gitId":"-"},"content":" \"node_modules/consolidate\": {","isFullCredit":false},{"lineNumber":5305,"author":{"gitId":"-"},"content":" \"version\": \"0.15.1\",","isFullCredit":false},{"lineNumber":5306,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5307,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5308,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5309,"author":{"gitId":"-"},"content":" \"bluebird\": \"^3.1.1\"","isFullCredit":false},{"lineNumber":5310,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5311,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5312,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.10.0\"","isFullCredit":false},{"lineNumber":5313,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5314,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5315,"author":{"gitId":"-"},"content":" \"node_modules/constantinople\": {","isFullCredit":false},{"lineNumber":5316,"author":{"gitId":"-"},"content":" \"version\": \"4.0.1\",","isFullCredit":false},{"lineNumber":5317,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5318,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5319,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5320,"author":{"gitId":"-"},"content":" \"@babel/parser\": \"^7.6.0\",","isFullCredit":false},{"lineNumber":5321,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.6.1\"","isFullCredit":false},{"lineNumber":5322,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5323,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5324,"author":{"gitId":"-"},"content":" \"node_modules/content-disposition\": {","isFullCredit":false},{"lineNumber":5325,"author":{"gitId":"-"},"content":" \"version\": \"0.5.4\",","isFullCredit":false},{"lineNumber":5326,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5327,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5328,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5329,"author":{"gitId":"-"},"content":" \"safe-buffer\": \"5.2.1\"","isFullCredit":false},{"lineNumber":5330,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5331,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5332,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":5333,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5334,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5335,"author":{"gitId":"-"},"content":" \"node_modules/content-disposition/node_modules/safe-buffer\": {","isFullCredit":false},{"lineNumber":5336,"author":{"gitId":"-"},"content":" \"version\": \"5.2.1\",","isFullCredit":false},{"lineNumber":5337,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5338,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":5339,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":5340,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":5341,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":5342,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5343,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":5344,"author":{"gitId":"-"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":5345,"author":{"gitId":"-"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":5346,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5347,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":5348,"author":{"gitId":"-"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":5349,"author":{"gitId":"-"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":5350,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5351,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":5352,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5353,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5354,"author":{"gitId":"-"},"content":" \"node_modules/content-type\": {","isFullCredit":false},{"lineNumber":5355,"author":{"gitId":"-"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":5356,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5357,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5358,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5359,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":5360,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5361,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5362,"author":{"gitId":"-"},"content":" \"node_modules/convert-source-map\": {","isFullCredit":false},{"lineNumber":5363,"author":{"gitId":"-"},"content":" \"version\": \"1.9.0\",","isFullCredit":false},{"lineNumber":5364,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5365,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5366,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5367,"author":{"gitId":"-"},"content":" \"node_modules/cookie\": {","isFullCredit":false},{"lineNumber":5368,"author":{"gitId":"-"},"content":" \"version\": \"0.6.0\",","isFullCredit":false},{"lineNumber":5369,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5370,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5371,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5372,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":5373,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5374,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5375,"author":{"gitId":"-"},"content":" \"node_modules/cookie-signature\": {","isFullCredit":false},{"lineNumber":5376,"author":{"gitId":"-"},"content":" \"version\": \"1.0.6\",","isFullCredit":false},{"lineNumber":5377,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5378,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5379,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5380,"author":{"gitId":"-"},"content":" \"node_modules/copy-webpack-plugin\": {","isFullCredit":false},{"lineNumber":5381,"author":{"gitId":"-"},"content":" \"version\": \"9.1.0\",","isFullCredit":false},{"lineNumber":5382,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5383,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5384,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5385,"author":{"gitId":"-"},"content":" \"fast-glob\": \"^3.2.7\",","isFullCredit":false},{"lineNumber":5386,"author":{"gitId":"-"},"content":" \"glob-parent\": \"^6.0.1\",","isFullCredit":false},{"lineNumber":5387,"author":{"gitId":"-"},"content":" \"globby\": \"^11.0.3\",","isFullCredit":false},{"lineNumber":5388,"author":{"gitId":"-"},"content":" \"normalize-path\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":5389,"author":{"gitId":"-"},"content":" \"schema-utils\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":5390,"author":{"gitId":"-"},"content":" \"serialize-javascript\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":5391,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5392,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5393,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 12.13.0\"","isFullCredit":false},{"lineNumber":5394,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5395,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5396,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":5397,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":5398,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5399,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":5400,"author":{"gitId":"-"},"content":" \"webpack\": \"^5.1.0\"","isFullCredit":false},{"lineNumber":5401,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5402,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5403,"author":{"gitId":"-"},"content":" \"node_modules/copy-webpack-plugin/node_modules/schema-utils\": {","isFullCredit":false},{"lineNumber":5404,"author":{"gitId":"-"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":5405,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5406,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5407,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5408,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.8\",","isFullCredit":false},{"lineNumber":5409,"author":{"gitId":"-"},"content":" \"ajv\": \"^6.12.5\",","isFullCredit":false},{"lineNumber":5410,"author":{"gitId":"-"},"content":" \"ajv-keywords\": \"^3.5.2\"","isFullCredit":false},{"lineNumber":5411,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5412,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5413,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10.13.0\"","isFullCredit":false},{"lineNumber":5414,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5415,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5416,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":5417,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":5418,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5419,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5420,"author":{"gitId":"-"},"content":" \"node_modules/core-js\": {","isFullCredit":false},{"lineNumber":5421,"author":{"gitId":"-"},"content":" \"version\": \"3.36.1\",","isFullCredit":false},{"lineNumber":5422,"author":{"gitId":"-"},"content":" \"hasInstallScript\": true,","isFullCredit":false},{"lineNumber":5423,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5424,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5425,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":5426,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/core-js\"","isFullCredit":false},{"lineNumber":5427,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5428,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5429,"author":{"gitId":"-"},"content":" \"node_modules/core-js-compat\": {","isFullCredit":false},{"lineNumber":5430,"author":{"gitId":"-"},"content":" \"version\": \"3.27.2\",","isFullCredit":false},{"lineNumber":5431,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5432,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5433,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5434,"author":{"gitId":"-"},"content":" \"browserslist\": \"^4.21.4\"","isFullCredit":false},{"lineNumber":5435,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5436,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5437,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":5438,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/core-js\"","isFullCredit":false},{"lineNumber":5439,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5440,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5441,"author":{"gitId":"-"},"content":" \"node_modules/core-util-is\": {","isFullCredit":false},{"lineNumber":5442,"author":{"gitId":"-"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":5443,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5444,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5445,"author":{"gitId":"-"},"content":" \"node_modules/cosmiconfig\": {","isFullCredit":false},{"lineNumber":5446,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":5447,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5448,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5449,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5450,"author":{"gitId":"-"},"content":" \"@types/parse-json\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":5451,"author":{"gitId":"-"},"content":" \"import-fresh\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":5452,"author":{"gitId":"-"},"content":" \"parse-json\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":5453,"author":{"gitId":"-"},"content":" \"path-type\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":5454,"author":{"gitId":"-"},"content":" \"yaml\": \"^1.7.2\"","isFullCredit":false},{"lineNumber":5455,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5456,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5457,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5458,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5459,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5460,"author":{"gitId":"-"},"content":" \"node_modules/cross-spawn\": {","isFullCredit":false},{"lineNumber":5461,"author":{"gitId":"-"},"content":" \"version\": \"7.0.3\",","isFullCredit":false},{"lineNumber":5462,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5463,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5464,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5465,"author":{"gitId":"-"},"content":" \"path-key\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":5466,"author":{"gitId":"-"},"content":" \"shebang-command\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":5467,"author":{"gitId":"-"},"content":" \"which\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":5468,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5469,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5470,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":5471,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5472,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5473,"author":{"gitId":"-"},"content":" \"node_modules/css-declaration-sorter\": {","isFullCredit":false},{"lineNumber":5474,"author":{"gitId":"-"},"content":" \"version\": \"6.3.1\",","isFullCredit":false},{"lineNumber":5475,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5476,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":5477,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5478,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14\"","isFullCredit":false},{"lineNumber":5479,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5480,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":5481,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.0.9\"","isFullCredit":false},{"lineNumber":5482,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5483,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5484,"author":{"gitId":"-"},"content":" \"node_modules/css-functions-list\": {","isFullCredit":false},{"lineNumber":5485,"author":{"gitId":"-"},"content":" \"version\": \"3.2.1\",","isFullCredit":false},{"lineNumber":5486,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz\",","isFullCredit":false},{"lineNumber":5487,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":5488,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5489,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5490,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d12 || \u003e\u003d16\"","isFullCredit":false},{"lineNumber":5491,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5492,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5493,"author":{"gitId":"-"},"content":" \"node_modules/css-loader\": {","isFullCredit":false},{"lineNumber":5494,"author":{"gitId":"-"},"content":" \"version\": \"6.7.3\",","isFullCredit":false},{"lineNumber":5495,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5496,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5497,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5498,"author":{"gitId":"-"},"content":" \"icss-utils\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":5499,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.4.19\",","isFullCredit":false},{"lineNumber":5500,"author":{"gitId":"-"},"content":" \"postcss-modules-extract-imports\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":5501,"author":{"gitId":"-"},"content":" \"postcss-modules-local-by-default\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":5502,"author":{"gitId":"-"},"content":" \"postcss-modules-scope\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":5503,"author":{"gitId":"-"},"content":" \"postcss-modules-values\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":5504,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":5505,"author":{"gitId":"-"},"content":" \"semver\": \"^7.3.8\"","isFullCredit":false},{"lineNumber":5506,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5507,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5508,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 12.13.0\"","isFullCredit":false},{"lineNumber":5509,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5510,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5511,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":5512,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":5513,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5514,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":5515,"author":{"gitId":"-"},"content":" \"webpack\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":5516,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5517,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5518,"author":{"gitId":"-"},"content":" \"node_modules/css-loader/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":5519,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":5520,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5521,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":5522,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5523,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":5524,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5525,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5526,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":5527,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5528,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5529,"author":{"gitId":"-"},"content":" \"node_modules/css-loader/node_modules/semver\": {","isFullCredit":false},{"lineNumber":5530,"author":{"gitId":"-"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":5531,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5532,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":5533,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5534,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":5535,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5536,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":5537,"author":{"gitId":"-"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":5538,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5539,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5540,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":5541,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5542,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5543,"author":{"gitId":"-"},"content":" \"node_modules/css-loader/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":5544,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":5545,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5546,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":5547,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5548,"author":{"gitId":"-"},"content":" \"node_modules/css-minimizer-webpack-plugin\": {","isFullCredit":false},{"lineNumber":5549,"author":{"gitId":"-"},"content":" \"version\": \"3.4.1\",","isFullCredit":false},{"lineNumber":5550,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5551,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5552,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5553,"author":{"gitId":"-"},"content":" \"cssnano\": \"^5.0.6\",","isFullCredit":false},{"lineNumber":5554,"author":{"gitId":"-"},"content":" \"jest-worker\": \"^27.0.2\",","isFullCredit":false},{"lineNumber":5555,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.3.5\",","isFullCredit":false},{"lineNumber":5556,"author":{"gitId":"-"},"content":" \"schema-utils\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":5557,"author":{"gitId":"-"},"content":" \"serialize-javascript\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":5558,"author":{"gitId":"-"},"content":" \"source-map\": \"^0.6.1\"","isFullCredit":false},{"lineNumber":5559,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5560,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5561,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 12.13.0\"","isFullCredit":false},{"lineNumber":5562,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5563,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5564,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":5565,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":5566,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5567,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":5568,"author":{"gitId":"-"},"content":" \"webpack\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":5569,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5570,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":5571,"author":{"gitId":"-"},"content":" \"@parcel/css\": {","isFullCredit":false},{"lineNumber":5572,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":5573,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5574,"author":{"gitId":"-"},"content":" \"clean-css\": {","isFullCredit":false},{"lineNumber":5575,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":5576,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5577,"author":{"gitId":"-"},"content":" \"csso\": {","isFullCredit":false},{"lineNumber":5578,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":5579,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5580,"author":{"gitId":"-"},"content":" \"esbuild\": {","isFullCredit":false},{"lineNumber":5581,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":5582,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5583,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5584,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5585,"author":{"gitId":"-"},"content":" \"node_modules/css-minimizer-webpack-plugin/node_modules/ajv\": {","isFullCredit":false},{"lineNumber":5586,"author":{"gitId":"-"},"content":" \"version\": \"8.12.0\",","isFullCredit":false},{"lineNumber":5587,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5588,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5589,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5590,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":5591,"author":{"gitId":"-"},"content":" \"json-schema-traverse\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":5592,"author":{"gitId":"-"},"content":" \"require-from-string\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":5593,"author":{"gitId":"-"},"content":" \"uri-js\": \"^4.2.2\"","isFullCredit":false},{"lineNumber":5594,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5595,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5596,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":5597,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/epoberezkin\"","isFullCredit":false},{"lineNumber":5598,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5599,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5600,"author":{"gitId":"-"},"content":" \"node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords\": {","isFullCredit":false},{"lineNumber":5601,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":5602,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5603,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5604,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5605,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.3\"","isFullCredit":false},{"lineNumber":5606,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5607,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":5608,"author":{"gitId":"-"},"content":" \"ajv\": \"^8.8.2\"","isFullCredit":false},{"lineNumber":5609,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5610,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5611,"author":{"gitId":"-"},"content":" \"node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse\": {","isFullCredit":false},{"lineNumber":5612,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":5613,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5614,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5615,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5616,"author":{"gitId":"-"},"content":" \"node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils\": {","isFullCredit":false},{"lineNumber":5617,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":5618,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5619,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5620,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5621,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.9\",","isFullCredit":false},{"lineNumber":5622,"author":{"gitId":"-"},"content":" \"ajv\": \"^8.8.0\",","isFullCredit":false},{"lineNumber":5623,"author":{"gitId":"-"},"content":" \"ajv-formats\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":5624,"author":{"gitId":"-"},"content":" \"ajv-keywords\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":5625,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5626,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5627,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 12.13.0\"","isFullCredit":false},{"lineNumber":5628,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5629,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5630,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":5631,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":5632,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5633,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5634,"author":{"gitId":"-"},"content":" \"node_modules/css-select\": {","isFullCredit":false},{"lineNumber":5635,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":5636,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":5637,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5638,"author":{"gitId":"-"},"content":" \"boolbase\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":5639,"author":{"gitId":"-"},"content":" \"css-what\": \"^6.1.0\",","isFullCredit":false},{"lineNumber":5640,"author":{"gitId":"-"},"content":" \"domhandler\": \"^5.0.2\",","isFullCredit":false},{"lineNumber":5641,"author":{"gitId":"-"},"content":" \"domutils\": \"^3.0.1\",","isFullCredit":false},{"lineNumber":5642,"author":{"gitId":"-"},"content":" \"nth-check\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":5643,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5644,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5645,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/fb55\"","isFullCredit":false},{"lineNumber":5646,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5647,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5648,"author":{"gitId":"-"},"content":" \"node_modules/css-selector-parser\": {","isFullCredit":false},{"lineNumber":5649,"author":{"gitId":"-"},"content":" \"version\": \"1.4.1\",","isFullCredit":false},{"lineNumber":5650,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5651,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5652,"author":{"gitId":"-"},"content":" \"node_modules/css-tree\": {","isFullCredit":false},{"lineNumber":5653,"author":{"gitId":"-"},"content":" \"version\": \"1.1.3\",","isFullCredit":false},{"lineNumber":5654,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5655,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5656,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5657,"author":{"gitId":"-"},"content":" \"mdn-data\": \"2.0.14\",","isFullCredit":false},{"lineNumber":5658,"author":{"gitId":"-"},"content":" \"source-map\": \"^0.6.1\"","isFullCredit":false},{"lineNumber":5659,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5660,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5661,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8.0.0\"","isFullCredit":false},{"lineNumber":5662,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5663,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5664,"author":{"gitId":"-"},"content":" \"node_modules/css-what\": {","isFullCredit":false},{"lineNumber":5665,"author":{"gitId":"-"},"content":" \"version\": \"6.1.0\",","isFullCredit":false},{"lineNumber":5666,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":5667,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5668,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":5669,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5670,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5671,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/fb55\"","isFullCredit":false},{"lineNumber":5672,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5673,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5674,"author":{"gitId":"-"},"content":" \"node_modules/cssesc\": {","isFullCredit":false},{"lineNumber":5675,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":5676,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5677,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5678,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":5679,"author":{"gitId":"-"},"content":" \"cssesc\": \"bin/cssesc\"","isFullCredit":false},{"lineNumber":5680,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5681,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5682,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":5683,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5684,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5685,"author":{"gitId":"-"},"content":" \"node_modules/cssnano\": {","isFullCredit":false},{"lineNumber":5686,"author":{"gitId":"-"},"content":" \"version\": \"5.1.14\",","isFullCredit":false},{"lineNumber":5687,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5688,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5689,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5690,"author":{"gitId":"-"},"content":" \"cssnano-preset-default\": \"^5.2.13\",","isFullCredit":false},{"lineNumber":5691,"author":{"gitId":"-"},"content":" \"lilconfig\": \"^2.0.3\",","isFullCredit":false},{"lineNumber":5692,"author":{"gitId":"-"},"content":" \"yaml\": \"^1.10.2\"","isFullCredit":false},{"lineNumber":5693,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5694,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5695,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":5696,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5697,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5698,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":5699,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/cssnano\"","isFullCredit":false},{"lineNumber":5700,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5701,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":5702,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":5703,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5704,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5705,"author":{"gitId":"-"},"content":" \"node_modules/cssnano-preset-default\": {","isFullCredit":false},{"lineNumber":5706,"author":{"gitId":"-"},"content":" \"version\": \"5.2.13\",","isFullCredit":false},{"lineNumber":5707,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5708,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5709,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5710,"author":{"gitId":"-"},"content":" \"css-declaration-sorter\": \"^6.3.1\",","isFullCredit":false},{"lineNumber":5711,"author":{"gitId":"-"},"content":" \"cssnano-utils\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":5712,"author":{"gitId":"-"},"content":" \"postcss-calc\": \"^8.2.3\",","isFullCredit":false},{"lineNumber":5713,"author":{"gitId":"-"},"content":" \"postcss-colormin\": \"^5.3.0\",","isFullCredit":false},{"lineNumber":5714,"author":{"gitId":"-"},"content":" \"postcss-convert-values\": \"^5.1.3\",","isFullCredit":false},{"lineNumber":5715,"author":{"gitId":"-"},"content":" \"postcss-discard-comments\": \"^5.1.2\",","isFullCredit":false},{"lineNumber":5716,"author":{"gitId":"-"},"content":" \"postcss-discard-duplicates\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":5717,"author":{"gitId":"-"},"content":" \"postcss-discard-empty\": \"^5.1.1\",","isFullCredit":false},{"lineNumber":5718,"author":{"gitId":"-"},"content":" \"postcss-discard-overridden\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":5719,"author":{"gitId":"-"},"content":" \"postcss-merge-longhand\": \"^5.1.7\",","isFullCredit":false},{"lineNumber":5720,"author":{"gitId":"-"},"content":" \"postcss-merge-rules\": \"^5.1.3\",","isFullCredit":false},{"lineNumber":5721,"author":{"gitId":"-"},"content":" \"postcss-minify-font-values\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":5722,"author":{"gitId":"-"},"content":" \"postcss-minify-gradients\": \"^5.1.1\",","isFullCredit":false},{"lineNumber":5723,"author":{"gitId":"-"},"content":" \"postcss-minify-params\": \"^5.1.4\",","isFullCredit":false},{"lineNumber":5724,"author":{"gitId":"-"},"content":" \"postcss-minify-selectors\": \"^5.2.1\",","isFullCredit":false},{"lineNumber":5725,"author":{"gitId":"-"},"content":" \"postcss-normalize-charset\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":5726,"author":{"gitId":"-"},"content":" \"postcss-normalize-display-values\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":5727,"author":{"gitId":"-"},"content":" \"postcss-normalize-positions\": \"^5.1.1\",","isFullCredit":false},{"lineNumber":5728,"author":{"gitId":"-"},"content":" \"postcss-normalize-repeat-style\": \"^5.1.1\",","isFullCredit":false},{"lineNumber":5729,"author":{"gitId":"-"},"content":" \"postcss-normalize-string\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":5730,"author":{"gitId":"-"},"content":" \"postcss-normalize-timing-functions\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":5731,"author":{"gitId":"-"},"content":" \"postcss-normalize-unicode\": \"^5.1.1\",","isFullCredit":false},{"lineNumber":5732,"author":{"gitId":"-"},"content":" \"postcss-normalize-url\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":5733,"author":{"gitId":"-"},"content":" \"postcss-normalize-whitespace\": \"^5.1.1\",","isFullCredit":false},{"lineNumber":5734,"author":{"gitId":"-"},"content":" \"postcss-ordered-values\": \"^5.1.3\",","isFullCredit":false},{"lineNumber":5735,"author":{"gitId":"-"},"content":" \"postcss-reduce-initial\": \"^5.1.1\",","isFullCredit":false},{"lineNumber":5736,"author":{"gitId":"-"},"content":" \"postcss-reduce-transforms\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":5737,"author":{"gitId":"-"},"content":" \"postcss-svgo\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":5738,"author":{"gitId":"-"},"content":" \"postcss-unique-selectors\": \"^5.1.1\"","isFullCredit":false},{"lineNumber":5739,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5740,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5741,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":5742,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5743,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":5744,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":5745,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5746,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5747,"author":{"gitId":"-"},"content":" \"node_modules/cssnano-utils\": {","isFullCredit":false},{"lineNumber":5748,"author":{"gitId":"-"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":5749,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5750,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5751,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5752,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":5753,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5754,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":5755,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":5756,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5757,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5758,"author":{"gitId":"-"},"content":" \"node_modules/csso\": {","isFullCredit":false},{"lineNumber":5759,"author":{"gitId":"-"},"content":" \"version\": \"4.2.0\",","isFullCredit":false},{"lineNumber":5760,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5761,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5762,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5763,"author":{"gitId":"-"},"content":" \"css-tree\": \"^1.1.2\"","isFullCredit":false},{"lineNumber":5764,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5765,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5766,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8.0.0\"","isFullCredit":false},{"lineNumber":5767,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5768,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5769,"author":{"gitId":"-"},"content":" \"node_modules/csstype\": {","isFullCredit":false},{"lineNumber":5770,"author":{"gitId":"-"},"content":" \"version\": \"3.1.3\",","isFullCredit":false},{"lineNumber":5771,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5772,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5773,"author":{"gitId":"-"},"content":" \"node_modules/debug\": {","isFullCredit":false},{"lineNumber":5774,"author":{"gitId":"-"},"content":" \"version\": \"4.3.4\",","isFullCredit":false},{"lineNumber":5775,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5776,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5777,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5778,"author":{"gitId":"-"},"content":" \"ms\": \"2.1.2\"","isFullCredit":false},{"lineNumber":5779,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5780,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5781,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.0\"","isFullCredit":false},{"lineNumber":5782,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5783,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":5784,"author":{"gitId":"-"},"content":" \"supports-color\": {","isFullCredit":false},{"lineNumber":5785,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":5786,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5787,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5788,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5789,"author":{"gitId":"-"},"content":" \"node_modules/deep-is\": {","isFullCredit":false},{"lineNumber":5790,"author":{"gitId":"-"},"content":" \"version\": \"0.1.4\",","isFullCredit":false},{"lineNumber":5791,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5792,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5793,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5794,"author":{"gitId":"-"},"content":" \"node_modules/deepmerge\": {","isFullCredit":false},{"lineNumber":5795,"author":{"gitId":"-"},"content":" \"version\": \"4.2.2\",","isFullCredit":false},{"lineNumber":5796,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5797,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5798,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5799,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":5800,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5801,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5802,"author":{"gitId":"-"},"content":" \"node_modules/default-gateway\": {","isFullCredit":false},{"lineNumber":5803,"author":{"gitId":"-"},"content":" \"version\": \"6.0.3\",","isFullCredit":false},{"lineNumber":5804,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5805,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":5806,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5807,"author":{"gitId":"-"},"content":" \"execa\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":5808,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5809,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5810,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10\"","isFullCredit":false},{"lineNumber":5811,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5812,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5813,"author":{"gitId":"-"},"content":" \"node_modules/default-gateway/node_modules/execa\": {","isFullCredit":false},{"lineNumber":5814,"author":{"gitId":"-"},"content":" \"version\": \"5.1.1\",","isFullCredit":false},{"lineNumber":5815,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5816,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5817,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5818,"author":{"gitId":"-"},"content":" \"cross-spawn\": \"^7.0.3\",","isFullCredit":false},{"lineNumber":5819,"author":{"gitId":"-"},"content":" \"get-stream\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":5820,"author":{"gitId":"-"},"content":" \"human-signals\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":5821,"author":{"gitId":"-"},"content":" \"is-stream\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":5822,"author":{"gitId":"-"},"content":" \"merge-stream\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":5823,"author":{"gitId":"-"},"content":" \"npm-run-path\": \"^4.0.1\",","isFullCredit":false},{"lineNumber":5824,"author":{"gitId":"-"},"content":" \"onetime\": \"^5.1.2\",","isFullCredit":false},{"lineNumber":5825,"author":{"gitId":"-"},"content":" \"signal-exit\": \"^3.0.3\",","isFullCredit":false},{"lineNumber":5826,"author":{"gitId":"-"},"content":" \"strip-final-newline\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":5827,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5828,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5829,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":5830,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5831,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5832,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sindresorhus/execa?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":5833,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5834,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5835,"author":{"gitId":"-"},"content":" \"node_modules/default-gateway/node_modules/get-stream\": {","isFullCredit":false},{"lineNumber":5836,"author":{"gitId":"-"},"content":" \"version\": \"6.0.1\",","isFullCredit":false},{"lineNumber":5837,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5838,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5839,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5840,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":5841,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5842,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5843,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":5844,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5845,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5846,"author":{"gitId":"-"},"content":" \"node_modules/default-gateway/node_modules/is-stream\": {","isFullCredit":false},{"lineNumber":5847,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":5848,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5849,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5850,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5851,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5852,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5853,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5854,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":5855,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5856,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5857,"author":{"gitId":"-"},"content":" \"node_modules/default-gateway/node_modules/npm-run-path\": {","isFullCredit":false},{"lineNumber":5858,"author":{"gitId":"-"},"content":" \"version\": \"4.0.1\",","isFullCredit":false},{"lineNumber":5859,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5860,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5861,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5862,"author":{"gitId":"-"},"content":" \"path-key\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":5863,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5864,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5865,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5866,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5867,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5868,"author":{"gitId":"-"},"content":" \"node_modules/defaults\": {","isFullCredit":false},{"lineNumber":5869,"author":{"gitId":"-"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":5870,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5871,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5872,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5873,"author":{"gitId":"-"},"content":" \"clone\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":5874,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5875,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5876,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":5877,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5878,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5879,"author":{"gitId":"-"},"content":" \"node_modules/define-data-property\": {","isFullCredit":false},{"lineNumber":5880,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":5881,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5882,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5883,"author":{"gitId":"-"},"content":" \"es-define-property\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":5884,"author":{"gitId":"-"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":5885,"author":{"gitId":"-"},"content":" \"gopd\": \"^1.0.1\"","isFullCredit":false},{"lineNumber":5886,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5887,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5888,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":5889,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5890,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5891,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":5892,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5893,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5894,"author":{"gitId":"-"},"content":" \"node_modules/define-lazy-prop\": {","isFullCredit":false},{"lineNumber":5895,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":5896,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5897,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5898,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5899,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5900,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5901,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5902,"author":{"gitId":"-"},"content":" \"node_modules/define-properties\": {","isFullCredit":false},{"lineNumber":5903,"author":{"gitId":"-"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":5904,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5905,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5906,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5907,"author":{"gitId":"-"},"content":" \"define-data-property\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":5908,"author":{"gitId":"-"},"content":" \"has-property-descriptors\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":5909,"author":{"gitId":"-"},"content":" \"object-keys\": \"^1.1.1\"","isFullCredit":false},{"lineNumber":5910,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5911,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5912,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":5913,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5914,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":5915,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":5916,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5917,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5918,"author":{"gitId":"-"},"content":" \"node_modules/depd\": {","isFullCredit":false},{"lineNumber":5919,"author":{"gitId":"-"},"content":" \"version\": \"1.1.2\",","isFullCredit":false},{"lineNumber":5920,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5921,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5922,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5923,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":5924,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5925,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5926,"author":{"gitId":"-"},"content":" \"node_modules/destroy\": {","isFullCredit":false},{"lineNumber":5927,"author":{"gitId":"-"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":5928,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5929,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5930,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5931,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\",","isFullCredit":false},{"lineNumber":5932,"author":{"gitId":"-"},"content":" \"npm\": \"1.2.8000 || \u003e\u003d 1.4.16\"","isFullCredit":false},{"lineNumber":5933,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5934,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5935,"author":{"gitId":"-"},"content":" \"node_modules/detect-node\": {","isFullCredit":false},{"lineNumber":5936,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":5937,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5938,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5939,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5940,"author":{"gitId":"-"},"content":" \"node_modules/dir-glob\": {","isFullCredit":false},{"lineNumber":5941,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":5942,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5943,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5944,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5945,"author":{"gitId":"-"},"content":" \"path-type\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":5946,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5947,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5948,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":5949,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5950,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5951,"author":{"gitId":"-"},"content":" \"node_modules/dns-equal\": {","isFullCredit":false},{"lineNumber":5952,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":5953,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5954,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5955,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5956,"author":{"gitId":"-"},"content":" \"node_modules/dns-packet\": {","isFullCredit":false},{"lineNumber":5957,"author":{"gitId":"-"},"content":" \"version\": \"5.4.0\",","isFullCredit":false},{"lineNumber":5958,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5959,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5960,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5961,"author":{"gitId":"-"},"content":" \"@leichtgewicht/ip-codec\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":5962,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5963,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5964,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":5965,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5966,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5967,"author":{"gitId":"-"},"content":" \"node_modules/doctrine\": {","isFullCredit":false},{"lineNumber":5968,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":5969,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5970,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":5971,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5972,"author":{"gitId":"-"},"content":" \"esutils\": \"^2.0.2\"","isFullCredit":false},{"lineNumber":5973,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5974,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":5975,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":5976,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5977,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5978,"author":{"gitId":"-"},"content":" \"node_modules/doctypes\": {","isFullCredit":false},{"lineNumber":5979,"author":{"gitId":"-"},"content":" \"version\": \"1.1.0\",","isFullCredit":false},{"lineNumber":5980,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5981,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":5982,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5983,"author":{"gitId":"-"},"content":" \"node_modules/dom-converter\": {","isFullCredit":false},{"lineNumber":5984,"author":{"gitId":"-"},"content":" \"version\": \"0.2.0\",","isFullCredit":false},{"lineNumber":5985,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":5986,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5987,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5988,"author":{"gitId":"-"},"content":" \"utila\": \"~0.4\"","isFullCredit":false},{"lineNumber":5989,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":5990,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5991,"author":{"gitId":"-"},"content":" \"node_modules/dom-serializer\": {","isFullCredit":false},{"lineNumber":5992,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":5993,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":5994,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":5995,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":5996,"author":{"gitId":"-"},"content":" \"domhandler\": \"^5.0.2\",","isFullCredit":false},{"lineNumber":5997,"author":{"gitId":"-"},"content":" \"entities\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":5998,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":5999,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6000,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/cheeriojs/dom-serializer?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":6001,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6002,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6003,"author":{"gitId":"-"},"content":" \"node_modules/domelementtype\": {","isFullCredit":false},{"lineNumber":6004,"author":{"gitId":"-"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":6005,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":6006,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":6007,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":6008,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/fb55\"","isFullCredit":false},{"lineNumber":6009,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6010,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":6011,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\"","isFullCredit":false},{"lineNumber":6012,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6013,"author":{"gitId":"-"},"content":" \"node_modules/domhandler\": {","isFullCredit":false},{"lineNumber":6014,"author":{"gitId":"-"},"content":" \"version\": \"5.0.3\",","isFullCredit":false},{"lineNumber":6015,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":6016,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6017,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.3.0\"","isFullCredit":false},{"lineNumber":6018,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6019,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6020,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 4\"","isFullCredit":false},{"lineNumber":6021,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6022,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6023,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/fb55/domhandler?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":6024,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6025,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6026,"author":{"gitId":"-"},"content":" \"node_modules/domutils\": {","isFullCredit":false},{"lineNumber":6027,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":6028,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":6029,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6030,"author":{"gitId":"-"},"content":" \"dom-serializer\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":6031,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":6032,"author":{"gitId":"-"},"content":" \"domhandler\": \"^5.0.1\"","isFullCredit":false},{"lineNumber":6033,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6034,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6035,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/fb55/domutils?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":6036,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6037,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6038,"author":{"gitId":"-"},"content":" \"node_modules/dot-case\": {","isFullCredit":false},{"lineNumber":6039,"author":{"gitId":"-"},"content":" \"version\": \"3.0.4\",","isFullCredit":false},{"lineNumber":6040,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6041,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6042,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6043,"author":{"gitId":"-"},"content":" \"no-case\": \"^3.0.4\",","isFullCredit":false},{"lineNumber":6044,"author":{"gitId":"-"},"content":" \"tslib\": \"^2.0.3\"","isFullCredit":false},{"lineNumber":6045,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6046,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6047,"author":{"gitId":"-"},"content":" \"node_modules/dotenv\": {","isFullCredit":false},{"lineNumber":6048,"author":{"gitId":"-"},"content":" \"version\": \"10.0.0\",","isFullCredit":false},{"lineNumber":6049,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6050,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":6051,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6052,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":6053,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6054,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6055,"author":{"gitId":"-"},"content":" \"node_modules/dotenv-expand\": {","isFullCredit":false},{"lineNumber":6056,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":6057,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6058,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\"","isFullCredit":false},{"lineNumber":6059,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6060,"author":{"gitId":"-"},"content":" \"node_modules/duplexer\": {","isFullCredit":false},{"lineNumber":6061,"author":{"gitId":"-"},"content":" \"version\": \"0.1.2\",","isFullCredit":false},{"lineNumber":6062,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6063,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6064,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6065,"author":{"gitId":"-"},"content":" \"node_modules/easy-stack\": {","isFullCredit":false},{"lineNumber":6066,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":6067,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6068,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6069,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6070,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":6071,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6072,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6073,"author":{"gitId":"-"},"content":" \"node_modules/ee-first\": {","isFullCredit":false},{"lineNumber":6074,"author":{"gitId":"-"},"content":" \"version\": \"1.1.1\",","isFullCredit":false},{"lineNumber":6075,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6076,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6077,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6078,"author":{"gitId":"-"},"content":" \"node_modules/electron-to-chromium\": {","isFullCredit":false},{"lineNumber":6079,"author":{"gitId":"-"},"content":" \"version\": \"1.4.284\",","isFullCredit":false},{"lineNumber":6080,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":6081,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6082,"author":{"gitId":"-"},"content":" \"node_modules/emoji-regex\": {","isFullCredit":false},{"lineNumber":6083,"author":{"gitId":"-"},"content":" \"version\": \"8.0.0\",","isFullCredit":false},{"lineNumber":6084,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6085,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6086,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6087,"author":{"gitId":"-"},"content":" \"node_modules/emojis-list\": {","isFullCredit":false},{"lineNumber":6088,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":6089,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6090,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6091,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6092,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 4\"","isFullCredit":false},{"lineNumber":6093,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6094,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6095,"author":{"gitId":"-"},"content":" \"node_modules/encodeurl\": {","isFullCredit":false},{"lineNumber":6096,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":6097,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6098,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6099,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6100,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":6101,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6102,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6103,"author":{"gitId":"-"},"content":" \"node_modules/encoding\": {","isFullCredit":false},{"lineNumber":6104,"author":{"gitId":"-"},"content":" \"version\": \"0.1.13\",","isFullCredit":false},{"lineNumber":6105,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6106,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6107,"author":{"gitId":"-"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":6108,"author":{"gitId":"-"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":6109,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6110,"author":{"gitId":"-"},"content":" \"iconv-lite\": \"^0.6.2\"","isFullCredit":false},{"lineNumber":6111,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6112,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6113,"author":{"gitId":"-"},"content":" \"node_modules/end-of-stream\": {","isFullCredit":false},{"lineNumber":6114,"author":{"gitId":"-"},"content":" \"version\": \"1.4.4\",","isFullCredit":false},{"lineNumber":6115,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6116,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6117,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6118,"author":{"gitId":"-"},"content":" \"once\": \"^1.4.0\"","isFullCredit":false},{"lineNumber":6119,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6120,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6121,"author":{"gitId":"-"},"content":" \"node_modules/enhanced-resolve\": {","isFullCredit":false},{"lineNumber":6122,"author":{"gitId":"-"},"content":" \"version\": \"5.12.0\",","isFullCredit":false},{"lineNumber":6123,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6124,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6125,"author":{"gitId":"-"},"content":" \"graceful-fs\": \"^4.2.4\",","isFullCredit":false},{"lineNumber":6126,"author":{"gitId":"-"},"content":" \"tapable\": \"^2.2.0\"","isFullCredit":false},{"lineNumber":6127,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6128,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6129,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10.13.0\"","isFullCredit":false},{"lineNumber":6130,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6131,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6132,"author":{"gitId":"-"},"content":" \"node_modules/enhanced-resolve/node_modules/tapable\": {","isFullCredit":false},{"lineNumber":6133,"author":{"gitId":"-"},"content":" \"version\": \"2.2.1\",","isFullCredit":false},{"lineNumber":6134,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6135,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6136,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":6137,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6138,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6139,"author":{"gitId":"-"},"content":" \"node_modules/entities\": {","isFullCredit":false},{"lineNumber":6140,"author":{"gitId":"-"},"content":" \"version\": \"4.5.0\",","isFullCredit":false},{"lineNumber":6141,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":6142,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6143,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.12\"","isFullCredit":false},{"lineNumber":6144,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6145,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6146,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/fb55/entities?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":6147,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6148,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6149,"author":{"gitId":"-"},"content":" \"node_modules/env-paths\": {","isFullCredit":false},{"lineNumber":6150,"author":{"gitId":"-"},"content":" \"version\": \"2.2.1\",","isFullCredit":false},{"lineNumber":6151,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz\",","isFullCredit":false},{"lineNumber":6152,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A\u003d\u003d\",","isFullCredit":false},{"lineNumber":6153,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6154,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6155,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":6156,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6157,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6158,"author":{"gitId":"-"},"content":" \"node_modules/error-ex\": {","isFullCredit":false},{"lineNumber":6159,"author":{"gitId":"-"},"content":" \"version\": \"1.3.2\",","isFullCredit":false},{"lineNumber":6160,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6161,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6162,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6163,"author":{"gitId":"-"},"content":" \"is-arrayish\": \"^0.2.1\"","isFullCredit":false},{"lineNumber":6164,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6165,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6166,"author":{"gitId":"-"},"content":" \"node_modules/error-stack-parser\": {","isFullCredit":false},{"lineNumber":6167,"author":{"gitId":"-"},"content":" \"version\": \"2.1.4\",","isFullCredit":false},{"lineNumber":6168,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6169,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6170,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6171,"author":{"gitId":"-"},"content":" \"stackframe\": \"^1.3.4\"","isFullCredit":false},{"lineNumber":6172,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6173,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6174,"author":{"gitId":"-"},"content":" \"node_modules/es-abstract\": {","isFullCredit":false},{"lineNumber":6175,"author":{"gitId":"-"},"content":" \"version\": \"1.22.5\",","isFullCredit":false},{"lineNumber":6176,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6177,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6178,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6179,"author":{"gitId":"-"},"content":" \"array-buffer-byte-length\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":6180,"author":{"gitId":"-"},"content":" \"arraybuffer.prototype.slice\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":6181,"author":{"gitId":"-"},"content":" \"available-typed-arrays\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":6182,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":6183,"author":{"gitId":"-"},"content":" \"es-define-property\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":6184,"author":{"gitId":"-"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":6185,"author":{"gitId":"-"},"content":" \"es-set-tostringtag\": \"^2.0.3\",","isFullCredit":false},{"lineNumber":6186,"author":{"gitId":"-"},"content":" \"es-to-primitive\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":6187,"author":{"gitId":"-"},"content":" \"function.prototype.name\": \"^1.1.6\",","isFullCredit":false},{"lineNumber":6188,"author":{"gitId":"-"},"content":" \"get-intrinsic\": \"^1.2.4\",","isFullCredit":false},{"lineNumber":6189,"author":{"gitId":"-"},"content":" \"get-symbol-description\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":6190,"author":{"gitId":"-"},"content":" \"globalthis\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":6191,"author":{"gitId":"-"},"content":" \"gopd\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":6192,"author":{"gitId":"-"},"content":" \"has-property-descriptors\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":6193,"author":{"gitId":"-"},"content":" \"has-proto\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":6194,"author":{"gitId":"-"},"content":" \"has-symbols\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":6195,"author":{"gitId":"-"},"content":" \"hasown\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":6196,"author":{"gitId":"-"},"content":" \"internal-slot\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":6197,"author":{"gitId":"-"},"content":" \"is-array-buffer\": \"^3.0.4\",","isFullCredit":false},{"lineNumber":6198,"author":{"gitId":"-"},"content":" \"is-callable\": \"^1.2.7\",","isFullCredit":false},{"lineNumber":6199,"author":{"gitId":"-"},"content":" \"is-negative-zero\": \"^2.0.3\",","isFullCredit":false},{"lineNumber":6200,"author":{"gitId":"-"},"content":" \"is-regex\": \"^1.1.4\",","isFullCredit":false},{"lineNumber":6201,"author":{"gitId":"-"},"content":" \"is-shared-array-buffer\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":6202,"author":{"gitId":"-"},"content":" \"is-string\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":6203,"author":{"gitId":"-"},"content":" \"is-typed-array\": \"^1.1.13\",","isFullCredit":false},{"lineNumber":6204,"author":{"gitId":"-"},"content":" \"is-weakref\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":6205,"author":{"gitId":"-"},"content":" \"object-inspect\": \"^1.13.1\",","isFullCredit":false},{"lineNumber":6206,"author":{"gitId":"-"},"content":" \"object-keys\": \"^1.1.1\",","isFullCredit":false},{"lineNumber":6207,"author":{"gitId":"-"},"content":" \"object.assign\": \"^4.1.5\",","isFullCredit":false},{"lineNumber":6208,"author":{"gitId":"-"},"content":" \"regexp.prototype.flags\": \"^1.5.2\",","isFullCredit":false},{"lineNumber":6209,"author":{"gitId":"-"},"content":" \"safe-array-concat\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":6210,"author":{"gitId":"-"},"content":" \"safe-regex-test\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":6211,"author":{"gitId":"-"},"content":" \"string.prototype.trim\": \"^1.2.8\",","isFullCredit":false},{"lineNumber":6212,"author":{"gitId":"-"},"content":" \"string.prototype.trimend\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":6213,"author":{"gitId":"-"},"content":" \"string.prototype.trimstart\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":6214,"author":{"gitId":"-"},"content":" \"typed-array-buffer\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":6215,"author":{"gitId":"-"},"content":" \"typed-array-byte-length\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":6216,"author":{"gitId":"-"},"content":" \"typed-array-byte-offset\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":6217,"author":{"gitId":"-"},"content":" \"typed-array-length\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":6218,"author":{"gitId":"-"},"content":" \"unbox-primitive\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":6219,"author":{"gitId":"-"},"content":" \"which-typed-array\": \"^1.1.14\"","isFullCredit":false},{"lineNumber":6220,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6221,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6222,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":6223,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6224,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6225,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":6226,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6227,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6228,"author":{"gitId":"-"},"content":" \"node_modules/es-array-method-boxes-properly\": {","isFullCredit":false},{"lineNumber":6229,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":6230,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6231,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6232,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6233,"author":{"gitId":"-"},"content":" \"node_modules/es-define-property\": {","isFullCredit":false},{"lineNumber":6234,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":6235,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6236,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6237,"author":{"gitId":"-"},"content":" \"get-intrinsic\": \"^1.2.4\"","isFullCredit":false},{"lineNumber":6238,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6239,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6240,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":6241,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6242,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6243,"author":{"gitId":"-"},"content":" \"node_modules/es-errors\": {","isFullCredit":false},{"lineNumber":6244,"author":{"gitId":"-"},"content":" \"version\": \"1.3.0\",","isFullCredit":false},{"lineNumber":6245,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6246,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6247,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":6248,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6249,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6250,"author":{"gitId":"-"},"content":" \"node_modules/es-module-lexer\": {","isFullCredit":false},{"lineNumber":6251,"author":{"gitId":"-"},"content":" \"version\": \"0.9.3\",","isFullCredit":false},{"lineNumber":6252,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6253,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6254,"author":{"gitId":"-"},"content":" \"node_modules/es-set-tostringtag\": {","isFullCredit":false},{"lineNumber":6255,"author":{"gitId":"-"},"content":" \"version\": \"2.0.3\",","isFullCredit":false},{"lineNumber":6256,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6257,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6258,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6259,"author":{"gitId":"-"},"content":" \"get-intrinsic\": \"^1.2.4\",","isFullCredit":false},{"lineNumber":6260,"author":{"gitId":"-"},"content":" \"has-tostringtag\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":6261,"author":{"gitId":"-"},"content":" \"hasown\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":6262,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6263,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6264,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":6265,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6266,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6267,"author":{"gitId":"-"},"content":" \"node_modules/es-shim-unscopables\": {","isFullCredit":false},{"lineNumber":6268,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":6269,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6270,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6271,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6272,"author":{"gitId":"-"},"content":" \"hasown\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":6273,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6274,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6275,"author":{"gitId":"-"},"content":" \"node_modules/es-to-primitive\": {","isFullCredit":false},{"lineNumber":6276,"author":{"gitId":"-"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":6277,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6278,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6279,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6280,"author":{"gitId":"-"},"content":" \"is-callable\": \"^1.1.4\",","isFullCredit":false},{"lineNumber":6281,"author":{"gitId":"-"},"content":" \"is-date-object\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":6282,"author":{"gitId":"-"},"content":" \"is-symbol\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":6283,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6284,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6285,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":6286,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6287,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6288,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":6289,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6290,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6291,"author":{"gitId":"-"},"content":" \"node_modules/escalade\": {","isFullCredit":false},{"lineNumber":6292,"author":{"gitId":"-"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":6293,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6294,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6295,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":6296,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6297,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6298,"author":{"gitId":"-"},"content":" \"node_modules/escape-html\": {","isFullCredit":false},{"lineNumber":6299,"author":{"gitId":"-"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":6300,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6301,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6302,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6303,"author":{"gitId":"-"},"content":" \"node_modules/escape-string-regexp\": {","isFullCredit":false},{"lineNumber":6304,"author":{"gitId":"-"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":6305,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6306,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6307,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6308,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.8.0\"","isFullCredit":false},{"lineNumber":6309,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6310,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6311,"author":{"gitId":"-"},"content":" \"node_modules/eslint\": {","isFullCredit":false},{"lineNumber":6312,"author":{"gitId":"-"},"content":" \"version\": \"8.57.0\",","isFullCredit":false},{"lineNumber":6313,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6314,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6315,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6316,"author":{"gitId":"-"},"content":" \"@eslint-community/eslint-utils\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":6317,"author":{"gitId":"-"},"content":" \"@eslint-community/regexpp\": \"^4.6.1\",","isFullCredit":false},{"lineNumber":6318,"author":{"gitId":"-"},"content":" \"@eslint/eslintrc\": \"^2.1.4\",","isFullCredit":false},{"lineNumber":6319,"author":{"gitId":"-"},"content":" \"@eslint/js\": \"8.57.0\",","isFullCredit":false},{"lineNumber":6320,"author":{"gitId":"-"},"content":" \"@humanwhocodes/config-array\": \"^0.11.14\",","isFullCredit":false},{"lineNumber":6321,"author":{"gitId":"-"},"content":" \"@humanwhocodes/module-importer\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":6322,"author":{"gitId":"-"},"content":" \"@nodelib/fs.walk\": \"^1.2.8\",","isFullCredit":false},{"lineNumber":6323,"author":{"gitId":"-"},"content":" \"@ungap/structured-clone\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":6324,"author":{"gitId":"-"},"content":" \"ajv\": \"^6.12.4\",","isFullCredit":false},{"lineNumber":6325,"author":{"gitId":"-"},"content":" \"chalk\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":6326,"author":{"gitId":"-"},"content":" \"cross-spawn\": \"^7.0.2\",","isFullCredit":false},{"lineNumber":6327,"author":{"gitId":"-"},"content":" \"debug\": \"^4.3.2\",","isFullCredit":false},{"lineNumber":6328,"author":{"gitId":"-"},"content":" \"doctrine\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":6329,"author":{"gitId":"-"},"content":" \"escape-string-regexp\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":6330,"author":{"gitId":"-"},"content":" \"eslint-scope\": \"^7.2.2\",","isFullCredit":false},{"lineNumber":6331,"author":{"gitId":"-"},"content":" \"eslint-visitor-keys\": \"^3.4.3\",","isFullCredit":false},{"lineNumber":6332,"author":{"gitId":"-"},"content":" \"espree\": \"^9.6.1\",","isFullCredit":false},{"lineNumber":6333,"author":{"gitId":"-"},"content":" \"esquery\": \"^1.4.2\",","isFullCredit":false},{"lineNumber":6334,"author":{"gitId":"-"},"content":" \"esutils\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":6335,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.3\",","isFullCredit":false},{"lineNumber":6336,"author":{"gitId":"-"},"content":" \"file-entry-cache\": \"^6.0.1\",","isFullCredit":false},{"lineNumber":6337,"author":{"gitId":"-"},"content":" \"find-up\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":6338,"author":{"gitId":"-"},"content":" \"glob-parent\": \"^6.0.2\",","isFullCredit":false},{"lineNumber":6339,"author":{"gitId":"-"},"content":" \"globals\": \"^13.19.0\",","isFullCredit":false},{"lineNumber":6340,"author":{"gitId":"-"},"content":" \"graphemer\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":6341,"author":{"gitId":"-"},"content":" \"ignore\": \"^5.2.0\",","isFullCredit":false},{"lineNumber":6342,"author":{"gitId":"-"},"content":" \"imurmurhash\": \"^0.1.4\",","isFullCredit":false},{"lineNumber":6343,"author":{"gitId":"-"},"content":" \"is-glob\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":6344,"author":{"gitId":"-"},"content":" \"is-path-inside\": \"^3.0.3\",","isFullCredit":false},{"lineNumber":6345,"author":{"gitId":"-"},"content":" \"js-yaml\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":6346,"author":{"gitId":"-"},"content":" \"json-stable-stringify-without-jsonify\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":6347,"author":{"gitId":"-"},"content":" \"levn\": \"^0.4.1\",","isFullCredit":false},{"lineNumber":6348,"author":{"gitId":"-"},"content":" \"lodash.merge\": \"^4.6.2\",","isFullCredit":false},{"lineNumber":6349,"author":{"gitId":"-"},"content":" \"minimatch\": \"^3.1.2\",","isFullCredit":false},{"lineNumber":6350,"author":{"gitId":"-"},"content":" \"natural-compare\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":6351,"author":{"gitId":"-"},"content":" \"optionator\": \"^0.9.3\",","isFullCredit":false},{"lineNumber":6352,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.1\",","isFullCredit":false},{"lineNumber":6353,"author":{"gitId":"-"},"content":" \"text-table\": \"^0.2.0\"","isFullCredit":false},{"lineNumber":6354,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6355,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":6356,"author":{"gitId":"-"},"content":" \"eslint\": \"bin/eslint.js\"","isFullCredit":false},{"lineNumber":6357,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6358,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6359,"author":{"gitId":"-"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":6360,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6361,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6362,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":6363,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6364,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6365,"author":{"gitId":"-"},"content":" \"node_modules/eslint-config-airbnb-base\": {","isFullCredit":false},{"lineNumber":6366,"author":{"gitId":"-"},"content":" \"version\": \"15.0.0\",","isFullCredit":false},{"lineNumber":6367,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6368,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6369,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6370,"author":{"gitId":"-"},"content":" \"confusing-browser-globals\": \"^1.0.10\",","isFullCredit":false},{"lineNumber":6371,"author":{"gitId":"-"},"content":" \"object.assign\": \"^4.1.2\",","isFullCredit":false},{"lineNumber":6372,"author":{"gitId":"-"},"content":" \"object.entries\": \"^1.1.5\",","isFullCredit":false},{"lineNumber":6373,"author":{"gitId":"-"},"content":" \"semver\": \"^6.3.0\"","isFullCredit":false},{"lineNumber":6374,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6375,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6376,"author":{"gitId":"-"},"content":" \"node\": \"^10.12.0 || \u003e\u003d12.0.0\"","isFullCredit":false},{"lineNumber":6377,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6378,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6379,"author":{"gitId":"-"},"content":" \"eslint\": \"^7.32.0 || ^8.2.0\",","isFullCredit":false},{"lineNumber":6380,"author":{"gitId":"-"},"content":" \"eslint-plugin-import\": \"^2.25.2\"","isFullCredit":false},{"lineNumber":6381,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6382,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6383,"author":{"gitId":"-"},"content":" \"node_modules/eslint-config-airbnb-typescript\": {","isFullCredit":false},{"lineNumber":6384,"author":{"gitId":"-"},"content":" \"version\": \"18.0.0\",","isFullCredit":false},{"lineNumber":6385,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-18.0.0.tgz\",","isFullCredit":false},{"lineNumber":6386,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-oc+Lxzgzsu8FQyFVa4QFaVKiitTYiiW3frB9KYW5OWdPrqFc7FzxgB20hP4cHMlr+MBzGcLl3jnCOVOydL9mIg\u003d\u003d\",","isFullCredit":false},{"lineNumber":6387,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6388,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6389,"author":{"gitId":"-"},"content":" \"eslint-config-airbnb-base\": \"^15.0.0\"","isFullCredit":false},{"lineNumber":6390,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6391,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6392,"author":{"gitId":"-"},"content":" \"@typescript-eslint/eslint-plugin\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":6393,"author":{"gitId":"-"},"content":" \"@typescript-eslint/parser\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":6394,"author":{"gitId":"-"},"content":" \"eslint\": \"^8.56.0\"","isFullCredit":false},{"lineNumber":6395,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6396,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6397,"author":{"gitId":"-"},"content":" \"node_modules/eslint-import-resolver-node\": {","isFullCredit":false},{"lineNumber":6398,"author":{"gitId":"-"},"content":" \"version\": \"0.3.9\",","isFullCredit":false},{"lineNumber":6399,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6400,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6401,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6402,"author":{"gitId":"-"},"content":" \"debug\": \"^3.2.7\",","isFullCredit":false},{"lineNumber":6403,"author":{"gitId":"-"},"content":" \"is-core-module\": \"^2.13.0\",","isFullCredit":false},{"lineNumber":6404,"author":{"gitId":"-"},"content":" \"resolve\": \"^1.22.4\"","isFullCredit":false},{"lineNumber":6405,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6406,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6407,"author":{"gitId":"-"},"content":" \"node_modules/eslint-import-resolver-node/node_modules/debug\": {","isFullCredit":false},{"lineNumber":6408,"author":{"gitId":"-"},"content":" \"version\": \"3.2.7\",","isFullCredit":false},{"lineNumber":6409,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6410,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6411,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6412,"author":{"gitId":"-"},"content":" \"ms\": \"^2.1.1\"","isFullCredit":false},{"lineNumber":6413,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6414,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6415,"author":{"gitId":"-"},"content":" \"node_modules/eslint-module-utils\": {","isFullCredit":false},{"lineNumber":6416,"author":{"gitId":"-"},"content":" \"version\": \"2.8.1\",","isFullCredit":false},{"lineNumber":6417,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6418,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6419,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6420,"author":{"gitId":"-"},"content":" \"debug\": \"^3.2.7\"","isFullCredit":false},{"lineNumber":6421,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6422,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6423,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":6424,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6425,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":6426,"author":{"gitId":"-"},"content":" \"eslint\": {","isFullCredit":false},{"lineNumber":6427,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":6428,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6429,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6430,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6431,"author":{"gitId":"-"},"content":" \"node_modules/eslint-module-utils/node_modules/debug\": {","isFullCredit":false},{"lineNumber":6432,"author":{"gitId":"-"},"content":" \"version\": \"3.2.7\",","isFullCredit":false},{"lineNumber":6433,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6434,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6435,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6436,"author":{"gitId":"-"},"content":" \"ms\": \"^2.1.1\"","isFullCredit":false},{"lineNumber":6437,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6438,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6439,"author":{"gitId":"-"},"content":" \"node_modules/eslint-plugin-import\": {","isFullCredit":false},{"lineNumber":6440,"author":{"gitId":"-"},"content":" \"version\": \"2.29.1\",","isFullCredit":false},{"lineNumber":6441,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6442,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6443,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6444,"author":{"gitId":"-"},"content":" \"array-includes\": \"^3.1.7\",","isFullCredit":false},{"lineNumber":6445,"author":{"gitId":"-"},"content":" \"array.prototype.findlastindex\": \"^1.2.3\",","isFullCredit":false},{"lineNumber":6446,"author":{"gitId":"-"},"content":" \"array.prototype.flat\": \"^1.3.2\",","isFullCredit":false},{"lineNumber":6447,"author":{"gitId":"-"},"content":" \"array.prototype.flatmap\": \"^1.3.2\",","isFullCredit":false},{"lineNumber":6448,"author":{"gitId":"-"},"content":" \"debug\": \"^3.2.7\",","isFullCredit":false},{"lineNumber":6449,"author":{"gitId":"-"},"content":" \"doctrine\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":6450,"author":{"gitId":"-"},"content":" \"eslint-import-resolver-node\": \"^0.3.9\",","isFullCredit":false},{"lineNumber":6451,"author":{"gitId":"-"},"content":" \"eslint-module-utils\": \"^2.8.0\",","isFullCredit":false},{"lineNumber":6452,"author":{"gitId":"-"},"content":" \"hasown\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":6453,"author":{"gitId":"-"},"content":" \"is-core-module\": \"^2.13.1\",","isFullCredit":false},{"lineNumber":6454,"author":{"gitId":"-"},"content":" \"is-glob\": \"^4.0.3\",","isFullCredit":false},{"lineNumber":6455,"author":{"gitId":"-"},"content":" \"minimatch\": \"^3.1.2\",","isFullCredit":false},{"lineNumber":6456,"author":{"gitId":"-"},"content":" \"object.fromentries\": \"^2.0.7\",","isFullCredit":false},{"lineNumber":6457,"author":{"gitId":"-"},"content":" \"object.groupby\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":6458,"author":{"gitId":"-"},"content":" \"object.values\": \"^1.1.7\",","isFullCredit":false},{"lineNumber":6459,"author":{"gitId":"-"},"content":" \"semver\": \"^6.3.1\",","isFullCredit":false},{"lineNumber":6460,"author":{"gitId":"-"},"content":" \"tsconfig-paths\": \"^3.15.0\"","isFullCredit":false},{"lineNumber":6461,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6462,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6463,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":6464,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6465,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6466,"author":{"gitId":"-"},"content":" \"eslint\": \"^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8\"","isFullCredit":false},{"lineNumber":6467,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6468,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6469,"author":{"gitId":"-"},"content":" \"node_modules/eslint-plugin-import/node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":6470,"author":{"gitId":"-"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":6471,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6472,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6473,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6474,"author":{"gitId":"-"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":6475,"author":{"gitId":"-"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":6476,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6477,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6478,"author":{"gitId":"-"},"content":" \"node_modules/eslint-plugin-import/node_modules/debug\": {","isFullCredit":false},{"lineNumber":6479,"author":{"gitId":"-"},"content":" \"version\": \"3.2.7\",","isFullCredit":false},{"lineNumber":6480,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6481,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6482,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6483,"author":{"gitId":"-"},"content":" \"ms\": \"^2.1.1\"","isFullCredit":false},{"lineNumber":6484,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6485,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6486,"author":{"gitId":"-"},"content":" \"node_modules/eslint-plugin-import/node_modules/doctrine\": {","isFullCredit":false},{"lineNumber":6487,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":6488,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6489,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":6490,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6491,"author":{"gitId":"-"},"content":" \"esutils\": \"^2.0.2\"","isFullCredit":false},{"lineNumber":6492,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6493,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6494,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":6495,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6496,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6497,"author":{"gitId":"-"},"content":" \"node_modules/eslint-plugin-import/node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":6498,"author":{"gitId":"-"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":6499,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6500,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":6501,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6502,"author":{"gitId":"-"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":6503,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6504,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6505,"author":{"gitId":"-"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":6506,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6507,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6508,"author":{"gitId":"-"},"content":" \"node_modules/eslint-plugin-vue\": {","isFullCredit":false},{"lineNumber":6509,"author":{"gitId":"-"},"content":" \"version\": \"9.25.0\",","isFullCredit":false},{"lineNumber":6510,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.25.0.tgz\",","isFullCredit":false},{"lineNumber":6511,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-tDWlx14bVe6Bs+Nnh3IGrD+hb11kf2nukfm6jLsmJIhmiRQ1SUaksvwY9U5MvPB0pcrg0QK0xapQkfITs3RKOA\u003d\u003d\",","isFullCredit":false},{"lineNumber":6512,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6513,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6514,"author":{"gitId":"-"},"content":" \"@eslint-community/eslint-utils\": \"^4.4.0\",","isFullCredit":false},{"lineNumber":6515,"author":{"gitId":"-"},"content":" \"globals\": \"^13.24.0\",","isFullCredit":false},{"lineNumber":6516,"author":{"gitId":"-"},"content":" \"natural-compare\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":6517,"author":{"gitId":"-"},"content":" \"nth-check\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":6518,"author":{"gitId":"-"},"content":" \"postcss-selector-parser\": \"^6.0.15\",","isFullCredit":false},{"lineNumber":6519,"author":{"gitId":"-"},"content":" \"semver\": \"^7.6.0\",","isFullCredit":false},{"lineNumber":6520,"author":{"gitId":"-"},"content":" \"vue-eslint-parser\": \"^9.4.2\",","isFullCredit":false},{"lineNumber":6521,"author":{"gitId":"-"},"content":" \"xml-name-validator\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":6522,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6523,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6524,"author":{"gitId":"-"},"content":" \"node\": \"^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":6525,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6526,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6527,"author":{"gitId":"-"},"content":" \"eslint\": \"^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0\"","isFullCredit":false},{"lineNumber":6528,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6529,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6530,"author":{"gitId":"-"},"content":" \"node_modules/eslint-plugin-vue/node_modules/globals\": {","isFullCredit":false},{"lineNumber":6531,"author":{"gitId":"-"},"content":" \"version\": \"13.24.0\",","isFullCredit":false},{"lineNumber":6532,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/globals/-/globals-13.24.0.tgz\",","isFullCredit":false},{"lineNumber":6533,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":6534,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6535,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6536,"author":{"gitId":"-"},"content":" \"type-fest\": \"^0.20.2\"","isFullCredit":false},{"lineNumber":6537,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6538,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6539,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6540,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6541,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6542,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":6543,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6544,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6545,"author":{"gitId":"-"},"content":" \"node_modules/eslint-plugin-vue/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":6546,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":6547,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":6548,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":6549,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6550,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6551,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":6552,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6553,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6554,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":6555,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6556,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6557,"author":{"gitId":"-"},"content":" \"node_modules/eslint-plugin-vue/node_modules/semver\": {","isFullCredit":false},{"lineNumber":6558,"author":{"gitId":"-"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":6559,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.6.0.tgz\",","isFullCredit":false},{"lineNumber":6560,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":6561,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6562,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6563,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":6564,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6565,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":6566,"author":{"gitId":"-"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":6567,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6568,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6569,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":6570,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6571,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6572,"author":{"gitId":"-"},"content":" \"node_modules/eslint-plugin-vue/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":6573,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":6574,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":6575,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":6576,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":6577,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6578,"author":{"gitId":"-"},"content":" \"node_modules/eslint-scope\": {","isFullCredit":false},{"lineNumber":6579,"author":{"gitId":"-"},"content":" \"version\": \"5.1.1\",","isFullCredit":false},{"lineNumber":6580,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":6581,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6582,"author":{"gitId":"-"},"content":" \"esrecurse\": \"^4.3.0\",","isFullCredit":false},{"lineNumber":6583,"author":{"gitId":"-"},"content":" \"estraverse\": \"^4.1.1\"","isFullCredit":false},{"lineNumber":6584,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6585,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6586,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8.0.0\"","isFullCredit":false},{"lineNumber":6587,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6588,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6589,"author":{"gitId":"-"},"content":" \"node_modules/eslint-visitor-keys\": {","isFullCredit":false},{"lineNumber":6590,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":6591,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6592,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":6593,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6594,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":6595,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6596,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6597,"author":{"gitId":"-"},"content":" \"node_modules/eslint-webpack-plugin\": {","isFullCredit":false},{"lineNumber":6598,"author":{"gitId":"-"},"content":" \"version\": \"3.2.0\",","isFullCredit":false},{"lineNumber":6599,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6600,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6601,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6602,"author":{"gitId":"-"},"content":" \"@types/eslint\": \"^7.29.0 || ^8.4.1\",","isFullCredit":false},{"lineNumber":6603,"author":{"gitId":"-"},"content":" \"jest-worker\": \"^28.0.2\",","isFullCredit":false},{"lineNumber":6604,"author":{"gitId":"-"},"content":" \"micromatch\": \"^4.0.5\",","isFullCredit":false},{"lineNumber":6605,"author":{"gitId":"-"},"content":" \"normalize-path\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":6606,"author":{"gitId":"-"},"content":" \"schema-utils\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":6607,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6608,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6609,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 12.13.0\"","isFullCredit":false},{"lineNumber":6610,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6611,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6612,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":6613,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":6614,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6615,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6616,"author":{"gitId":"-"},"content":" \"eslint\": \"^7.0.0 || ^8.0.0\",","isFullCredit":false},{"lineNumber":6617,"author":{"gitId":"-"},"content":" \"webpack\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":6618,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6619,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6620,"author":{"gitId":"-"},"content":" \"node_modules/eslint-webpack-plugin/node_modules/ajv\": {","isFullCredit":false},{"lineNumber":6621,"author":{"gitId":"-"},"content":" \"version\": \"8.12.0\",","isFullCredit":false},{"lineNumber":6622,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6623,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6624,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6625,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":6626,"author":{"gitId":"-"},"content":" \"json-schema-traverse\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":6627,"author":{"gitId":"-"},"content":" \"require-from-string\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":6628,"author":{"gitId":"-"},"content":" \"uri-js\": \"^4.2.2\"","isFullCredit":false},{"lineNumber":6629,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6630,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6631,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":6632,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/epoberezkin\"","isFullCredit":false},{"lineNumber":6633,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6634,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6635,"author":{"gitId":"-"},"content":" \"node_modules/eslint-webpack-plugin/node_modules/ajv-keywords\": {","isFullCredit":false},{"lineNumber":6636,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":6637,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6638,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6639,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6640,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.3\"","isFullCredit":false},{"lineNumber":6641,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6642,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":6643,"author":{"gitId":"-"},"content":" \"ajv\": \"^8.8.2\"","isFullCredit":false},{"lineNumber":6644,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6645,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6646,"author":{"gitId":"-"},"content":" \"node_modules/eslint-webpack-plugin/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":6647,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":6648,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6649,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6650,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6651,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6652,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6653,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6654,"author":{"gitId":"-"},"content":" \"node_modules/eslint-webpack-plugin/node_modules/jest-worker\": {","isFullCredit":false},{"lineNumber":6655,"author":{"gitId":"-"},"content":" \"version\": \"28.1.3\",","isFullCredit":false},{"lineNumber":6656,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6657,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6658,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6659,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\",","isFullCredit":false},{"lineNumber":6660,"author":{"gitId":"-"},"content":" \"merge-stream\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":6661,"author":{"gitId":"-"},"content":" \"supports-color\": \"^8.0.0\"","isFullCredit":false},{"lineNumber":6662,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6663,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6664,"author":{"gitId":"-"},"content":" \"node\": \"^12.13.0 || ^14.15.0 || ^16.10.0 || \u003e\u003d17.0.0\"","isFullCredit":false},{"lineNumber":6665,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6666,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6667,"author":{"gitId":"-"},"content":" \"node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse\": {","isFullCredit":false},{"lineNumber":6668,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":6669,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6670,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6671,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6672,"author":{"gitId":"-"},"content":" \"node_modules/eslint-webpack-plugin/node_modules/schema-utils\": {","isFullCredit":false},{"lineNumber":6673,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":6674,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6675,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6676,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6677,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.9\",","isFullCredit":false},{"lineNumber":6678,"author":{"gitId":"-"},"content":" \"ajv\": \"^8.8.0\",","isFullCredit":false},{"lineNumber":6679,"author":{"gitId":"-"},"content":" \"ajv-formats\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":6680,"author":{"gitId":"-"},"content":" \"ajv-keywords\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":6681,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6682,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6683,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 12.13.0\"","isFullCredit":false},{"lineNumber":6684,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6685,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6686,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":6687,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":6688,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6689,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6690,"author":{"gitId":"-"},"content":" \"node_modules/eslint-webpack-plugin/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":6691,"author":{"gitId":"-"},"content":" \"version\": \"8.1.1\",","isFullCredit":false},{"lineNumber":6692,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6693,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6694,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6695,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":6696,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6697,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6698,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":6699,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6700,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6701,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/supports-color?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":6702,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6703,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6704,"author":{"gitId":"-"},"content":" \"node_modules/eslint/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":6705,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":6706,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6707,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6708,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6709,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":6710,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6711,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6712,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6713,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6714,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6715,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":6716,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6717,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6718,"author":{"gitId":"-"},"content":" \"node_modules/eslint/node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":6719,"author":{"gitId":"-"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":6720,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6721,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6722,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6723,"author":{"gitId":"-"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":6724,"author":{"gitId":"-"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":6725,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6726,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6727,"author":{"gitId":"-"},"content":" \"node_modules/eslint/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":6728,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":6729,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6730,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6731,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6732,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":6733,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":6734,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6735,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6736,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":6737,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6738,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6739,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":6740,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6741,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6742,"author":{"gitId":"-"},"content":" \"node_modules/eslint/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":6743,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":6744,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6745,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6746,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6747,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":6748,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6749,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6750,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":6751,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6752,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6753,"author":{"gitId":"-"},"content":" \"node_modules/eslint/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":6754,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":6755,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6756,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6757,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6758,"author":{"gitId":"-"},"content":" \"node_modules/eslint/node_modules/escape-string-regexp\": {","isFullCredit":false},{"lineNumber":6759,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":6760,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6761,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6762,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6763,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":6764,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6765,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6766,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":6767,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6768,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6769,"author":{"gitId":"-"},"content":" \"node_modules/eslint/node_modules/eslint-scope\": {","isFullCredit":false},{"lineNumber":6770,"author":{"gitId":"-"},"content":" \"version\": \"7.2.2\",","isFullCredit":false},{"lineNumber":6771,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6772,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":6773,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6774,"author":{"gitId":"-"},"content":" \"esrecurse\": \"^4.3.0\",","isFullCredit":false},{"lineNumber":6775,"author":{"gitId":"-"},"content":" \"estraverse\": \"^5.2.0\"","isFullCredit":false},{"lineNumber":6776,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6777,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6778,"author":{"gitId":"-"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":6779,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6780,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6781,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":6782,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6783,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6784,"author":{"gitId":"-"},"content":" \"node_modules/eslint/node_modules/eslint-visitor-keys\": {","isFullCredit":false},{"lineNumber":6785,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.3\",","isFullCredit":false},{"lineNumber":6786,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6787,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":6788,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6789,"author":{"gitId":"-"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":6790,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6791,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6792,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":6793,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6794,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6795,"author":{"gitId":"-"},"content":" \"node_modules/eslint/node_modules/estraverse\": {","isFullCredit":false},{"lineNumber":6796,"author":{"gitId":"-"},"content":" \"version\": \"5.3.0\",","isFullCredit":false},{"lineNumber":6797,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6798,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":6799,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6800,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4.0\"","isFullCredit":false},{"lineNumber":6801,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6802,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6803,"author":{"gitId":"-"},"content":" \"node_modules/eslint/node_modules/globals\": {","isFullCredit":false},{"lineNumber":6804,"author":{"gitId":"-"},"content":" \"version\": \"13.20.0\",","isFullCredit":false},{"lineNumber":6805,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6806,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6807,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6808,"author":{"gitId":"-"},"content":" \"type-fest\": \"^0.20.2\"","isFullCredit":false},{"lineNumber":6809,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6810,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6811,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6812,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6813,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6814,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":6815,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6816,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6817,"author":{"gitId":"-"},"content":" \"node_modules/eslint/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":6818,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":6819,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6820,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6821,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6822,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6823,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6824,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6825,"author":{"gitId":"-"},"content":" \"node_modules/eslint/node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":6826,"author":{"gitId":"-"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":6827,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6828,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":6829,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6830,"author":{"gitId":"-"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":6831,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6832,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6833,"author":{"gitId":"-"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":6834,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6835,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6836,"author":{"gitId":"-"},"content":" \"node_modules/eslint/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":6837,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":6838,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6839,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6840,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6841,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":6842,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6843,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6844,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":6845,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6846,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6847,"author":{"gitId":"-"},"content":" \"node_modules/espree\": {","isFullCredit":false},{"lineNumber":6848,"author":{"gitId":"-"},"content":" \"version\": \"9.6.1\",","isFullCredit":false},{"lineNumber":6849,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6850,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":6851,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6852,"author":{"gitId":"-"},"content":" \"acorn\": \"^8.9.0\",","isFullCredit":false},{"lineNumber":6853,"author":{"gitId":"-"},"content":" \"acorn-jsx\": \"^5.3.2\",","isFullCredit":false},{"lineNumber":6854,"author":{"gitId":"-"},"content":" \"eslint-visitor-keys\": \"^3.4.1\"","isFullCredit":false},{"lineNumber":6855,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6856,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6857,"author":{"gitId":"-"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":6858,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6859,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6860,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":6861,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6862,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6863,"author":{"gitId":"-"},"content":" \"node_modules/espree/node_modules/eslint-visitor-keys\": {","isFullCredit":false},{"lineNumber":6864,"author":{"gitId":"-"},"content":" \"version\": \"3.4.3\",","isFullCredit":false},{"lineNumber":6865,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6866,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":6867,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6868,"author":{"gitId":"-"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":6869,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6870,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":6871,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":6872,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6873,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6874,"author":{"gitId":"-"},"content":" \"node_modules/esquery\": {","isFullCredit":false},{"lineNumber":6875,"author":{"gitId":"-"},"content":" \"version\": \"1.5.0\",","isFullCredit":false},{"lineNumber":6876,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6877,"author":{"gitId":"-"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":6878,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6879,"author":{"gitId":"-"},"content":" \"estraverse\": \"^5.1.0\"","isFullCredit":false},{"lineNumber":6880,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6881,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6882,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10\"","isFullCredit":false},{"lineNumber":6883,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6884,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6885,"author":{"gitId":"-"},"content":" \"node_modules/esquery/node_modules/estraverse\": {","isFullCredit":false},{"lineNumber":6886,"author":{"gitId":"-"},"content":" \"version\": \"5.3.0\",","isFullCredit":false},{"lineNumber":6887,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6888,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":6889,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6890,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4.0\"","isFullCredit":false},{"lineNumber":6891,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6892,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6893,"author":{"gitId":"-"},"content":" \"node_modules/esrecurse\": {","isFullCredit":false},{"lineNumber":6894,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":6895,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":6896,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6897,"author":{"gitId":"-"},"content":" \"estraverse\": \"^5.2.0\"","isFullCredit":false},{"lineNumber":6898,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6899,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6900,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4.0\"","isFullCredit":false},{"lineNumber":6901,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6902,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6903,"author":{"gitId":"-"},"content":" \"node_modules/esrecurse/node_modules/estraverse\": {","isFullCredit":false},{"lineNumber":6904,"author":{"gitId":"-"},"content":" \"version\": \"5.3.0\",","isFullCredit":false},{"lineNumber":6905,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":6906,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6907,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4.0\"","isFullCredit":false},{"lineNumber":6908,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6909,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6910,"author":{"gitId":"-"},"content":" \"node_modules/estraverse\": {","isFullCredit":false},{"lineNumber":6911,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":6912,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":6913,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6914,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4.0\"","isFullCredit":false},{"lineNumber":6915,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6916,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6917,"author":{"gitId":"-"},"content":" \"node_modules/estree-walker\": {","isFullCredit":false},{"lineNumber":6918,"author":{"gitId":"-"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":6919,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6920,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6921,"author":{"gitId":"-"},"content":" \"node_modules/esutils\": {","isFullCredit":false},{"lineNumber":6922,"author":{"gitId":"-"},"content":" \"version\": \"2.0.3\",","isFullCredit":false},{"lineNumber":6923,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":6924,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6925,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":6926,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6927,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6928,"author":{"gitId":"-"},"content":" \"node_modules/etag\": {","isFullCredit":false},{"lineNumber":6929,"author":{"gitId":"-"},"content":" \"version\": \"1.8.1\",","isFullCredit":false},{"lineNumber":6930,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6931,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6932,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6933,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":6934,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6935,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6936,"author":{"gitId":"-"},"content":" \"node_modules/event-pubsub\": {","isFullCredit":false},{"lineNumber":6937,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":6938,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6939,"author":{"gitId":"-"},"content":" \"license\": \"Unlicense\",","isFullCredit":false},{"lineNumber":6940,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6941,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4.0.0\"","isFullCredit":false},{"lineNumber":6942,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6943,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6944,"author":{"gitId":"-"},"content":" \"node_modules/eventemitter3\": {","isFullCredit":false},{"lineNumber":6945,"author":{"gitId":"-"},"content":" \"version\": \"4.0.7\",","isFullCredit":false},{"lineNumber":6946,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6947,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":6948,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6949,"author":{"gitId":"-"},"content":" \"node_modules/events\": {","isFullCredit":false},{"lineNumber":6950,"author":{"gitId":"-"},"content":" \"version\": \"3.3.0\",","isFullCredit":false},{"lineNumber":6951,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6952,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6953,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.8.x\"","isFullCredit":false},{"lineNumber":6954,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6955,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6956,"author":{"gitId":"-"},"content":" \"node_modules/execa\": {","isFullCredit":false},{"lineNumber":6957,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":6958,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6959,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6960,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6961,"author":{"gitId":"-"},"content":" \"cross-spawn\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":6962,"author":{"gitId":"-"},"content":" \"get-stream\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":6963,"author":{"gitId":"-"},"content":" \"is-stream\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":6964,"author":{"gitId":"-"},"content":" \"npm-run-path\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":6965,"author":{"gitId":"-"},"content":" \"p-finally\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":6966,"author":{"gitId":"-"},"content":" \"signal-exit\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":6967,"author":{"gitId":"-"},"content":" \"strip-eof\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":6968,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6969,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6970,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":6971,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6972,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6973,"author":{"gitId":"-"},"content":" \"node_modules/execa/node_modules/cross-spawn\": {","isFullCredit":false},{"lineNumber":6974,"author":{"gitId":"-"},"content":" \"version\": \"6.0.5\",","isFullCredit":false},{"lineNumber":6975,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6976,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6977,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":6978,"author":{"gitId":"-"},"content":" \"nice-try\": \"^1.0.4\",","isFullCredit":false},{"lineNumber":6979,"author":{"gitId":"-"},"content":" \"path-key\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":6980,"author":{"gitId":"-"},"content":" \"semver\": \"^5.5.0\",","isFullCredit":false},{"lineNumber":6981,"author":{"gitId":"-"},"content":" \"shebang-command\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":6982,"author":{"gitId":"-"},"content":" \"which\": \"^1.2.9\"","isFullCredit":false},{"lineNumber":6983,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6984,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6985,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4.8\"","isFullCredit":false},{"lineNumber":6986,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6987,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6988,"author":{"gitId":"-"},"content":" \"node_modules/execa/node_modules/path-key\": {","isFullCredit":false},{"lineNumber":6989,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":6990,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6991,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":6992,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":6993,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":6994,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":6995,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":6996,"author":{"gitId":"-"},"content":" \"node_modules/execa/node_modules/semver\": {","isFullCredit":false},{"lineNumber":6997,"author":{"gitId":"-"},"content":" \"version\": \"5.7.2\",","isFullCredit":false},{"lineNumber":6998,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":6999,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":7000,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":7001,"author":{"gitId":"-"},"content":" \"semver\": \"bin/semver\"","isFullCredit":false},{"lineNumber":7002,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7003,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7004,"author":{"gitId":"-"},"content":" \"node_modules/execa/node_modules/shebang-command\": {","isFullCredit":false},{"lineNumber":7005,"author":{"gitId":"-"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":7006,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7007,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7008,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7009,"author":{"gitId":"-"},"content":" \"shebang-regex\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":7010,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7011,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7012,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":7013,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7014,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7015,"author":{"gitId":"-"},"content":" \"node_modules/execa/node_modules/shebang-regex\": {","isFullCredit":false},{"lineNumber":7016,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":7017,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7018,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7019,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7020,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":7021,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7022,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7023,"author":{"gitId":"-"},"content":" \"node_modules/execa/node_modules/which\": {","isFullCredit":false},{"lineNumber":7024,"author":{"gitId":"-"},"content":" \"version\": \"1.3.1\",","isFullCredit":false},{"lineNumber":7025,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7026,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":7027,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7028,"author":{"gitId":"-"},"content":" \"isexe\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":7029,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7030,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":7031,"author":{"gitId":"-"},"content":" \"which\": \"bin/which\"","isFullCredit":false},{"lineNumber":7032,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7033,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7034,"author":{"gitId":"-"},"content":" \"node_modules/express\": {","isFullCredit":false},{"lineNumber":7035,"author":{"gitId":"-"},"content":" \"version\": \"4.19.2\",","isFullCredit":false},{"lineNumber":7036,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7037,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7038,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7039,"author":{"gitId":"-"},"content":" \"accepts\": \"~1.3.8\",","isFullCredit":false},{"lineNumber":7040,"author":{"gitId":"-"},"content":" \"array-flatten\": \"1.1.1\",","isFullCredit":false},{"lineNumber":7041,"author":{"gitId":"-"},"content":" \"body-parser\": \"1.20.2\",","isFullCredit":false},{"lineNumber":7042,"author":{"gitId":"-"},"content":" \"content-disposition\": \"0.5.4\",","isFullCredit":false},{"lineNumber":7043,"author":{"gitId":"-"},"content":" \"content-type\": \"~1.0.4\",","isFullCredit":false},{"lineNumber":7044,"author":{"gitId":"-"},"content":" \"cookie\": \"0.6.0\",","isFullCredit":false},{"lineNumber":7045,"author":{"gitId":"-"},"content":" \"cookie-signature\": \"1.0.6\",","isFullCredit":false},{"lineNumber":7046,"author":{"gitId":"-"},"content":" \"debug\": \"2.6.9\",","isFullCredit":false},{"lineNumber":7047,"author":{"gitId":"-"},"content":" \"depd\": \"2.0.0\",","isFullCredit":false},{"lineNumber":7048,"author":{"gitId":"-"},"content":" \"encodeurl\": \"~1.0.2\",","isFullCredit":false},{"lineNumber":7049,"author":{"gitId":"-"},"content":" \"escape-html\": \"~1.0.3\",","isFullCredit":false},{"lineNumber":7050,"author":{"gitId":"-"},"content":" \"etag\": \"~1.8.1\",","isFullCredit":false},{"lineNumber":7051,"author":{"gitId":"-"},"content":" \"finalhandler\": \"1.2.0\",","isFullCredit":false},{"lineNumber":7052,"author":{"gitId":"-"},"content":" \"fresh\": \"0.5.2\",","isFullCredit":false},{"lineNumber":7053,"author":{"gitId":"-"},"content":" \"http-errors\": \"2.0.0\",","isFullCredit":false},{"lineNumber":7054,"author":{"gitId":"-"},"content":" \"merge-descriptors\": \"1.0.1\",","isFullCredit":false},{"lineNumber":7055,"author":{"gitId":"-"},"content":" \"methods\": \"~1.1.2\",","isFullCredit":false},{"lineNumber":7056,"author":{"gitId":"-"},"content":" \"on-finished\": \"2.4.1\",","isFullCredit":false},{"lineNumber":7057,"author":{"gitId":"-"},"content":" \"parseurl\": \"~1.3.3\",","isFullCredit":false},{"lineNumber":7058,"author":{"gitId":"-"},"content":" \"path-to-regexp\": \"0.1.7\",","isFullCredit":false},{"lineNumber":7059,"author":{"gitId":"-"},"content":" \"proxy-addr\": \"~2.0.7\",","isFullCredit":false},{"lineNumber":7060,"author":{"gitId":"-"},"content":" \"qs\": \"6.11.0\",","isFullCredit":false},{"lineNumber":7061,"author":{"gitId":"-"},"content":" \"range-parser\": \"~1.2.1\",","isFullCredit":false},{"lineNumber":7062,"author":{"gitId":"-"},"content":" \"safe-buffer\": \"5.2.1\",","isFullCredit":false},{"lineNumber":7063,"author":{"gitId":"-"},"content":" \"send\": \"0.18.0\",","isFullCredit":false},{"lineNumber":7064,"author":{"gitId":"-"},"content":" \"serve-static\": \"1.15.0\",","isFullCredit":false},{"lineNumber":7065,"author":{"gitId":"-"},"content":" \"setprototypeof\": \"1.2.0\",","isFullCredit":false},{"lineNumber":7066,"author":{"gitId":"-"},"content":" \"statuses\": \"2.0.1\",","isFullCredit":false},{"lineNumber":7067,"author":{"gitId":"-"},"content":" \"type-is\": \"~1.6.18\",","isFullCredit":false},{"lineNumber":7068,"author":{"gitId":"-"},"content":" \"utils-merge\": \"1.0.1\",","isFullCredit":false},{"lineNumber":7069,"author":{"gitId":"-"},"content":" \"vary\": \"~1.1.2\"","isFullCredit":false},{"lineNumber":7070,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7071,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7072,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.10.0\"","isFullCredit":false},{"lineNumber":7073,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7074,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7075,"author":{"gitId":"-"},"content":" \"node_modules/express/node_modules/array-flatten\": {","isFullCredit":false},{"lineNumber":7076,"author":{"gitId":"-"},"content":" \"version\": \"1.1.1\",","isFullCredit":false},{"lineNumber":7077,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7078,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7079,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7080,"author":{"gitId":"-"},"content":" \"node_modules/express/node_modules/debug\": {","isFullCredit":false},{"lineNumber":7081,"author":{"gitId":"-"},"content":" \"version\": \"2.6.9\",","isFullCredit":false},{"lineNumber":7082,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7083,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7084,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7085,"author":{"gitId":"-"},"content":" \"ms\": \"2.0.0\"","isFullCredit":false},{"lineNumber":7086,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7087,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7088,"author":{"gitId":"-"},"content":" \"node_modules/express/node_modules/depd\": {","isFullCredit":false},{"lineNumber":7089,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":7090,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7091,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7092,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7093,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":7094,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7095,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7096,"author":{"gitId":"-"},"content":" \"node_modules/express/node_modules/ms\": {","isFullCredit":false},{"lineNumber":7097,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":7098,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7099,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7100,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7101,"author":{"gitId":"-"},"content":" \"node_modules/express/node_modules/safe-buffer\": {","isFullCredit":false},{"lineNumber":7102,"author":{"gitId":"-"},"content":" \"version\": \"5.2.1\",","isFullCredit":false},{"lineNumber":7103,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7104,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":7105,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":7106,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":7107,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":7108,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7109,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":7110,"author":{"gitId":"-"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":7111,"author":{"gitId":"-"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":7112,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7113,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":7114,"author":{"gitId":"-"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":7115,"author":{"gitId":"-"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":7116,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7117,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":7118,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7119,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7120,"author":{"gitId":"-"},"content":" \"node_modules/fast-deep-equal\": {","isFullCredit":false},{"lineNumber":7121,"author":{"gitId":"-"},"content":" \"version\": \"3.1.3\",","isFullCredit":false},{"lineNumber":7122,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7123,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7124,"author":{"gitId":"-"},"content":" \"node_modules/fast-glob\": {","isFullCredit":false},{"lineNumber":7125,"author":{"gitId":"-"},"content":" \"version\": \"3.3.2\",","isFullCredit":false},{"lineNumber":7126,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz\",","isFullCredit":false},{"lineNumber":7127,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow\u003d\u003d\",","isFullCredit":false},{"lineNumber":7128,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7129,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7130,"author":{"gitId":"-"},"content":" \"@nodelib/fs.stat\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":7131,"author":{"gitId":"-"},"content":" \"@nodelib/fs.walk\": \"^1.2.3\",","isFullCredit":false},{"lineNumber":7132,"author":{"gitId":"-"},"content":" \"glob-parent\": \"^5.1.2\",","isFullCredit":false},{"lineNumber":7133,"author":{"gitId":"-"},"content":" \"merge2\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":7134,"author":{"gitId":"-"},"content":" \"micromatch\": \"^4.0.4\"","isFullCredit":false},{"lineNumber":7135,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7136,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7137,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8.6.0\"","isFullCredit":false},{"lineNumber":7138,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7139,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7140,"author":{"gitId":"-"},"content":" \"node_modules/fast-glob/node_modules/glob-parent\": {","isFullCredit":false},{"lineNumber":7141,"author":{"gitId":"-"},"content":" \"version\": \"5.1.2\",","isFullCredit":false},{"lineNumber":7142,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7143,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":7144,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7145,"author":{"gitId":"-"},"content":" \"is-glob\": \"^4.0.1\"","isFullCredit":false},{"lineNumber":7146,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7147,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7148,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":7149,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7150,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7151,"author":{"gitId":"-"},"content":" \"node_modules/fast-json-stable-stringify\": {","isFullCredit":false},{"lineNumber":7152,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":7153,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7154,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7155,"author":{"gitId":"-"},"content":" \"node_modules/fast-levenshtein\": {","isFullCredit":false},{"lineNumber":7156,"author":{"gitId":"-"},"content":" \"version\": \"2.0.6\",","isFullCredit":false},{"lineNumber":7157,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7158,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7159,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7160,"author":{"gitId":"-"},"content":" \"node_modules/fastest-levenshtein\": {","isFullCredit":false},{"lineNumber":7161,"author":{"gitId":"-"},"content":" \"version\": \"1.0.16\",","isFullCredit":false},{"lineNumber":7162,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7163,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7164,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7165,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 4.9.1\"","isFullCredit":false},{"lineNumber":7166,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7167,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7168,"author":{"gitId":"-"},"content":" \"node_modules/fastq\": {","isFullCredit":false},{"lineNumber":7169,"author":{"gitId":"-"},"content":" \"version\": \"1.15.0\",","isFullCredit":false},{"lineNumber":7170,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7171,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":7172,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7173,"author":{"gitId":"-"},"content":" \"reusify\": \"^1.0.4\"","isFullCredit":false},{"lineNumber":7174,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7175,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7176,"author":{"gitId":"-"},"content":" \"node_modules/faye-websocket\": {","isFullCredit":false},{"lineNumber":7177,"author":{"gitId":"-"},"content":" \"version\": \"0.11.4\",","isFullCredit":false},{"lineNumber":7178,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7179,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":7180,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7181,"author":{"gitId":"-"},"content":" \"websocket-driver\": \"\u003e\u003d0.5.1\"","isFullCredit":false},{"lineNumber":7182,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7183,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7184,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.8.0\"","isFullCredit":false},{"lineNumber":7185,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7186,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7187,"author":{"gitId":"-"},"content":" \"node_modules/figures\": {","isFullCredit":false},{"lineNumber":7188,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":7189,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7190,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7191,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7192,"author":{"gitId":"-"},"content":" \"escape-string-regexp\": \"^1.0.5\"","isFullCredit":false},{"lineNumber":7193,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7194,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7195,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":7196,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7197,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7198,"author":{"gitId":"-"},"content":" \"node_modules/file-entry-cache\": {","isFullCredit":false},{"lineNumber":7199,"author":{"gitId":"-"},"content":" \"version\": \"6.0.1\",","isFullCredit":false},{"lineNumber":7200,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7201,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7202,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7203,"author":{"gitId":"-"},"content":" \"flat-cache\": \"^3.0.4\"","isFullCredit":false},{"lineNumber":7204,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7205,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7206,"author":{"gitId":"-"},"content":" \"node\": \"^10.12.0 || \u003e\u003d12.0.0\"","isFullCredit":false},{"lineNumber":7207,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7208,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7209,"author":{"gitId":"-"},"content":" \"node_modules/fill-range\": {","isFullCredit":false},{"lineNumber":7210,"author":{"gitId":"-"},"content":" \"version\": \"7.0.1\",","isFullCredit":false},{"lineNumber":7211,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7212,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7213,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7214,"author":{"gitId":"-"},"content":" \"to-regex-range\": \"^5.0.1\"","isFullCredit":false},{"lineNumber":7215,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7216,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7217,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":7218,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7219,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7220,"author":{"gitId":"-"},"content":" \"node_modules/finalhandler\": {","isFullCredit":false},{"lineNumber":7221,"author":{"gitId":"-"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":7222,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7223,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7224,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7225,"author":{"gitId":"-"},"content":" \"debug\": \"2.6.9\",","isFullCredit":false},{"lineNumber":7226,"author":{"gitId":"-"},"content":" \"encodeurl\": \"~1.0.2\",","isFullCredit":false},{"lineNumber":7227,"author":{"gitId":"-"},"content":" \"escape-html\": \"~1.0.3\",","isFullCredit":false},{"lineNumber":7228,"author":{"gitId":"-"},"content":" \"on-finished\": \"2.4.1\",","isFullCredit":false},{"lineNumber":7229,"author":{"gitId":"-"},"content":" \"parseurl\": \"~1.3.3\",","isFullCredit":false},{"lineNumber":7230,"author":{"gitId":"-"},"content":" \"statuses\": \"2.0.1\",","isFullCredit":false},{"lineNumber":7231,"author":{"gitId":"-"},"content":" \"unpipe\": \"~1.0.0\"","isFullCredit":false},{"lineNumber":7232,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7233,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7234,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":7235,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7236,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7237,"author":{"gitId":"-"},"content":" \"node_modules/finalhandler/node_modules/debug\": {","isFullCredit":false},{"lineNumber":7238,"author":{"gitId":"-"},"content":" \"version\": \"2.6.9\",","isFullCredit":false},{"lineNumber":7239,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7240,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7241,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7242,"author":{"gitId":"-"},"content":" \"ms\": \"2.0.0\"","isFullCredit":false},{"lineNumber":7243,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7244,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7245,"author":{"gitId":"-"},"content":" \"node_modules/finalhandler/node_modules/ms\": {","isFullCredit":false},{"lineNumber":7246,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":7247,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7248,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7249,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7250,"author":{"gitId":"-"},"content":" \"node_modules/find-cache-dir\": {","isFullCredit":false},{"lineNumber":7251,"author":{"gitId":"-"},"content":" \"version\": \"3.3.2\",","isFullCredit":false},{"lineNumber":7252,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7253,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7254,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7255,"author":{"gitId":"-"},"content":" \"commondir\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":7256,"author":{"gitId":"-"},"content":" \"make-dir\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":7257,"author":{"gitId":"-"},"content":" \"pkg-dir\": \"^4.1.0\"","isFullCredit":false},{"lineNumber":7258,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7259,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7260,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":7261,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7262,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7263,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/avajs/find-cache-dir?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":7264,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7265,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7266,"author":{"gitId":"-"},"content":" \"node_modules/find-line-column\": {","isFullCredit":false},{"lineNumber":7267,"author":{"gitId":"-"},"content":" \"version\": \"0.5.2\",","isFullCredit":false},{"lineNumber":7268,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7269,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7270,"author":{"gitId":"-"},"content":" \"node_modules/find-up\": {","isFullCredit":false},{"lineNumber":7271,"author":{"gitId":"-"},"content":" \"version\": \"5.0.0\",","isFullCredit":false},{"lineNumber":7272,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7273,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7274,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7275,"author":{"gitId":"-"},"content":" \"locate-path\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":7276,"author":{"gitId":"-"},"content":" \"path-exists\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":7277,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7278,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7279,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":7280,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7281,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7282,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":7283,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7284,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7285,"author":{"gitId":"-"},"content":" \"node_modules/flat-cache\": {","isFullCredit":false},{"lineNumber":7286,"author":{"gitId":"-"},"content":" \"version\": \"3.0.4\",","isFullCredit":false},{"lineNumber":7287,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7288,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7289,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7290,"author":{"gitId":"-"},"content":" \"flatted\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":7291,"author":{"gitId":"-"},"content":" \"rimraf\": \"^3.0.2\"","isFullCredit":false},{"lineNumber":7292,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7293,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7294,"author":{"gitId":"-"},"content":" \"node\": \"^10.12.0 || \u003e\u003d12.0.0\"","isFullCredit":false},{"lineNumber":7295,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7296,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7297,"author":{"gitId":"-"},"content":" \"node_modules/flatted\": {","isFullCredit":false},{"lineNumber":7298,"author":{"gitId":"-"},"content":" \"version\": \"3.3.1\",","isFullCredit":false},{"lineNumber":7299,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz\",","isFullCredit":false},{"lineNumber":7300,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw\u003d\u003d\",","isFullCredit":false},{"lineNumber":7301,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":7302,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7303,"author":{"gitId":"-"},"content":" \"node_modules/follow-redirects\": {","isFullCredit":false},{"lineNumber":7304,"author":{"gitId":"-"},"content":" \"version\": \"1.15.6\",","isFullCredit":false},{"lineNumber":7305,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7306,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":7307,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":7308,"author":{"gitId":"-"},"content":" \"type\": \"individual\",","isFullCredit":false},{"lineNumber":7309,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/RubenVerborgh\"","isFullCredit":false},{"lineNumber":7310,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7311,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":7312,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7313,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7314,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4.0\"","isFullCredit":false},{"lineNumber":7315,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7316,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":7317,"author":{"gitId":"-"},"content":" \"debug\": {","isFullCredit":false},{"lineNumber":7318,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7319,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7320,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7321,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7322,"author":{"gitId":"-"},"content":" \"node_modules/for-each\": {","isFullCredit":false},{"lineNumber":7323,"author":{"gitId":"-"},"content":" \"version\": \"0.3.3\",","isFullCredit":false},{"lineNumber":7324,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7325,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7326,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7327,"author":{"gitId":"-"},"content":" \"is-callable\": \"^1.1.3\"","isFullCredit":false},{"lineNumber":7328,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7329,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7330,"author":{"gitId":"-"},"content":" \"node_modules/foreachasync\": {","isFullCredit":false},{"lineNumber":7331,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":7332,"author":{"gitId":"-"},"content":" \"license\": \"Apache2\"","isFullCredit":false},{"lineNumber":7333,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7334,"author":{"gitId":"-"},"content":" \"node_modules/fork-ts-checker-webpack-plugin\": {","isFullCredit":false},{"lineNumber":7335,"author":{"gitId":"-"},"content":" \"version\": \"6.5.2\",","isFullCredit":false},{"lineNumber":7336,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7337,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7338,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7339,"author":{"gitId":"-"},"content":" \"@babel/code-frame\": \"^7.8.3\",","isFullCredit":false},{"lineNumber":7340,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.5\",","isFullCredit":false},{"lineNumber":7341,"author":{"gitId":"-"},"content":" \"chalk\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":7342,"author":{"gitId":"-"},"content":" \"chokidar\": \"^3.4.2\",","isFullCredit":false},{"lineNumber":7343,"author":{"gitId":"-"},"content":" \"cosmiconfig\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":7344,"author":{"gitId":"-"},"content":" \"deepmerge\": \"^4.2.2\",","isFullCredit":false},{"lineNumber":7345,"author":{"gitId":"-"},"content":" \"fs-extra\": \"^9.0.0\",","isFullCredit":false},{"lineNumber":7346,"author":{"gitId":"-"},"content":" \"glob\": \"^7.1.6\",","isFullCredit":false},{"lineNumber":7347,"author":{"gitId":"-"},"content":" \"memfs\": \"^3.1.2\",","isFullCredit":false},{"lineNumber":7348,"author":{"gitId":"-"},"content":" \"minimatch\": \"^3.0.4\",","isFullCredit":false},{"lineNumber":7349,"author":{"gitId":"-"},"content":" \"schema-utils\": \"2.7.0\",","isFullCredit":false},{"lineNumber":7350,"author":{"gitId":"-"},"content":" \"semver\": \"^7.3.2\",","isFullCredit":false},{"lineNumber":7351,"author":{"gitId":"-"},"content":" \"tapable\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":7352,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7353,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7354,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\",","isFullCredit":false},{"lineNumber":7355,"author":{"gitId":"-"},"content":" \"yarn\": \"\u003e\u003d1.0.0\"","isFullCredit":false},{"lineNumber":7356,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7357,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":7358,"author":{"gitId":"-"},"content":" \"eslint\": \"\u003e\u003d 6\",","isFullCredit":false},{"lineNumber":7359,"author":{"gitId":"-"},"content":" \"typescript\": \"\u003e\u003d 2.7\",","isFullCredit":false},{"lineNumber":7360,"author":{"gitId":"-"},"content":" \"vue-template-compiler\": \"*\",","isFullCredit":false},{"lineNumber":7361,"author":{"gitId":"-"},"content":" \"webpack\": \"\u003e\u003d 4\"","isFullCredit":false},{"lineNumber":7362,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7363,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":7364,"author":{"gitId":"-"},"content":" \"eslint\": {","isFullCredit":false},{"lineNumber":7365,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7366,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7367,"author":{"gitId":"-"},"content":" \"vue-template-compiler\": {","isFullCredit":false},{"lineNumber":7368,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":7369,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7370,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7371,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7372,"author":{"gitId":"-"},"content":" \"node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":7373,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":7374,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7375,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7376,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7377,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":7378,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7379,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7380,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":7381,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7382,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7383,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":7384,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7385,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7386,"author":{"gitId":"-"},"content":" \"node_modules/fork-ts-checker-webpack-plugin/node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":7387,"author":{"gitId":"-"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":7388,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7389,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7390,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7391,"author":{"gitId":"-"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":7392,"author":{"gitId":"-"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":7393,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7394,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7395,"author":{"gitId":"-"},"content":" \"node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":7396,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":7397,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7398,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7399,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7400,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":7401,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":7402,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7403,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7404,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":7405,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7406,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7407,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":7408,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7409,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7410,"author":{"gitId":"-"},"content":" \"node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":7411,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":7412,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7413,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7414,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7415,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":7416,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7417,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7418,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":7419,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7420,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7421,"author":{"gitId":"-"},"content":" \"node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":7422,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":7423,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7424,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7425,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7426,"author":{"gitId":"-"},"content":" \"node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":7427,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":7428,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7429,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7430,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7431,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":7432,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7433,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7434,"author":{"gitId":"-"},"content":" \"node_modules/fork-ts-checker-webpack-plugin/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":7435,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":7436,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7437,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":7438,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7439,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":7440,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7441,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7442,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":7443,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7444,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7445,"author":{"gitId":"-"},"content":" \"node_modules/fork-ts-checker-webpack-plugin/node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":7446,"author":{"gitId":"-"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":7447,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7448,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":7449,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7450,"author":{"gitId":"-"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":7451,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7452,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7453,"author":{"gitId":"-"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":7454,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7455,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7456,"author":{"gitId":"-"},"content":" \"node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils\": {","isFullCredit":false},{"lineNumber":7457,"author":{"gitId":"-"},"content":" \"version\": \"2.7.0\",","isFullCredit":false},{"lineNumber":7458,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7459,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7460,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7461,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.4\",","isFullCredit":false},{"lineNumber":7462,"author":{"gitId":"-"},"content":" \"ajv\": \"^6.12.2\",","isFullCredit":false},{"lineNumber":7463,"author":{"gitId":"-"},"content":" \"ajv-keywords\": \"^3.4.1\"","isFullCredit":false},{"lineNumber":7464,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7465,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7466,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 8.9.0\"","isFullCredit":false},{"lineNumber":7467,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7468,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7469,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":7470,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":7471,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7472,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7473,"author":{"gitId":"-"},"content":" \"node_modules/fork-ts-checker-webpack-plugin/node_modules/semver\": {","isFullCredit":false},{"lineNumber":7474,"author":{"gitId":"-"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":7475,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7476,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":7477,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7478,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":7479,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7480,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":7481,"author":{"gitId":"-"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":7482,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7483,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7484,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":7485,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7486,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7487,"author":{"gitId":"-"},"content":" \"node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":7488,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":7489,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7490,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7491,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7492,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":7493,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7494,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7495,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":7496,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7497,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7498,"author":{"gitId":"-"},"content":" \"node_modules/fork-ts-checker-webpack-plugin/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":7499,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":7500,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7501,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":7502,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7503,"author":{"gitId":"-"},"content":" \"node_modules/forwarded\": {","isFullCredit":false},{"lineNumber":7504,"author":{"gitId":"-"},"content":" \"version\": \"0.2.0\",","isFullCredit":false},{"lineNumber":7505,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7506,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7507,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7508,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":7509,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7510,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7511,"author":{"gitId":"-"},"content":" \"node_modules/fraction.js\": {","isFullCredit":false},{"lineNumber":7512,"author":{"gitId":"-"},"content":" \"version\": \"4.2.0\",","isFullCredit":false},{"lineNumber":7513,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7514,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7515,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7516,"author":{"gitId":"-"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":7517,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7518,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7519,"author":{"gitId":"-"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":7520,"author":{"gitId":"-"},"content":" \"url\": \"https://www.patreon.com/infusion\"","isFullCredit":false},{"lineNumber":7521,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7522,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7523,"author":{"gitId":"-"},"content":" \"node_modules/fresh\": {","isFullCredit":false},{"lineNumber":7524,"author":{"gitId":"-"},"content":" \"version\": \"0.5.2\",","isFullCredit":false},{"lineNumber":7525,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7526,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7527,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7528,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":7529,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7530,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7531,"author":{"gitId":"-"},"content":" \"node_modules/fs-extra\": {","isFullCredit":false},{"lineNumber":7532,"author":{"gitId":"-"},"content":" \"version\": \"9.1.0\",","isFullCredit":false},{"lineNumber":7533,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7534,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7535,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7536,"author":{"gitId":"-"},"content":" \"at-least-node\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":7537,"author":{"gitId":"-"},"content":" \"graceful-fs\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":7538,"author":{"gitId":"-"},"content":" \"jsonfile\": \"^6.0.1\",","isFullCredit":false},{"lineNumber":7539,"author":{"gitId":"-"},"content":" \"universalify\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":7540,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7541,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7542,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":7543,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7544,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7545,"author":{"gitId":"-"},"content":" \"node_modules/fs-monkey\": {","isFullCredit":false},{"lineNumber":7546,"author":{"gitId":"-"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":7547,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7548,"author":{"gitId":"-"},"content":" \"license\": \"Unlicense\"","isFullCredit":false},{"lineNumber":7549,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7550,"author":{"gitId":"-"},"content":" \"node_modules/fs.realpath\": {","isFullCredit":false},{"lineNumber":7551,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":7552,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":7553,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7554,"author":{"gitId":"-"},"content":" \"node_modules/function-bind\": {","isFullCredit":false},{"lineNumber":7555,"author":{"gitId":"-"},"content":" \"version\": \"1.1.2\",","isFullCredit":false},{"lineNumber":7556,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7557,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7558,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7559,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7560,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7561,"author":{"gitId":"-"},"content":" \"node_modules/function.prototype.name\": {","isFullCredit":false},{"lineNumber":7562,"author":{"gitId":"-"},"content":" \"version\": \"1.1.6\",","isFullCredit":false},{"lineNumber":7563,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7564,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7565,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7566,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":7567,"author":{"gitId":"-"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":7568,"author":{"gitId":"-"},"content":" \"es-abstract\": \"^1.22.1\",","isFullCredit":false},{"lineNumber":7569,"author":{"gitId":"-"},"content":" \"functions-have-names\": \"^1.2.3\"","isFullCredit":false},{"lineNumber":7570,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7571,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7572,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":7573,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7574,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7575,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7576,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7577,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7578,"author":{"gitId":"-"},"content":" \"node_modules/functions-have-names\": {","isFullCredit":false},{"lineNumber":7579,"author":{"gitId":"-"},"content":" \"version\": \"1.2.3\",","isFullCredit":false},{"lineNumber":7580,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7581,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7582,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7583,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7584,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7585,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7586,"author":{"gitId":"-"},"content":" \"node_modules/gensync\": {","isFullCredit":false},{"lineNumber":7587,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0-beta.2\",","isFullCredit":false},{"lineNumber":7588,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7589,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7590,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7591,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.9.0\"","isFullCredit":false},{"lineNumber":7592,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7593,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7594,"author":{"gitId":"-"},"content":" \"node_modules/get-caller-file\": {","isFullCredit":false},{"lineNumber":7595,"author":{"gitId":"-"},"content":" \"version\": \"2.0.5\",","isFullCredit":false},{"lineNumber":7596,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7597,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":7598,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7599,"author":{"gitId":"-"},"content":" \"node\": \"6.* || 8.* || \u003e\u003d 10.*\"","isFullCredit":false},{"lineNumber":7600,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7601,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7602,"author":{"gitId":"-"},"content":" \"node_modules/get-intrinsic\": {","isFullCredit":false},{"lineNumber":7603,"author":{"gitId":"-"},"content":" \"version\": \"1.2.4\",","isFullCredit":false},{"lineNumber":7604,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7605,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7606,"author":{"gitId":"-"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":7607,"author":{"gitId":"-"},"content":" \"function-bind\": \"^1.1.2\",","isFullCredit":false},{"lineNumber":7608,"author":{"gitId":"-"},"content":" \"has-proto\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":7609,"author":{"gitId":"-"},"content":" \"has-symbols\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":7610,"author":{"gitId":"-"},"content":" \"hasown\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":7611,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7612,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7613,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":7614,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7615,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7616,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7617,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7618,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7619,"author":{"gitId":"-"},"content":" \"node_modules/get-stream\": {","isFullCredit":false},{"lineNumber":7620,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":7621,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7622,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7623,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7624,"author":{"gitId":"-"},"content":" \"pump\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":7625,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7626,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7627,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":7628,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7629,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7630,"author":{"gitId":"-"},"content":" \"node_modules/get-symbol-description\": {","isFullCredit":false},{"lineNumber":7631,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":7632,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7633,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7634,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7635,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":7636,"author":{"gitId":"-"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":7637,"author":{"gitId":"-"},"content":" \"get-intrinsic\": \"^1.2.4\"","isFullCredit":false},{"lineNumber":7638,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7639,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7640,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":7641,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7642,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7643,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7644,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7645,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7646,"author":{"gitId":"-"},"content":" \"node_modules/glob\": {","isFullCredit":false},{"lineNumber":7647,"author":{"gitId":"-"},"content":" \"version\": \"7.2.3\",","isFullCredit":false},{"lineNumber":7648,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":7649,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7650,"author":{"gitId":"-"},"content":" \"fs.realpath\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":7651,"author":{"gitId":"-"},"content":" \"inflight\": \"^1.0.4\",","isFullCredit":false},{"lineNumber":7652,"author":{"gitId":"-"},"content":" \"inherits\": \"2\",","isFullCredit":false},{"lineNumber":7653,"author":{"gitId":"-"},"content":" \"minimatch\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":7654,"author":{"gitId":"-"},"content":" \"once\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":7655,"author":{"gitId":"-"},"content":" \"path-is-absolute\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":7656,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7657,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7658,"author":{"gitId":"-"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":7659,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7660,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7661,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/isaacs\"","isFullCredit":false},{"lineNumber":7662,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7663,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7664,"author":{"gitId":"-"},"content":" \"node_modules/glob-parent\": {","isFullCredit":false},{"lineNumber":7665,"author":{"gitId":"-"},"content":" \"version\": \"6.0.2\",","isFullCredit":false},{"lineNumber":7666,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7667,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":7668,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7669,"author":{"gitId":"-"},"content":" \"is-glob\": \"^4.0.3\"","isFullCredit":false},{"lineNumber":7670,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7671,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7672,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10.13.0\"","isFullCredit":false},{"lineNumber":7673,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7674,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7675,"author":{"gitId":"-"},"content":" \"node_modules/glob-to-regexp\": {","isFullCredit":false},{"lineNumber":7676,"author":{"gitId":"-"},"content":" \"version\": \"0.4.1\",","isFullCredit":false},{"lineNumber":7677,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\"","isFullCredit":false},{"lineNumber":7678,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7679,"author":{"gitId":"-"},"content":" \"node_modules/glob/node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":7680,"author":{"gitId":"-"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":7681,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7682,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7683,"author":{"gitId":"-"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":7684,"author":{"gitId":"-"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":7685,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7686,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7687,"author":{"gitId":"-"},"content":" \"node_modules/glob/node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":7688,"author":{"gitId":"-"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":7689,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":7690,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7691,"author":{"gitId":"-"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":7692,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7693,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7694,"author":{"gitId":"-"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":7695,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7696,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7697,"author":{"gitId":"-"},"content":" \"node_modules/global-modules\": {","isFullCredit":false},{"lineNumber":7698,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":7699,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7700,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7701,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7702,"author":{"gitId":"-"},"content":" \"global-prefix\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":7703,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7704,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7705,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":7706,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7707,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7708,"author":{"gitId":"-"},"content":" \"node_modules/global-prefix\": {","isFullCredit":false},{"lineNumber":7709,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":7710,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7711,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7712,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7713,"author":{"gitId":"-"},"content":" \"ini\": \"^1.3.5\",","isFullCredit":false},{"lineNumber":7714,"author":{"gitId":"-"},"content":" \"kind-of\": \"^6.0.2\",","isFullCredit":false},{"lineNumber":7715,"author":{"gitId":"-"},"content":" \"which\": \"^1.3.1\"","isFullCredit":false},{"lineNumber":7716,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7717,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7718,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":7719,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7720,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7721,"author":{"gitId":"-"},"content":" \"node_modules/global-prefix/node_modules/which\": {","isFullCredit":false},{"lineNumber":7722,"author":{"gitId":"-"},"content":" \"version\": \"1.3.1\",","isFullCredit":false},{"lineNumber":7723,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7724,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":7725,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7726,"author":{"gitId":"-"},"content":" \"isexe\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":7727,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7728,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":7729,"author":{"gitId":"-"},"content":" \"which\": \"bin/which\"","isFullCredit":false},{"lineNumber":7730,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7731,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7732,"author":{"gitId":"-"},"content":" \"node_modules/globals\": {","isFullCredit":false},{"lineNumber":7733,"author":{"gitId":"-"},"content":" \"version\": \"11.12.0\",","isFullCredit":false},{"lineNumber":7734,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7735,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7736,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7737,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":7738,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7739,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7740,"author":{"gitId":"-"},"content":" \"node_modules/globalthis\": {","isFullCredit":false},{"lineNumber":7741,"author":{"gitId":"-"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":7742,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7743,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7744,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7745,"author":{"gitId":"-"},"content":" \"define-properties\": \"^1.1.3\"","isFullCredit":false},{"lineNumber":7746,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7747,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7748,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":7749,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7750,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7751,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7752,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7753,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7754,"author":{"gitId":"-"},"content":" \"node_modules/globby\": {","isFullCredit":false},{"lineNumber":7755,"author":{"gitId":"-"},"content":" \"version\": \"11.1.0\",","isFullCredit":false},{"lineNumber":7756,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7757,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7758,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7759,"author":{"gitId":"-"},"content":" \"array-union\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":7760,"author":{"gitId":"-"},"content":" \"dir-glob\": \"^3.0.1\",","isFullCredit":false},{"lineNumber":7761,"author":{"gitId":"-"},"content":" \"fast-glob\": \"^3.2.9\",","isFullCredit":false},{"lineNumber":7762,"author":{"gitId":"-"},"content":" \"ignore\": \"^5.2.0\",","isFullCredit":false},{"lineNumber":7763,"author":{"gitId":"-"},"content":" \"merge2\": \"^1.4.1\",","isFullCredit":false},{"lineNumber":7764,"author":{"gitId":"-"},"content":" \"slash\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":7765,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7766,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7767,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":7768,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7769,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7770,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":7771,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7772,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7773,"author":{"gitId":"-"},"content":" \"node_modules/globjoin\": {","isFullCredit":false},{"lineNumber":7774,"author":{"gitId":"-"},"content":" \"version\": \"0.1.4\",","isFullCredit":false},{"lineNumber":7775,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7776,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7777,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7778,"author":{"gitId":"-"},"content":" \"node_modules/gopd\": {","isFullCredit":false},{"lineNumber":7779,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":7780,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7781,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7782,"author":{"gitId":"-"},"content":" \"get-intrinsic\": \"^1.1.3\"","isFullCredit":false},{"lineNumber":7783,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7784,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7785,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7786,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7787,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7788,"author":{"gitId":"-"},"content":" \"node_modules/graceful-fs\": {","isFullCredit":false},{"lineNumber":7789,"author":{"gitId":"-"},"content":" \"version\": \"4.2.10\",","isFullCredit":false},{"lineNumber":7790,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":7791,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7792,"author":{"gitId":"-"},"content":" \"node_modules/graphemer\": {","isFullCredit":false},{"lineNumber":7793,"author":{"gitId":"-"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":7794,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7795,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7796,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7797,"author":{"gitId":"-"},"content":" \"node_modules/gzip-size\": {","isFullCredit":false},{"lineNumber":7798,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":7799,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7800,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7801,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7802,"author":{"gitId":"-"},"content":" \"duplexer\": \"^0.1.2\"","isFullCredit":false},{"lineNumber":7803,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7804,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7805,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":7806,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7807,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7808,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":7809,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7810,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7811,"author":{"gitId":"-"},"content":" \"node_modules/handle-thing\": {","isFullCredit":false},{"lineNumber":7812,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":7813,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7814,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7815,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7816,"author":{"gitId":"-"},"content":" \"node_modules/has-bigints\": {","isFullCredit":false},{"lineNumber":7817,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":7818,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7819,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7820,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7821,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7822,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7823,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7824,"author":{"gitId":"-"},"content":" \"node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":7825,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":7826,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7827,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7828,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7829,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":7830,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7831,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7832,"author":{"gitId":"-"},"content":" \"node_modules/has-property-descriptors\": {","isFullCredit":false},{"lineNumber":7833,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":7834,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7835,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7836,"author":{"gitId":"-"},"content":" \"es-define-property\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":7837,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7838,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7839,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7840,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7841,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7842,"author":{"gitId":"-"},"content":" \"node_modules/has-proto\": {","isFullCredit":false},{"lineNumber":7843,"author":{"gitId":"-"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":7844,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7845,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7846,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":7847,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7848,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7849,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7850,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7851,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7852,"author":{"gitId":"-"},"content":" \"node_modules/has-symbols\": {","isFullCredit":false},{"lineNumber":7853,"author":{"gitId":"-"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":7854,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7855,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7856,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":7857,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7858,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7859,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7860,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7861,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7862,"author":{"gitId":"-"},"content":" \"node_modules/has-tostringtag\": {","isFullCredit":false},{"lineNumber":7863,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":7864,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7865,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7866,"author":{"gitId":"-"},"content":" \"has-symbols\": \"^1.0.3\"","isFullCredit":false},{"lineNumber":7867,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7868,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7869,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":7870,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7871,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7872,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":7873,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7874,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7875,"author":{"gitId":"-"},"content":" \"node_modules/hash-sum\": {","isFullCredit":false},{"lineNumber":7876,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":7877,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7878,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7879,"author":{"gitId":"-"},"content":" \"node_modules/hasown\": {","isFullCredit":false},{"lineNumber":7880,"author":{"gitId":"-"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":7881,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7882,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7883,"author":{"gitId":"-"},"content":" \"function-bind\": \"^1.1.2\"","isFullCredit":false},{"lineNumber":7884,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7885,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7886,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":7887,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7888,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7889,"author":{"gitId":"-"},"content":" \"node_modules/he\": {","isFullCredit":false},{"lineNumber":7890,"author":{"gitId":"-"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":7891,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7892,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7893,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":7894,"author":{"gitId":"-"},"content":" \"he\": \"bin/he\"","isFullCredit":false},{"lineNumber":7895,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7896,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7897,"author":{"gitId":"-"},"content":" \"node_modules/highlight.js\": {","isFullCredit":false},{"lineNumber":7898,"author":{"gitId":"-"},"content":" \"version\": \"10.7.3\",","isFullCredit":false},{"lineNumber":7899,"author":{"gitId":"-"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":7900,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7901,"author":{"gitId":"-"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":7902,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7903,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7904,"author":{"gitId":"-"},"content":" \"node_modules/hpack.js\": {","isFullCredit":false},{"lineNumber":7905,"author":{"gitId":"-"},"content":" \"version\": \"2.1.6\",","isFullCredit":false},{"lineNumber":7906,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7907,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7908,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7909,"author":{"gitId":"-"},"content":" \"inherits\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":7910,"author":{"gitId":"-"},"content":" \"obuf\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":7911,"author":{"gitId":"-"},"content":" \"readable-stream\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":7912,"author":{"gitId":"-"},"content":" \"wbuf\": \"^1.1.0\"","isFullCredit":false},{"lineNumber":7913,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7914,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7915,"author":{"gitId":"-"},"content":" \"node_modules/html-entities\": {","isFullCredit":false},{"lineNumber":7916,"author":{"gitId":"-"},"content":" \"version\": \"2.3.3\",","isFullCredit":false},{"lineNumber":7917,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7918,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":7919,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7920,"author":{"gitId":"-"},"content":" \"node_modules/html-minifier-terser\": {","isFullCredit":false},{"lineNumber":7921,"author":{"gitId":"-"},"content":" \"version\": \"6.1.0\",","isFullCredit":false},{"lineNumber":7922,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7923,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7924,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7925,"author":{"gitId":"-"},"content":" \"camel-case\": \"^4.1.2\",","isFullCredit":false},{"lineNumber":7926,"author":{"gitId":"-"},"content":" \"clean-css\": \"^5.2.2\",","isFullCredit":false},{"lineNumber":7927,"author":{"gitId":"-"},"content":" \"commander\": \"^8.3.0\",","isFullCredit":false},{"lineNumber":7928,"author":{"gitId":"-"},"content":" \"he\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":7929,"author":{"gitId":"-"},"content":" \"param-case\": \"^3.0.4\",","isFullCredit":false},{"lineNumber":7930,"author":{"gitId":"-"},"content":" \"relateurl\": \"^0.2.7\",","isFullCredit":false},{"lineNumber":7931,"author":{"gitId":"-"},"content":" \"terser\": \"^5.10.0\"","isFullCredit":false},{"lineNumber":7932,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7933,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":7934,"author":{"gitId":"-"},"content":" \"html-minifier-terser\": \"cli.js\"","isFullCredit":false},{"lineNumber":7935,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7936,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7937,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":7938,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7939,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7940,"author":{"gitId":"-"},"content":" \"node_modules/html-tags\": {","isFullCredit":false},{"lineNumber":7941,"author":{"gitId":"-"},"content":" \"version\": \"3.3.1\",","isFullCredit":false},{"lineNumber":7942,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz\",","isFullCredit":false},{"lineNumber":7943,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":7944,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7945,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7946,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":7947,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7948,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7949,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":7950,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7951,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7952,"author":{"gitId":"-"},"content":" \"node_modules/html-webpack-plugin\": {","isFullCredit":false},{"lineNumber":7953,"author":{"gitId":"-"},"content":" \"version\": \"5.5.0\",","isFullCredit":false},{"lineNumber":7954,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7955,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7956,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7957,"author":{"gitId":"-"},"content":" \"@types/html-minifier-terser\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":7958,"author":{"gitId":"-"},"content":" \"html-minifier-terser\": \"^6.0.2\",","isFullCredit":false},{"lineNumber":7959,"author":{"gitId":"-"},"content":" \"lodash\": \"^4.17.21\",","isFullCredit":false},{"lineNumber":7960,"author":{"gitId":"-"},"content":" \"pretty-error\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":7961,"author":{"gitId":"-"},"content":" \"tapable\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":7962,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7963,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7964,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10.13.0\"","isFullCredit":false},{"lineNumber":7965,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7966,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":7967,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":7968,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/html-webpack-plugin\"","isFullCredit":false},{"lineNumber":7969,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7970,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":7971,"author":{"gitId":"-"},"content":" \"webpack\": \"^5.20.0\"","isFullCredit":false},{"lineNumber":7972,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7973,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7974,"author":{"gitId":"-"},"content":" \"node_modules/html-webpack-plugin/node_modules/tapable\": {","isFullCredit":false},{"lineNumber":7975,"author":{"gitId":"-"},"content":" \"version\": \"2.2.1\",","isFullCredit":false},{"lineNumber":7976,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":7977,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7978,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":7979,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":7980,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7981,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7982,"author":{"gitId":"-"},"content":" \"node_modules/htmlparser2\": {","isFullCredit":false},{"lineNumber":7983,"author":{"gitId":"-"},"content":" \"version\": \"8.0.1\",","isFullCredit":false},{"lineNumber":7984,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":7985,"author":{"gitId":"-"},"content":" \"https://github.com/fb55/htmlparser2?sponsor\u003d1\",","isFullCredit":false},{"lineNumber":7986,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":7987,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":7988,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/fb55\"","isFullCredit":false},{"lineNumber":7989,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7990,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":7991,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":7992,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":7993,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":7994,"author":{"gitId":"-"},"content":" \"domhandler\": \"^5.0.2\",","isFullCredit":false},{"lineNumber":7995,"author":{"gitId":"-"},"content":" \"domutils\": \"^3.0.1\",","isFullCredit":false},{"lineNumber":7996,"author":{"gitId":"-"},"content":" \"entities\": \"^4.3.0\"","isFullCredit":false},{"lineNumber":7997,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":7998,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":7999,"author":{"gitId":"-"},"content":" \"node_modules/http-deceiver\": {","isFullCredit":false},{"lineNumber":8000,"author":{"gitId":"-"},"content":" \"version\": \"1.2.7\",","isFullCredit":false},{"lineNumber":8001,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8002,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8003,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8004,"author":{"gitId":"-"},"content":" \"node_modules/http-errors\": {","isFullCredit":false},{"lineNumber":8005,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":8006,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8007,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8008,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8009,"author":{"gitId":"-"},"content":" \"depd\": \"2.0.0\",","isFullCredit":false},{"lineNumber":8010,"author":{"gitId":"-"},"content":" \"inherits\": \"2.0.4\",","isFullCredit":false},{"lineNumber":8011,"author":{"gitId":"-"},"content":" \"setprototypeof\": \"1.2.0\",","isFullCredit":false},{"lineNumber":8012,"author":{"gitId":"-"},"content":" \"statuses\": \"2.0.1\",","isFullCredit":false},{"lineNumber":8013,"author":{"gitId":"-"},"content":" \"toidentifier\": \"1.0.1\"","isFullCredit":false},{"lineNumber":8014,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8015,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8016,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":8017,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8018,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8019,"author":{"gitId":"-"},"content":" \"node_modules/http-errors/node_modules/depd\": {","isFullCredit":false},{"lineNumber":8020,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":8021,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8022,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8023,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8024,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":8025,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8026,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8027,"author":{"gitId":"-"},"content":" \"node_modules/http-parser-js\": {","isFullCredit":false},{"lineNumber":8028,"author":{"gitId":"-"},"content":" \"version\": \"0.5.8\",","isFullCredit":false},{"lineNumber":8029,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8030,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8031,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8032,"author":{"gitId":"-"},"content":" \"node_modules/http-proxy\": {","isFullCredit":false},{"lineNumber":8033,"author":{"gitId":"-"},"content":" \"version\": \"1.18.1\",","isFullCredit":false},{"lineNumber":8034,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8035,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8036,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8037,"author":{"gitId":"-"},"content":" \"eventemitter3\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":8038,"author":{"gitId":"-"},"content":" \"follow-redirects\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":8039,"author":{"gitId":"-"},"content":" \"requires-port\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":8040,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8041,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8042,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8.0.0\"","isFullCredit":false},{"lineNumber":8043,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8044,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8045,"author":{"gitId":"-"},"content":" \"node_modules/http-proxy-middleware\": {","isFullCredit":false},{"lineNumber":8046,"author":{"gitId":"-"},"content":" \"version\": \"2.0.6\",","isFullCredit":false},{"lineNumber":8047,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8048,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8049,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8050,"author":{"gitId":"-"},"content":" \"@types/http-proxy\": \"^1.17.8\",","isFullCredit":false},{"lineNumber":8051,"author":{"gitId":"-"},"content":" \"http-proxy\": \"^1.18.1\",","isFullCredit":false},{"lineNumber":8052,"author":{"gitId":"-"},"content":" \"is-glob\": \"^4.0.1\",","isFullCredit":false},{"lineNumber":8053,"author":{"gitId":"-"},"content":" \"is-plain-obj\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":8054,"author":{"gitId":"-"},"content":" \"micromatch\": \"^4.0.2\"","isFullCredit":false},{"lineNumber":8055,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8056,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8057,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d12.0.0\"","isFullCredit":false},{"lineNumber":8058,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8059,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":8060,"author":{"gitId":"-"},"content":" \"@types/express\": \"^4.17.13\"","isFullCredit":false},{"lineNumber":8061,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8062,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":8063,"author":{"gitId":"-"},"content":" \"@types/express\": {","isFullCredit":false},{"lineNumber":8064,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":8065,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8066,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8067,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8068,"author":{"gitId":"-"},"content":" \"node_modules/http-proxy-middleware/node_modules/is-plain-obj\": {","isFullCredit":false},{"lineNumber":8069,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":8070,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8071,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8072,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8073,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":8074,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8075,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8076,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":8077,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8078,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8079,"author":{"gitId":"-"},"content":" \"node_modules/human-signals\": {","isFullCredit":false},{"lineNumber":8080,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":8081,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8082,"author":{"gitId":"sopa301"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":8083,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8084,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10.17.0\"","isFullCredit":false},{"lineNumber":8085,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8086,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8087,"author":{"gitId":"-"},"content":" \"node_modules/iconv-lite\": {","isFullCredit":false},{"lineNumber":8088,"author":{"gitId":"-"},"content":" \"version\": \"0.6.3\",","isFullCredit":false},{"lineNumber":8089,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8090,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8091,"author":{"gitId":"-"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":8092,"author":{"gitId":"-"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":8093,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8094,"author":{"gitId":"-"},"content":" \"safer-buffer\": \"\u003e\u003d 2.1.2 \u003c 3.0.0\"","isFullCredit":false},{"lineNumber":8095,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8096,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8097,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":8098,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8099,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8100,"author":{"gitId":"-"},"content":" \"node_modules/icss-utils\": {","isFullCredit":false},{"lineNumber":8101,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":8102,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8103,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":8104,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8105,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d 14\"","isFullCredit":false},{"lineNumber":8106,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8107,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":8108,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.1.0\"","isFullCredit":false},{"lineNumber":8109,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8110,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8111,"author":{"gitId":"-"},"content":" \"node_modules/ieee754\": {","isFullCredit":false},{"lineNumber":8112,"author":{"gitId":"-"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":8113,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8114,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":8115,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":8116,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":8117,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":8118,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8119,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":8120,"author":{"gitId":"-"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":8121,"author":{"gitId":"-"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":8122,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8123,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":8124,"author":{"gitId":"-"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":8125,"author":{"gitId":"-"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":8126,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8127,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":8128,"author":{"gitId":"-"},"content":" \"license\": \"BSD-3-Clause\"","isFullCredit":false},{"lineNumber":8129,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8130,"author":{"gitId":"-"},"content":" \"node_modules/ignore\": {","isFullCredit":false},{"lineNumber":8131,"author":{"gitId":"-"},"content":" \"version\": \"5.3.1\",","isFullCredit":false},{"lineNumber":8132,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz\",","isFullCredit":false},{"lineNumber":8133,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw\u003d\u003d\",","isFullCredit":false},{"lineNumber":8134,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8135,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8136,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 4\"","isFullCredit":false},{"lineNumber":8137,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8138,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8139,"author":{"gitId":"-"},"content":" \"node_modules/immediate\": {","isFullCredit":false},{"lineNumber":8140,"author":{"gitId":"-"},"content":" \"version\": \"3.0.6\",","isFullCredit":false},{"lineNumber":8141,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8142,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8143,"author":{"gitId":"-"},"content":" \"node_modules/immutable\": {","isFullCredit":false},{"lineNumber":8144,"author":{"gitId":"-"},"content":" \"version\": \"4.2.4\",","isFullCredit":false},{"lineNumber":8145,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8146,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8147,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8148,"author":{"gitId":"-"},"content":" \"node_modules/import-fresh\": {","isFullCredit":false},{"lineNumber":8149,"author":{"gitId":"-"},"content":" \"version\": \"3.3.0\",","isFullCredit":false},{"lineNumber":8150,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8151,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8152,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8153,"author":{"gitId":"-"},"content":" \"parent-module\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":8154,"author":{"gitId":"-"},"content":" \"resolve-from\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":8155,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8156,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8157,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":8158,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8159,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8160,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":8161,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8162,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8163,"author":{"gitId":"-"},"content":" \"node_modules/imurmurhash\": {","isFullCredit":false},{"lineNumber":8164,"author":{"gitId":"-"},"content":" \"version\": \"0.1.4\",","isFullCredit":false},{"lineNumber":8165,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8166,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8167,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8168,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.8.19\"","isFullCredit":false},{"lineNumber":8169,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8170,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8171,"author":{"gitId":"-"},"content":" \"node_modules/inflight\": {","isFullCredit":false},{"lineNumber":8172,"author":{"gitId":"-"},"content":" \"version\": \"1.0.6\",","isFullCredit":false},{"lineNumber":8173,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":8174,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8175,"author":{"gitId":"-"},"content":" \"once\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":8176,"author":{"gitId":"-"},"content":" \"wrappy\": \"1\"","isFullCredit":false},{"lineNumber":8177,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8178,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8179,"author":{"gitId":"-"},"content":" \"node_modules/inherits\": {","isFullCredit":false},{"lineNumber":8180,"author":{"gitId":"-"},"content":" \"version\": \"2.0.4\",","isFullCredit":false},{"lineNumber":8181,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":8182,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8183,"author":{"gitId":"-"},"content":" \"node_modules/ini\": {","isFullCredit":false},{"lineNumber":8184,"author":{"gitId":"-"},"content":" \"version\": \"1.3.8\",","isFullCredit":false},{"lineNumber":8185,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8186,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":8187,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8188,"author":{"gitId":"-"},"content":" \"node_modules/internal-slot\": {","isFullCredit":false},{"lineNumber":8189,"author":{"gitId":"-"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":8190,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8191,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8192,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8193,"author":{"gitId":"-"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":8194,"author":{"gitId":"-"},"content":" \"hasown\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":8195,"author":{"gitId":"-"},"content":" \"side-channel\": \"^1.0.4\"","isFullCredit":false},{"lineNumber":8196,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8197,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8198,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":8199,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8200,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8201,"author":{"gitId":"-"},"content":" \"node_modules/ipaddr.js\": {","isFullCredit":false},{"lineNumber":8202,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":8203,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8204,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8205,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8206,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10\"","isFullCredit":false},{"lineNumber":8207,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8208,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8209,"author":{"gitId":"-"},"content":" \"node_modules/is-array-buffer\": {","isFullCredit":false},{"lineNumber":8210,"author":{"gitId":"-"},"content":" \"version\": \"3.0.4\",","isFullCredit":false},{"lineNumber":8211,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8212,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8213,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8214,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":8215,"author":{"gitId":"-"},"content":" \"get-intrinsic\": \"^1.2.1\"","isFullCredit":false},{"lineNumber":8216,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8217,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8218,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":8219,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8220,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8221,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":8222,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8223,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8224,"author":{"gitId":"-"},"content":" \"node_modules/is-arrayish\": {","isFullCredit":false},{"lineNumber":8225,"author":{"gitId":"-"},"content":" \"version\": \"0.2.1\",","isFullCredit":false},{"lineNumber":8226,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8227,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8228,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8229,"author":{"gitId":"-"},"content":" \"node_modules/is-bigint\": {","isFullCredit":false},{"lineNumber":8230,"author":{"gitId":"-"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":8231,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8232,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8233,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8234,"author":{"gitId":"-"},"content":" \"has-bigints\": \"^1.0.1\"","isFullCredit":false},{"lineNumber":8235,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8236,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8237,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":8238,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8239,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8240,"author":{"gitId":"-"},"content":" \"node_modules/is-binary-path\": {","isFullCredit":false},{"lineNumber":8241,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":8242,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8243,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8244,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8245,"author":{"gitId":"-"},"content":" \"binary-extensions\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":8246,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8247,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8248,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":8249,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8250,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8251,"author":{"gitId":"-"},"content":" \"node_modules/is-boolean-object\": {","isFullCredit":false},{"lineNumber":8252,"author":{"gitId":"-"},"content":" \"version\": \"1.1.2\",","isFullCredit":false},{"lineNumber":8253,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8254,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8255,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8256,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":8257,"author":{"gitId":"-"},"content":" \"has-tostringtag\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":8258,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8259,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8260,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":8261,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8262,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8263,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":8264,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8265,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8266,"author":{"gitId":"-"},"content":" \"node_modules/is-callable\": {","isFullCredit":false},{"lineNumber":8267,"author":{"gitId":"-"},"content":" \"version\": \"1.2.7\",","isFullCredit":false},{"lineNumber":8268,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8269,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8270,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8271,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":8272,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8273,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8274,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":8275,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8276,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8277,"author":{"gitId":"-"},"content":" \"node_modules/is-ci\": {","isFullCredit":false},{"lineNumber":8278,"author":{"gitId":"-"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":8279,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8280,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8281,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8282,"author":{"gitId":"-"},"content":" \"ci-info\": \"^1.5.0\"","isFullCredit":false},{"lineNumber":8283,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8284,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":8285,"author":{"gitId":"-"},"content":" \"is-ci\": \"bin.js\"","isFullCredit":false},{"lineNumber":8286,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8287,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8288,"author":{"gitId":"-"},"content":" \"node_modules/is-core-module\": {","isFullCredit":false},{"lineNumber":8289,"author":{"gitId":"-"},"content":" \"version\": \"2.13.1\",","isFullCredit":false},{"lineNumber":8290,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8291,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8292,"author":{"gitId":"-"},"content":" \"hasown\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":8293,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8294,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8295,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":8296,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8297,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8298,"author":{"gitId":"-"},"content":" \"node_modules/is-date-object\": {","isFullCredit":false},{"lineNumber":8299,"author":{"gitId":"-"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":8300,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8301,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8302,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8303,"author":{"gitId":"-"},"content":" \"has-tostringtag\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":8304,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8305,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8306,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":8307,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8308,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8309,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":8310,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8311,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8312,"author":{"gitId":"-"},"content":" \"node_modules/is-docker\": {","isFullCredit":false},{"lineNumber":8313,"author":{"gitId":"-"},"content":" \"version\": \"2.2.1\",","isFullCredit":false},{"lineNumber":8314,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8315,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8316,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":8317,"author":{"gitId":"-"},"content":" \"is-docker\": \"cli.js\"","isFullCredit":false},{"lineNumber":8318,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8319,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8320,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":8321,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8322,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8323,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":8324,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8325,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8326,"author":{"gitId":"-"},"content":" \"node_modules/is-expression\": {","isFullCredit":false},{"lineNumber":8327,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":8328,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8329,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8330,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8331,"author":{"gitId":"-"},"content":" \"acorn\": \"^7.1.1\",","isFullCredit":false},{"lineNumber":8332,"author":{"gitId":"-"},"content":" \"object-assign\": \"^4.1.1\"","isFullCredit":false},{"lineNumber":8333,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8334,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8335,"author":{"gitId":"-"},"content":" \"node_modules/is-expression/node_modules/acorn\": {","isFullCredit":false},{"lineNumber":8336,"author":{"gitId":"-"},"content":" \"version\": \"7.4.1\",","isFullCredit":false},{"lineNumber":8337,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8338,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8339,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":8340,"author":{"gitId":"-"},"content":" \"acorn\": \"bin/acorn\"","isFullCredit":false},{"lineNumber":8341,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8342,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8343,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.4.0\"","isFullCredit":false},{"lineNumber":8344,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8345,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8346,"author":{"gitId":"-"},"content":" \"node_modules/is-extglob\": {","isFullCredit":false},{"lineNumber":8347,"author":{"gitId":"-"},"content":" \"version\": \"2.1.1\",","isFullCredit":false},{"lineNumber":8348,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8349,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8350,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8351,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":8352,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8353,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8354,"author":{"gitId":"-"},"content":" \"node_modules/is-file-esm\": {","isFullCredit":false},{"lineNumber":8355,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":8356,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8357,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8358,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8359,"author":{"gitId":"-"},"content":" \"read-pkg-up\": \"^7.0.1\"","isFullCredit":false},{"lineNumber":8360,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8361,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8362,"author":{"gitId":"-"},"content":" \"node_modules/is-fullwidth-code-point\": {","isFullCredit":false},{"lineNumber":8363,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":8364,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8365,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8366,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8367,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":8368,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8369,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8370,"author":{"gitId":"-"},"content":" \"node_modules/is-glob\": {","isFullCredit":false},{"lineNumber":8371,"author":{"gitId":"-"},"content":" \"version\": \"4.0.3\",","isFullCredit":false},{"lineNumber":8372,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8373,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8374,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8375,"author":{"gitId":"-"},"content":" \"is-extglob\": \"^2.1.1\"","isFullCredit":false},{"lineNumber":8376,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8377,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8378,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":8379,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8380,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8381,"author":{"gitId":"-"},"content":" \"node_modules/is-interactive\": {","isFullCredit":false},{"lineNumber":8382,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":8383,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8384,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8385,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8386,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":8387,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8388,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8389,"author":{"gitId":"-"},"content":" \"node_modules/is-negative-zero\": {","isFullCredit":false},{"lineNumber":8390,"author":{"gitId":"-"},"content":" \"version\": \"2.0.3\",","isFullCredit":false},{"lineNumber":8391,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8392,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8393,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8394,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":8395,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8396,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8397,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":8398,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8399,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8400,"author":{"gitId":"-"},"content":" \"node_modules/is-number\": {","isFullCredit":false},{"lineNumber":8401,"author":{"gitId":"-"},"content":" \"version\": \"7.0.0\",","isFullCredit":false},{"lineNumber":8402,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8403,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8404,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8405,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.12.0\"","isFullCredit":false},{"lineNumber":8406,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8407,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8408,"author":{"gitId":"-"},"content":" \"node_modules/is-number-object\": {","isFullCredit":false},{"lineNumber":8409,"author":{"gitId":"-"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":8410,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8411,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8412,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8413,"author":{"gitId":"-"},"content":" \"has-tostringtag\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":8414,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8415,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8416,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":8417,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8418,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8419,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":8420,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8421,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8422,"author":{"gitId":"-"},"content":" \"node_modules/is-path-inside\": {","isFullCredit":false},{"lineNumber":8423,"author":{"gitId":"-"},"content":" \"version\": \"3.0.3\",","isFullCredit":false},{"lineNumber":8424,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8425,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8426,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8427,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":8428,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8429,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8430,"author":{"gitId":"-"},"content":" \"node_modules/is-plain-object\": {","isFullCredit":false},{"lineNumber":8431,"author":{"gitId":"-"},"content":" \"version\": \"5.0.0\",","isFullCredit":false},{"lineNumber":8432,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8433,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8434,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8435,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":8436,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8437,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8438,"author":{"gitId":"-"},"content":" \"node_modules/is-promise\": {","isFullCredit":false},{"lineNumber":8439,"author":{"gitId":"-"},"content":" \"version\": \"2.2.2\",","isFullCredit":false},{"lineNumber":8440,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8441,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8442,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8443,"author":{"gitId":"-"},"content":" \"node_modules/is-regex\": {","isFullCredit":false},{"lineNumber":8444,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":8445,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8446,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8447,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":8448,"author":{"gitId":"-"},"content":" \"has-tostringtag\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":8449,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8450,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8451,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":8452,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8453,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8454,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":8455,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8456,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8457,"author":{"gitId":"-"},"content":" \"node_modules/is-shared-array-buffer\": {","isFullCredit":false},{"lineNumber":8458,"author":{"gitId":"-"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":8459,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8460,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8461,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8462,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.7\"","isFullCredit":false},{"lineNumber":8463,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8464,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8465,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":8466,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8467,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8468,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":8469,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8470,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8471,"author":{"gitId":"-"},"content":" \"node_modules/is-stream\": {","isFullCredit":false},{"lineNumber":8472,"author":{"gitId":"-"},"content":" \"version\": \"1.1.0\",","isFullCredit":false},{"lineNumber":8473,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8474,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8475,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8476,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":8477,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8478,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8479,"author":{"gitId":"-"},"content":" \"node_modules/is-string\": {","isFullCredit":false},{"lineNumber":8480,"author":{"gitId":"-"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":8481,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8482,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8483,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8484,"author":{"gitId":"-"},"content":" \"has-tostringtag\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":8485,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8486,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8487,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":8488,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8489,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8490,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":8491,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8492,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8493,"author":{"gitId":"-"},"content":" \"node_modules/is-symbol\": {","isFullCredit":false},{"lineNumber":8494,"author":{"gitId":"-"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":8495,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8496,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8497,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8498,"author":{"gitId":"-"},"content":" \"has-symbols\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":8499,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8500,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8501,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":8502,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8503,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8504,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":8505,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8506,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8507,"author":{"gitId":"-"},"content":" \"node_modules/is-typed-array\": {","isFullCredit":false},{"lineNumber":8508,"author":{"gitId":"-"},"content":" \"version\": \"1.1.13\",","isFullCredit":false},{"lineNumber":8509,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8510,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8511,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8512,"author":{"gitId":"-"},"content":" \"which-typed-array\": \"^1.1.14\"","isFullCredit":false},{"lineNumber":8513,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8514,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8515,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":8516,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8517,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8518,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":8519,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8520,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8521,"author":{"gitId":"-"},"content":" \"node_modules/is-unicode-supported\": {","isFullCredit":false},{"lineNumber":8522,"author":{"gitId":"-"},"content":" \"version\": \"0.1.0\",","isFullCredit":false},{"lineNumber":8523,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8524,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8525,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8526,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":8527,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8528,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8529,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":8530,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8531,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8532,"author":{"gitId":"-"},"content":" \"node_modules/is-weakref\": {","isFullCredit":false},{"lineNumber":8533,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":8534,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8535,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8536,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8537,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":8538,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8539,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8540,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":8541,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8542,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8543,"author":{"gitId":"-"},"content":" \"node_modules/is-wsl\": {","isFullCredit":false},{"lineNumber":8544,"author":{"gitId":"-"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":8545,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8546,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8547,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8548,"author":{"gitId":"-"},"content":" \"is-docker\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":8549,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8550,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8551,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":8552,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8553,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8554,"author":{"gitId":"-"},"content":" \"node_modules/isarray\": {","isFullCredit":false},{"lineNumber":8555,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":8556,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8557,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8558,"author":{"gitId":"-"},"content":" \"node_modules/isexe\": {","isFullCredit":false},{"lineNumber":8559,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":8560,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8561,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":8562,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8563,"author":{"gitId":"-"},"content":" \"node_modules/isobject\": {","isFullCredit":false},{"lineNumber":8564,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":8565,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8566,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8567,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8568,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":8569,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8570,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8571,"author":{"gitId":"-"},"content":" \"node_modules/javascript-stringify\": {","isFullCredit":false},{"lineNumber":8572,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":8573,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8574,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8575,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8576,"author":{"gitId":"-"},"content":" \"node_modules/jest-util\": {","isFullCredit":false},{"lineNumber":8577,"author":{"gitId":"-"},"content":" \"version\": \"29.7.0\",","isFullCredit":false},{"lineNumber":8578,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz\",","isFullCredit":false},{"lineNumber":8579,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA\u003d\u003d\",","isFullCredit":false},{"lineNumber":8580,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8581,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8582,"author":{"gitId":"-"},"content":" \"@jest/types\": \"^29.6.3\",","isFullCredit":false},{"lineNumber":8583,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\",","isFullCredit":false},{"lineNumber":8584,"author":{"gitId":"-"},"content":" \"chalk\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":8585,"author":{"gitId":"-"},"content":" \"ci-info\": \"^3.2.0\",","isFullCredit":false},{"lineNumber":8586,"author":{"gitId":"-"},"content":" \"graceful-fs\": \"^4.2.9\",","isFullCredit":false},{"lineNumber":8587,"author":{"gitId":"-"},"content":" \"picomatch\": \"^2.2.3\"","isFullCredit":false},{"lineNumber":8588,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":8589,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8590,"author":{"gitId":"-"},"content":" \"node\": \"^14.15.0 || ^16.10.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":8591,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":8592,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":8593,"author":{"gitId":"-"},"content":" \"node_modules/jest-util/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":8594,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":8595,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",","isFullCredit":false},{"lineNumber":8596,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg\u003d\u003d\",","isFullCredit":false},{"lineNumber":8597,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8598,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8599,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":8600,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8601,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8602,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":8603,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8604,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8605,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":8606,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8607,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8608,"author":{"gitId":"-"},"content":" \"node_modules/jest-util/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":8609,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":8610,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",","isFullCredit":false},{"lineNumber":8611,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA\u003d\u003d\",","isFullCredit":false},{"lineNumber":8612,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8613,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8614,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":8615,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":8616,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8617,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8618,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":8619,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":8620,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8621,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":8622,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8623,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8624,"author":{"gitId":"-"},"content":" \"node_modules/jest-util/node_modules/ci-info\": {","isFullCredit":false},{"lineNumber":8625,"author":{"gitId":"-"},"content":" \"version\": \"3.9.0\",","isFullCredit":false},{"lineNumber":8626,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz\",","isFullCredit":false},{"lineNumber":8627,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":8628,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8629,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":8630,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":8631,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":8632,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sibiraj-s\"","isFullCredit":false},{"lineNumber":8633,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8634,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":8635,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8636,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":8637,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8638,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8639,"author":{"gitId":"-"},"content":" \"node_modules/jest-util/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":8640,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":8641,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",","isFullCredit":false},{"lineNumber":8642,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":8643,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8644,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8645,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":8646,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8647,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8648,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":8649,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8650,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8651,"author":{"gitId":"-"},"content":" \"node_modules/jest-util/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":8652,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":8653,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",","isFullCredit":false},{"lineNumber":8654,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA\u003d\u003d\",","isFullCredit":false},{"lineNumber":8655,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":8656,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8657,"author":{"gitId":"-"},"content":" \"node_modules/jest-util/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":8658,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":8659,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":8660,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":8661,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8662,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8663,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":8664,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8665,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8666,"author":{"gitId":"-"},"content":" \"node_modules/jest-util/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":8667,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":8668,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",","isFullCredit":false},{"lineNumber":8669,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw\u003d\u003d\",","isFullCredit":false},{"lineNumber":8670,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8671,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8672,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":8673,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8674,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8675,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":8676,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8677,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8678,"author":{"gitId":"-"},"content":" \"node_modules/jest-worker\": {","isFullCredit":false},{"lineNumber":8679,"author":{"gitId":"-"},"content":" \"version\": \"27.5.1\",","isFullCredit":false},{"lineNumber":8680,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8681,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8682,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\",","isFullCredit":false},{"lineNumber":8683,"author":{"gitId":"-"},"content":" \"merge-stream\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":8684,"author":{"gitId":"-"},"content":" \"supports-color\": \"^8.0.0\"","isFullCredit":false},{"lineNumber":8685,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8686,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8687,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10.13.0\"","isFullCredit":false},{"lineNumber":8688,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8689,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8690,"author":{"gitId":"-"},"content":" \"node_modules/jest-worker/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":8691,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":8692,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8693,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8694,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":8695,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8696,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8697,"author":{"gitId":"-"},"content":" \"node_modules/jest-worker/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":8698,"author":{"gitId":"-"},"content":" \"version\": \"8.1.1\",","isFullCredit":false},{"lineNumber":8699,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8700,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8701,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":8702,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8703,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8704,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":8705,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8706,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8707,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/supports-color?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":8708,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8709,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8710,"author":{"gitId":"-"},"content":" \"node_modules/joi\": {","isFullCredit":false},{"lineNumber":8711,"author":{"gitId":"-"},"content":" \"version\": \"17.7.0\",","isFullCredit":false},{"lineNumber":8712,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8713,"author":{"gitId":"-"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":8714,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8715,"author":{"gitId":"-"},"content":" \"@hapi/hoek\": \"^9.0.0\",","isFullCredit":false},{"lineNumber":8716,"author":{"gitId":"-"},"content":" \"@hapi/topo\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":8717,"author":{"gitId":"-"},"content":" \"@sideway/address\": \"^4.1.3\",","isFullCredit":false},{"lineNumber":8718,"author":{"gitId":"-"},"content":" \"@sideway/formula\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":8719,"author":{"gitId":"-"},"content":" \"@sideway/pinpoint\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":8720,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8721,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8722,"author":{"gitId":"-"},"content":" \"node_modules/js-message\": {","isFullCredit":false},{"lineNumber":8723,"author":{"gitId":"-"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":8724,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8725,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8726,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8727,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.6.0\"","isFullCredit":false},{"lineNumber":8728,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8729,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8730,"author":{"gitId":"-"},"content":" \"node_modules/js-stringify\": {","isFullCredit":false},{"lineNumber":8731,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":8732,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8733,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8734,"author":{"gitId":"-"},"content":" \"node_modules/js-tokens\": {","isFullCredit":false},{"lineNumber":8735,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":8736,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8737,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8738,"author":{"gitId":"-"},"content":" \"node_modules/js-yaml\": {","isFullCredit":false},{"lineNumber":8739,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":8740,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8741,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8742,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8743,"author":{"gitId":"-"},"content":" \"argparse\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":8744,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8745,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":8746,"author":{"gitId":"-"},"content":" \"js-yaml\": \"bin/js-yaml.js\"","isFullCredit":false},{"lineNumber":8747,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8748,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8749,"author":{"gitId":"-"},"content":" \"node_modules/jsesc\": {","isFullCredit":false},{"lineNumber":8750,"author":{"gitId":"-"},"content":" \"version\": \"2.5.2\",","isFullCredit":false},{"lineNumber":8751,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8752,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8753,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":8754,"author":{"gitId":"-"},"content":" \"jsesc\": \"bin/jsesc\"","isFullCredit":false},{"lineNumber":8755,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8756,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8757,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":8758,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8759,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8760,"author":{"gitId":"-"},"content":" \"node_modules/json-buffer\": {","isFullCredit":false},{"lineNumber":8761,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":8762,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz\",","isFullCredit":false},{"lineNumber":8763,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":8764,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":8765,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8766,"author":{"gitId":"-"},"content":" \"node_modules/json-parse-better-errors\": {","isFullCredit":false},{"lineNumber":8767,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":8768,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8769,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8770,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8771,"author":{"gitId":"-"},"content":" \"node_modules/json-parse-even-better-errors\": {","isFullCredit":false},{"lineNumber":8772,"author":{"gitId":"-"},"content":" \"version\": \"2.3.1\",","isFullCredit":false},{"lineNumber":8773,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8774,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8775,"author":{"gitId":"-"},"content":" \"node_modules/json-schema-traverse\": {","isFullCredit":false},{"lineNumber":8776,"author":{"gitId":"-"},"content":" \"version\": \"0.4.1\",","isFullCredit":false},{"lineNumber":8777,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8778,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8779,"author":{"gitId":"-"},"content":" \"node_modules/json-stable-stringify-without-jsonify\": {","isFullCredit":false},{"lineNumber":8780,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":8781,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8782,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8783,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8784,"author":{"gitId":"-"},"content":" \"node_modules/json5\": {","isFullCredit":false},{"lineNumber":8785,"author":{"gitId":"-"},"content":" \"version\": \"2.2.3\",","isFullCredit":false},{"lineNumber":8786,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8787,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8788,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":8789,"author":{"gitId":"-"},"content":" \"json5\": \"lib/cli.js\"","isFullCredit":false},{"lineNumber":8790,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8791,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8792,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":8793,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8794,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8795,"author":{"gitId":"-"},"content":" \"node_modules/jsonfile\": {","isFullCredit":false},{"lineNumber":8796,"author":{"gitId":"-"},"content":" \"version\": \"6.1.0\",","isFullCredit":false},{"lineNumber":8797,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8798,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8799,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8800,"author":{"gitId":"-"},"content":" \"universalify\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":8801,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8802,"author":{"gitId":"-"},"content":" \"optionalDependencies\": {","isFullCredit":false},{"lineNumber":8803,"author":{"gitId":"-"},"content":" \"graceful-fs\": \"^4.1.6\"","isFullCredit":false},{"lineNumber":8804,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8805,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8806,"author":{"gitId":"-"},"content":" \"node_modules/jstransformer\": {","isFullCredit":false},{"lineNumber":8807,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":8808,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8809,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8810,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8811,"author":{"gitId":"-"},"content":" \"is-promise\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":8812,"author":{"gitId":"-"},"content":" \"promise\": \"^7.0.1\"","isFullCredit":false},{"lineNumber":8813,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8814,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8815,"author":{"gitId":"-"},"content":" \"node_modules/jszip\": {","isFullCredit":false},{"lineNumber":8816,"author":{"gitId":"-"},"content":" \"version\": \"3.10.1\",","isFullCredit":false},{"lineNumber":8817,"author":{"gitId":"-"},"content":" \"license\": \"(MIT OR GPL-3.0-or-later)\",","isFullCredit":false},{"lineNumber":8818,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8819,"author":{"gitId":"-"},"content":" \"lie\": \"~3.3.0\",","isFullCredit":false},{"lineNumber":8820,"author":{"gitId":"-"},"content":" \"pako\": \"~1.0.2\",","isFullCredit":false},{"lineNumber":8821,"author":{"gitId":"-"},"content":" \"readable-stream\": \"~2.3.6\",","isFullCredit":false},{"lineNumber":8822,"author":{"gitId":"-"},"content":" \"setimmediate\": \"^1.0.5\"","isFullCredit":false},{"lineNumber":8823,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8824,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8825,"author":{"gitId":"-"},"content":" \"node_modules/keyv\": {","isFullCredit":false},{"lineNumber":8826,"author":{"gitId":"-"},"content":" \"version\": \"4.5.4\",","isFullCredit":false},{"lineNumber":8827,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz\",","isFullCredit":false},{"lineNumber":8828,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw\u003d\u003d\",","isFullCredit":false},{"lineNumber":8829,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8830,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8831,"author":{"gitId":"-"},"content":" \"json-buffer\": \"3.0.1\"","isFullCredit":false},{"lineNumber":8832,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8833,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":8834,"author":{"gitId":"-"},"content":" \"node_modules/kind-of\": {","isFullCredit":false},{"lineNumber":8835,"author":{"gitId":"-"},"content":" \"version\": \"6.0.3\",","isFullCredit":false},{"lineNumber":8836,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8837,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8838,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8839,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":8840,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8841,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8842,"author":{"gitId":"-"},"content":" \"node_modules/klona\": {","isFullCredit":false},{"lineNumber":8843,"author":{"gitId":"-"},"content":" \"version\": \"2.0.6\",","isFullCredit":false},{"lineNumber":8844,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8845,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8846,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8847,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":8848,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8849,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8850,"author":{"gitId":"-"},"content":" \"node_modules/known-css-properties\": {","isFullCredit":false},{"lineNumber":8851,"author":{"gitId":"-"},"content":" \"version\": \"0.30.0\",","isFullCredit":false},{"lineNumber":8852,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.30.0.tgz\",","isFullCredit":false},{"lineNumber":8853,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":8854,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":8855,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8856,"author":{"gitId":"-"},"content":" \"node_modules/launch-editor\": {","isFullCredit":false},{"lineNumber":8857,"author":{"gitId":"-"},"content":" \"version\": \"2.6.0\",","isFullCredit":false},{"lineNumber":8858,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8859,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8860,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8861,"author":{"gitId":"-"},"content":" \"picocolors\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":8862,"author":{"gitId":"-"},"content":" \"shell-quote\": \"^1.7.3\"","isFullCredit":false},{"lineNumber":8863,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8864,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8865,"author":{"gitId":"-"},"content":" \"node_modules/launch-editor-middleware\": {","isFullCredit":false},{"lineNumber":8866,"author":{"gitId":"-"},"content":" \"version\": \"2.6.0\",","isFullCredit":false},{"lineNumber":8867,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8868,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8869,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8870,"author":{"gitId":"-"},"content":" \"launch-editor\": \"^2.6.0\"","isFullCredit":false},{"lineNumber":8871,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8872,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8873,"author":{"gitId":"-"},"content":" \"node_modules/levn\": {","isFullCredit":false},{"lineNumber":8874,"author":{"gitId":"-"},"content":" \"version\": \"0.4.1\",","isFullCredit":false},{"lineNumber":8875,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8876,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8877,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8878,"author":{"gitId":"-"},"content":" \"prelude-ls\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":8879,"author":{"gitId":"-"},"content":" \"type-check\": \"~0.4.0\"","isFullCredit":false},{"lineNumber":8880,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8881,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8882,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8.0\"","isFullCredit":false},{"lineNumber":8883,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8884,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8885,"author":{"gitId":"-"},"content":" \"node_modules/lie\": {","isFullCredit":false},{"lineNumber":8886,"author":{"gitId":"-"},"content":" \"version\": \"3.3.0\",","isFullCredit":false},{"lineNumber":8887,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8888,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8889,"author":{"gitId":"-"},"content":" \"immediate\": \"~3.0.5\"","isFullCredit":false},{"lineNumber":8890,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8891,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8892,"author":{"gitId":"-"},"content":" \"node_modules/lilconfig\": {","isFullCredit":false},{"lineNumber":8893,"author":{"gitId":"-"},"content":" \"version\": \"2.0.6\",","isFullCredit":false},{"lineNumber":8894,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8895,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8896,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8897,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":8898,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8899,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8900,"author":{"gitId":"-"},"content":" \"node_modules/lines-and-columns\": {","isFullCredit":false},{"lineNumber":8901,"author":{"gitId":"-"},"content":" \"version\": \"1.2.4\",","isFullCredit":false},{"lineNumber":8902,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8903,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8904,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8905,"author":{"gitId":"-"},"content":" \"node_modules/linkify-it\": {","isFullCredit":false},{"lineNumber":8906,"author":{"gitId":"-"},"content":" \"version\": \"5.0.0\",","isFullCredit":false},{"lineNumber":8907,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8908,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8909,"author":{"gitId":"-"},"content":" \"uc.micro\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":8910,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":8911,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8912,"author":{"gitId":"-"},"content":" \"node_modules/loader-runner\": {","isFullCredit":false},{"lineNumber":8913,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":8914,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8915,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8916,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.11.5\"","isFullCredit":false},{"lineNumber":8917,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8918,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8919,"author":{"gitId":"-"},"content":" \"node_modules/loader-utils\": {","isFullCredit":false},{"lineNumber":8920,"author":{"gitId":"-"},"content":" \"version\": \"1.4.2\",","isFullCredit":false},{"lineNumber":8921,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8922,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8923,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8924,"author":{"gitId":"-"},"content":" \"big.js\": \"^5.2.2\",","isFullCredit":false},{"lineNumber":8925,"author":{"gitId":"-"},"content":" \"emojis-list\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":8926,"author":{"gitId":"-"},"content":" \"json5\": \"^1.0.1\"","isFullCredit":false},{"lineNumber":8927,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8928,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8929,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4.0.0\"","isFullCredit":false},{"lineNumber":8930,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8931,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8932,"author":{"gitId":"-"},"content":" \"node_modules/loader-utils/node_modules/json5\": {","isFullCredit":false},{"lineNumber":8933,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":8934,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8935,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8936,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8937,"author":{"gitId":"-"},"content":" \"minimist\": \"^1.2.0\"","isFullCredit":false},{"lineNumber":8938,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8939,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":8940,"author":{"gitId":"-"},"content":" \"json5\": \"lib/cli.js\"","isFullCredit":false},{"lineNumber":8941,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8942,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8943,"author":{"gitId":"-"},"content":" \"node_modules/locate-path\": {","isFullCredit":false},{"lineNumber":8944,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":8945,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8946,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":8947,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":8948,"author":{"gitId":"-"},"content":" \"p-locate\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":8949,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8950,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":8951,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":8952,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8953,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":8954,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":8955,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":8956,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8957,"author":{"gitId":"-"},"content":" \"node_modules/lodash\": {","isFullCredit":false},{"lineNumber":8958,"author":{"gitId":"-"},"content":" \"version\": \"4.17.21\",","isFullCredit":false},{"lineNumber":8959,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8960,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8961,"author":{"gitId":"-"},"content":" \"node_modules/lodash.debounce\": {","isFullCredit":false},{"lineNumber":8962,"author":{"gitId":"-"},"content":" \"version\": \"4.0.8\",","isFullCredit":false},{"lineNumber":8963,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8964,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8965,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8966,"author":{"gitId":"-"},"content":" \"node_modules/lodash.defaultsdeep\": {","isFullCredit":false},{"lineNumber":8967,"author":{"gitId":"-"},"content":" \"version\": \"4.6.1\",","isFullCredit":false},{"lineNumber":8968,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8969,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8970,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8971,"author":{"gitId":"-"},"content":" \"node_modules/lodash.kebabcase\": {","isFullCredit":false},{"lineNumber":8972,"author":{"gitId":"-"},"content":" \"version\": \"4.1.1\",","isFullCredit":false},{"lineNumber":8973,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8974,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8975,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8976,"author":{"gitId":"-"},"content":" \"node_modules/lodash.mapvalues\": {","isFullCredit":false},{"lineNumber":8977,"author":{"gitId":"-"},"content":" \"version\": \"4.6.0\",","isFullCredit":false},{"lineNumber":8978,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8979,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8980,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8981,"author":{"gitId":"-"},"content":" \"node_modules/lodash.memoize\": {","isFullCredit":false},{"lineNumber":8982,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":8983,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8984,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8985,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8986,"author":{"gitId":"-"},"content":" \"node_modules/lodash.merge\": {","isFullCredit":false},{"lineNumber":8987,"author":{"gitId":"-"},"content":" \"version\": \"4.6.2\",","isFullCredit":false},{"lineNumber":8988,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8989,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8990,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8991,"author":{"gitId":"-"},"content":" \"node_modules/lodash.truncate\": {","isFullCredit":false},{"lineNumber":8992,"author":{"gitId":"-"},"content":" \"version\": \"4.4.2\",","isFullCredit":false},{"lineNumber":8993,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8994,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":8995,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":8996,"author":{"gitId":"-"},"content":" \"node_modules/lodash.uniq\": {","isFullCredit":false},{"lineNumber":8997,"author":{"gitId":"-"},"content":" \"version\": \"4.5.0\",","isFullCredit":false},{"lineNumber":8998,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":8999,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":9000,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9001,"author":{"gitId":"-"},"content":" \"node_modules/log-symbols\": {","isFullCredit":false},{"lineNumber":9002,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":9003,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9004,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9005,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9006,"author":{"gitId":"-"},"content":" \"chalk\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":9007,"author":{"gitId":"-"},"content":" \"is-unicode-supported\": \"^0.1.0\"","isFullCredit":false},{"lineNumber":9008,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9009,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9010,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":9011,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9012,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9013,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":9014,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9015,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9016,"author":{"gitId":"-"},"content":" \"node_modules/log-symbols/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":9017,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":9018,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9019,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9020,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9021,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":9022,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9023,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9024,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":9025,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9026,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9027,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":9028,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9029,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9030,"author":{"gitId":"-"},"content":" \"node_modules/log-symbols/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":9031,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":9032,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9033,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9034,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9035,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":9036,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":9037,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9038,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9039,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":9040,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9041,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9042,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":9043,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9044,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9045,"author":{"gitId":"-"},"content":" \"node_modules/log-symbols/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":9046,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":9047,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9048,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9049,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9050,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":9051,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9052,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9053,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":9054,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9055,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9056,"author":{"gitId":"-"},"content":" \"node_modules/log-symbols/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":9057,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":9058,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9059,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":9060,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9061,"author":{"gitId":"-"},"content":" \"node_modules/log-symbols/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":9062,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":9063,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9064,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9065,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9066,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":9067,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9068,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9069,"author":{"gitId":"-"},"content":" \"node_modules/log-symbols/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":9070,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":9071,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9072,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9073,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9074,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":9075,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9076,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9077,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":9078,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9079,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9080,"author":{"gitId":"-"},"content":" \"node_modules/log-update\": {","isFullCredit":false},{"lineNumber":9081,"author":{"gitId":"-"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":9082,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9083,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9084,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9085,"author":{"gitId":"-"},"content":" \"ansi-escapes\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":9086,"author":{"gitId":"-"},"content":" \"cli-cursor\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":9087,"author":{"gitId":"-"},"content":" \"wrap-ansi\": \"^3.0.1\"","isFullCredit":false},{"lineNumber":9088,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9089,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9090,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":9091,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9092,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9093,"author":{"gitId":"-"},"content":" \"node_modules/log-update/node_modules/ansi-regex\": {","isFullCredit":false},{"lineNumber":9094,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":9095,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9096,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9097,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9098,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":9099,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9100,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9101,"author":{"gitId":"-"},"content":" \"node_modules/log-update/node_modules/cli-cursor\": {","isFullCredit":false},{"lineNumber":9102,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":9103,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9104,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9105,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9106,"author":{"gitId":"-"},"content":" \"restore-cursor\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":9107,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9108,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9109,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":9110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9111,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9112,"author":{"gitId":"-"},"content":" \"node_modules/log-update/node_modules/is-fullwidth-code-point\": {","isFullCredit":false},{"lineNumber":9113,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":9114,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9115,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9116,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9117,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":9118,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9119,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9120,"author":{"gitId":"-"},"content":" \"node_modules/log-update/node_modules/mimic-fn\": {","isFullCredit":false},{"lineNumber":9121,"author":{"gitId":"-"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":9122,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9123,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9124,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9125,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":9126,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9127,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9128,"author":{"gitId":"-"},"content":" \"node_modules/log-update/node_modules/onetime\": {","isFullCredit":false},{"lineNumber":9129,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":9130,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9131,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9132,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9133,"author":{"gitId":"-"},"content":" \"mimic-fn\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":9134,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9135,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9136,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":9137,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9138,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9139,"author":{"gitId":"-"},"content":" \"node_modules/log-update/node_modules/restore-cursor\": {","isFullCredit":false},{"lineNumber":9140,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":9141,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9142,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9143,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9144,"author":{"gitId":"-"},"content":" \"onetime\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":9145,"author":{"gitId":"-"},"content":" \"signal-exit\": \"^3.0.2\"","isFullCredit":false},{"lineNumber":9146,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9147,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9148,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":9149,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9150,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9151,"author":{"gitId":"-"},"content":" \"node_modules/log-update/node_modules/string-width\": {","isFullCredit":false},{"lineNumber":9152,"author":{"gitId":"-"},"content":" \"version\": \"2.1.1\",","isFullCredit":false},{"lineNumber":9153,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9154,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9155,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9156,"author":{"gitId":"-"},"content":" \"is-fullwidth-code-point\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":9157,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":9158,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9159,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9160,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":9161,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9162,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9163,"author":{"gitId":"-"},"content":" \"node_modules/log-update/node_modules/strip-ansi\": {","isFullCredit":false},{"lineNumber":9164,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":9165,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9166,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9167,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9168,"author":{"gitId":"-"},"content":" \"ansi-regex\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":9169,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9170,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9171,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":9172,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9173,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9174,"author":{"gitId":"-"},"content":" \"node_modules/log-update/node_modules/wrap-ansi\": {","isFullCredit":false},{"lineNumber":9175,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":9176,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9177,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9178,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9179,"author":{"gitId":"-"},"content":" \"string-width\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":9180,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":9181,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9182,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9183,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":9184,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9185,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9186,"author":{"gitId":"-"},"content":" \"node_modules/loose-envify\": {","isFullCredit":false},{"lineNumber":9187,"author":{"gitId":"-"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":9188,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9189,"author":{"gitId":"-"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":9190,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9191,"author":{"gitId":"-"},"content":" \"js-tokens\": \"^3.0.0 || ^4.0.0\"","isFullCredit":false},{"lineNumber":9192,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9193,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":9194,"author":{"gitId":"-"},"content":" \"loose-envify\": \"cli.js\"","isFullCredit":false},{"lineNumber":9195,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9196,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9197,"author":{"gitId":"-"},"content":" \"node_modules/lower-case\": {","isFullCredit":false},{"lineNumber":9198,"author":{"gitId":"-"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":9199,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9200,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9201,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9202,"author":{"gitId":"-"},"content":" \"tslib\": \"^2.0.3\"","isFullCredit":false},{"lineNumber":9203,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9204,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9205,"author":{"gitId":"-"},"content":" \"node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":9206,"author":{"gitId":"-"},"content":" \"version\": \"5.1.1\",","isFullCredit":false},{"lineNumber":9207,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9208,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":9209,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9210,"author":{"gitId":"-"},"content":" \"yallist\": \"^3.0.2\"","isFullCredit":false},{"lineNumber":9211,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9212,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9213,"author":{"gitId":"-"},"content":" \"node_modules/magic-string\": {","isFullCredit":false},{"lineNumber":9214,"author":{"gitId":"-"},"content":" \"version\": \"0.30.8\",","isFullCredit":false},{"lineNumber":9215,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9216,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9217,"author":{"gitId":"-"},"content":" \"@jridgewell/sourcemap-codec\": \"^1.4.15\"","isFullCredit":false},{"lineNumber":9218,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9219,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9220,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":9221,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9222,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9223,"author":{"gitId":"-"},"content":" \"node_modules/magic-string/node_modules/@jridgewell/sourcemap-codec\": {","isFullCredit":false},{"lineNumber":9224,"author":{"gitId":"-"},"content":" \"version\": \"1.4.15\",","isFullCredit":false},{"lineNumber":9225,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":9226,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9227,"author":{"gitId":"-"},"content":" \"node_modules/make-dir\": {","isFullCredit":false},{"lineNumber":9228,"author":{"gitId":"-"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":9229,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9230,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9231,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9232,"author":{"gitId":"-"},"content":" \"semver\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":9233,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9234,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9235,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":9236,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9237,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9238,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":9239,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9240,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9241,"author":{"gitId":"-"},"content":" \"node_modules/markdown-it\": {","isFullCredit":false},{"lineNumber":9242,"author":{"gitId":"-"},"content":" \"version\": \"14.1.0\",","isFullCredit":false},{"lineNumber":9243,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9244,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9245,"author":{"gitId":"-"},"content":" \"argparse\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":9246,"author":{"gitId":"-"},"content":" \"entities\": \"^4.4.0\",","isFullCredit":false},{"lineNumber":9247,"author":{"gitId":"-"},"content":" \"linkify-it\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":9248,"author":{"gitId":"-"},"content":" \"mdurl\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":9249,"author":{"gitId":"-"},"content":" \"punycode.js\": \"^2.3.1\",","isFullCredit":false},{"lineNumber":9250,"author":{"gitId":"-"},"content":" \"uc.micro\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":9251,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9252,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":9253,"author":{"gitId":"-"},"content":" \"markdown-it\": \"bin/markdown-it.mjs\"","isFullCredit":false},{"lineNumber":9254,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9255,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9256,"author":{"gitId":"-"},"content":" \"node_modules/mathml-tag-names\": {","isFullCredit":false},{"lineNumber":9257,"author":{"gitId":"-"},"content":" \"version\": \"2.1.3\",","isFullCredit":false},{"lineNumber":9258,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9259,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9260,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9261,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":9262,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/wooorm\"","isFullCredit":false},{"lineNumber":9263,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9264,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9265,"author":{"gitId":"-"},"content":" \"node_modules/mdn-data\": {","isFullCredit":false},{"lineNumber":9266,"author":{"gitId":"-"},"content":" \"version\": \"2.0.14\",","isFullCredit":false},{"lineNumber":9267,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9268,"author":{"gitId":"-"},"content":" \"license\": \"CC0-1.0\"","isFullCredit":false},{"lineNumber":9269,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9270,"author":{"gitId":"-"},"content":" \"node_modules/mdurl\": {","isFullCredit":false},{"lineNumber":9271,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":9272,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":9273,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9274,"author":{"gitId":"-"},"content":" \"node_modules/media-typer\": {","isFullCredit":false},{"lineNumber":9275,"author":{"gitId":"-"},"content":" \"version\": \"0.3.0\",","isFullCredit":false},{"lineNumber":9276,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9277,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9278,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9279,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":9280,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9281,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9282,"author":{"gitId":"-"},"content":" \"node_modules/memfs\": {","isFullCredit":false},{"lineNumber":9283,"author":{"gitId":"-"},"content":" \"version\": \"3.4.13\",","isFullCredit":false},{"lineNumber":9284,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9285,"author":{"gitId":"-"},"content":" \"license\": \"Unlicense\",","isFullCredit":false},{"lineNumber":9286,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9287,"author":{"gitId":"-"},"content":" \"fs-monkey\": \"^1.0.3\"","isFullCredit":false},{"lineNumber":9288,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9289,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9290,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 4.0.0\"","isFullCredit":false},{"lineNumber":9291,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9292,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9293,"author":{"gitId":"-"},"content":" \"node_modules/meow\": {","isFullCredit":false},{"lineNumber":9294,"author":{"gitId":"-"},"content":" \"version\": \"13.2.0\",","isFullCredit":false},{"lineNumber":9295,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/meow/-/meow-13.2.0.tgz\",","isFullCredit":false},{"lineNumber":9296,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA\u003d\u003d\",","isFullCredit":false},{"lineNumber":9297,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9298,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9299,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d18\"","isFullCredit":false},{"lineNumber":9300,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9301,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9302,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":9303,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9304,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9305,"author":{"gitId":"-"},"content":" \"node_modules/merge-descriptors\": {","isFullCredit":false},{"lineNumber":9306,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":9307,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9308,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":9309,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9310,"author":{"gitId":"-"},"content":" \"node_modules/merge-source-map\": {","isFullCredit":false},{"lineNumber":9311,"author":{"gitId":"-"},"content":" \"version\": \"1.1.0\",","isFullCredit":false},{"lineNumber":9312,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9313,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9314,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9315,"author":{"gitId":"-"},"content":" \"source-map\": \"^0.6.1\"","isFullCredit":false},{"lineNumber":9316,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9317,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9318,"author":{"gitId":"-"},"content":" \"node_modules/merge-stream\": {","isFullCredit":false},{"lineNumber":9319,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":9320,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":9321,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9322,"author":{"gitId":"-"},"content":" \"node_modules/merge2\": {","isFullCredit":false},{"lineNumber":9323,"author":{"gitId":"-"},"content":" \"version\": \"1.4.1\",","isFullCredit":false},{"lineNumber":9324,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9325,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9326,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9327,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":9328,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9329,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9330,"author":{"gitId":"-"},"content":" \"node_modules/methods\": {","isFullCredit":false},{"lineNumber":9331,"author":{"gitId":"-"},"content":" \"version\": \"1.1.2\",","isFullCredit":false},{"lineNumber":9332,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9333,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9334,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9335,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":9336,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9337,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9338,"author":{"gitId":"-"},"content":" \"node_modules/micromatch\": {","isFullCredit":false},{"lineNumber":9339,"author":{"gitId":"-"},"content":" \"version\": \"4.0.5\",","isFullCredit":false},{"lineNumber":9340,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9341,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9342,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9343,"author":{"gitId":"-"},"content":" \"braces\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":9344,"author":{"gitId":"-"},"content":" \"picomatch\": \"^2.3.1\"","isFullCredit":false},{"lineNumber":9345,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9346,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9347,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8.6\"","isFullCredit":false},{"lineNumber":9348,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9349,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9350,"author":{"gitId":"-"},"content":" \"node_modules/mime\": {","isFullCredit":false},{"lineNumber":9351,"author":{"gitId":"-"},"content":" \"version\": \"1.6.0\",","isFullCredit":false},{"lineNumber":9352,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9353,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9354,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":9355,"author":{"gitId":"-"},"content":" \"mime\": \"cli.js\"","isFullCredit":false},{"lineNumber":9356,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9357,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9358,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":9359,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9360,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9361,"author":{"gitId":"-"},"content":" \"node_modules/mime-db\": {","isFullCredit":false},{"lineNumber":9362,"author":{"gitId":"-"},"content":" \"version\": \"1.52.0\",","isFullCredit":false},{"lineNumber":9363,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9364,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9365,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":9366,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9367,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9368,"author":{"gitId":"-"},"content":" \"node_modules/mime-types\": {","isFullCredit":false},{"lineNumber":9369,"author":{"gitId":"-"},"content":" \"version\": \"2.1.35\",","isFullCredit":false},{"lineNumber":9370,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9371,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9372,"author":{"gitId":"-"},"content":" \"mime-db\": \"1.52.0\"","isFullCredit":false},{"lineNumber":9373,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9374,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9375,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":9376,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9377,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9378,"author":{"gitId":"-"},"content":" \"node_modules/mimic-fn\": {","isFullCredit":false},{"lineNumber":9379,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":9380,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9381,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9382,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9383,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":9384,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9385,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9386,"author":{"gitId":"-"},"content":" \"node_modules/mini-css-extract-plugin\": {","isFullCredit":false},{"lineNumber":9387,"author":{"gitId":"-"},"content":" \"version\": \"2.7.2\",","isFullCredit":false},{"lineNumber":9388,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9389,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9390,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9391,"author":{"gitId":"-"},"content":" \"schema-utils\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":9392,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9393,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9394,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 12.13.0\"","isFullCredit":false},{"lineNumber":9395,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9396,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9397,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":9398,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":9399,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9400,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":9401,"author":{"gitId":"-"},"content":" \"webpack\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":9402,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9403,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9404,"author":{"gitId":"-"},"content":" \"node_modules/mini-css-extract-plugin/node_modules/ajv\": {","isFullCredit":false},{"lineNumber":9405,"author":{"gitId":"-"},"content":" \"version\": \"8.12.0\",","isFullCredit":false},{"lineNumber":9406,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9407,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9408,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9409,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":9410,"author":{"gitId":"-"},"content":" \"json-schema-traverse\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":9411,"author":{"gitId":"-"},"content":" \"require-from-string\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":9412,"author":{"gitId":"-"},"content":" \"uri-js\": \"^4.2.2\"","isFullCredit":false},{"lineNumber":9413,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9414,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9415,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":9416,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/epoberezkin\"","isFullCredit":false},{"lineNumber":9417,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9418,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9419,"author":{"gitId":"-"},"content":" \"node_modules/mini-css-extract-plugin/node_modules/ajv-keywords\": {","isFullCredit":false},{"lineNumber":9420,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":9421,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9422,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9423,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9424,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.3\"","isFullCredit":false},{"lineNumber":9425,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9426,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":9427,"author":{"gitId":"-"},"content":" \"ajv\": \"^8.8.2\"","isFullCredit":false},{"lineNumber":9428,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9429,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9430,"author":{"gitId":"-"},"content":" \"node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse\": {","isFullCredit":false},{"lineNumber":9431,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":9432,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9433,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":9434,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9435,"author":{"gitId":"-"},"content":" \"node_modules/mini-css-extract-plugin/node_modules/schema-utils\": {","isFullCredit":false},{"lineNumber":9436,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":9437,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9438,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9439,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9440,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.9\",","isFullCredit":false},{"lineNumber":9441,"author":{"gitId":"-"},"content":" \"ajv\": \"^8.8.0\",","isFullCredit":false},{"lineNumber":9442,"author":{"gitId":"-"},"content":" \"ajv-formats\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":9443,"author":{"gitId":"-"},"content":" \"ajv-keywords\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":9444,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9445,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9446,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 12.13.0\"","isFullCredit":false},{"lineNumber":9447,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9448,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9449,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":9450,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":9451,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9452,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9453,"author":{"gitId":"-"},"content":" \"node_modules/minimalistic-assert\": {","isFullCredit":false},{"lineNumber":9454,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":9455,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9456,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":9457,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9458,"author":{"gitId":"-"},"content":" \"node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":9459,"author":{"gitId":"-"},"content":" \"version\": \"9.0.4\",","isFullCredit":false},{"lineNumber":9460,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz\",","isFullCredit":false},{"lineNumber":9461,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw\u003d\u003d\",","isFullCredit":false},{"lineNumber":9462,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9463,"author":{"gitId":"-"},"content":" \"brace-expansion\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":9464,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9465,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9466,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d16 || 14 \u003e\u003d14.17\"","isFullCredit":false},{"lineNumber":9467,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9468,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9469,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/isaacs\"","isFullCredit":false},{"lineNumber":9470,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9471,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9472,"author":{"gitId":"-"},"content":" \"node_modules/minimist\": {","isFullCredit":false},{"lineNumber":9473,"author":{"gitId":"-"},"content":" \"version\": \"1.2.7\",","isFullCredit":false},{"lineNumber":9474,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9475,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9476,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9477,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":9478,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9479,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9480,"author":{"gitId":"-"},"content":" \"node_modules/minipass\": {","isFullCredit":false},{"lineNumber":9481,"author":{"gitId":"-"},"content":" \"version\": \"3.3.6\",","isFullCredit":false},{"lineNumber":9482,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9483,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":9484,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9485,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":9486,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9487,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9488,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":9489,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9490,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9491,"author":{"gitId":"-"},"content":" \"node_modules/minipass/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":9492,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":9493,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9494,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":9495,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9496,"author":{"gitId":"-"},"content":" \"node_modules/module-alias\": {","isFullCredit":false},{"lineNumber":9497,"author":{"gitId":"-"},"content":" \"version\": \"2.2.2\",","isFullCredit":false},{"lineNumber":9498,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9499,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":9500,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9501,"author":{"gitId":"-"},"content":" \"node_modules/mrmime\": {","isFullCredit":false},{"lineNumber":9502,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":9503,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9504,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9505,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9506,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":9507,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9508,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9509,"author":{"gitId":"-"},"content":" \"node_modules/ms\": {","isFullCredit":false},{"lineNumber":9510,"author":{"gitId":"-"},"content":" \"version\": \"2.1.2\",","isFullCredit":false},{"lineNumber":9511,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9512,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":9513,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9514,"author":{"gitId":"-"},"content":" \"node_modules/muicss\": {","isFullCredit":false},{"lineNumber":9515,"author":{"gitId":"-"},"content":" \"version\": \"0.10.3\",","isFullCredit":false},{"lineNumber":9516,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9517,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9518,"author":{"gitId":"-"},"content":" \"react-addons-shallow-compare\": \"^15.6.2\"","isFullCredit":false},{"lineNumber":9519,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9520,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":9521,"author":{"gitId":"-"},"content":" \"react\": \"^0.14.0 || ^15.0.0 || ^16.0.0\"","isFullCredit":false},{"lineNumber":9522,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9523,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9524,"author":{"gitId":"-"},"content":" \"node_modules/multicast-dns\": {","isFullCredit":false},{"lineNumber":9525,"author":{"gitId":"-"},"content":" \"version\": \"7.2.5\",","isFullCredit":false},{"lineNumber":9526,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9527,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9528,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9529,"author":{"gitId":"-"},"content":" \"dns-packet\": \"^5.2.2\",","isFullCredit":false},{"lineNumber":9530,"author":{"gitId":"-"},"content":" \"thunky\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":9531,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9532,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":9533,"author":{"gitId":"-"},"content":" \"multicast-dns\": \"cli.js\"","isFullCredit":false},{"lineNumber":9534,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9535,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9536,"author":{"gitId":"-"},"content":" \"node_modules/mz\": {","isFullCredit":false},{"lineNumber":9537,"author":{"gitId":"-"},"content":" \"version\": \"2.7.0\",","isFullCredit":false},{"lineNumber":9538,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9539,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9540,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9541,"author":{"gitId":"-"},"content":" \"any-promise\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":9542,"author":{"gitId":"-"},"content":" \"object-assign\": \"^4.0.1\",","isFullCredit":false},{"lineNumber":9543,"author":{"gitId":"-"},"content":" \"thenify-all\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":9544,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9545,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9546,"author":{"gitId":"-"},"content":" \"node_modules/nanoid\": {","isFullCredit":false},{"lineNumber":9547,"author":{"gitId":"-"},"content":" \"version\": \"3.3.7\",","isFullCredit":false},{"lineNumber":9548,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":9549,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":9550,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":9551,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ai\"","isFullCredit":false},{"lineNumber":9552,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9553,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":9554,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9555,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":9556,"author":{"gitId":"-"},"content":" \"nanoid\": \"bin/nanoid.cjs\"","isFullCredit":false},{"lineNumber":9557,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9558,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9559,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || ^13.7 || ^14 || \u003e\u003d15.0.1\"","isFullCredit":false},{"lineNumber":9560,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9561,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9562,"author":{"gitId":"-"},"content":" \"node_modules/natural-compare\": {","isFullCredit":false},{"lineNumber":9563,"author":{"gitId":"-"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":9564,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9565,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":9566,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9567,"author":{"gitId":"-"},"content":" \"node_modules/negotiator\": {","isFullCredit":false},{"lineNumber":9568,"author":{"gitId":"-"},"content":" \"version\": \"0.6.3\",","isFullCredit":false},{"lineNumber":9569,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9570,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9571,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9572,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":9573,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9574,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9575,"author":{"gitId":"-"},"content":" \"node_modules/neo-async\": {","isFullCredit":false},{"lineNumber":9576,"author":{"gitId":"-"},"content":" \"version\": \"2.6.2\",","isFullCredit":false},{"lineNumber":9577,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":9578,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9579,"author":{"gitId":"-"},"content":" \"node_modules/nice-try\": {","isFullCredit":false},{"lineNumber":9580,"author":{"gitId":"-"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":9581,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9582,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":9583,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9584,"author":{"gitId":"-"},"content":" \"node_modules/no-case\": {","isFullCredit":false},{"lineNumber":9585,"author":{"gitId":"-"},"content":" \"version\": \"3.0.4\",","isFullCredit":false},{"lineNumber":9586,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9587,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9588,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9589,"author":{"gitId":"-"},"content":" \"lower-case\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":9590,"author":{"gitId":"-"},"content":" \"tslib\": \"^2.0.3\"","isFullCredit":false},{"lineNumber":9591,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9592,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9593,"author":{"gitId":"-"},"content":" \"node_modules/node-fetch\": {","isFullCredit":false},{"lineNumber":9594,"author":{"gitId":"-"},"content":" \"version\": \"2.6.8\",","isFullCredit":false},{"lineNumber":9595,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9596,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9597,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9598,"author":{"gitId":"-"},"content":" \"whatwg-url\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":9599,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9600,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9601,"author":{"gitId":"-"},"content":" \"node\": \"4.x || \u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":9602,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9603,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":9604,"author":{"gitId":"-"},"content":" \"encoding\": \"^0.1.0\"","isFullCredit":false},{"lineNumber":9605,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9606,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":9607,"author":{"gitId":"-"},"content":" \"encoding\": {","isFullCredit":false},{"lineNumber":9608,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":9609,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9610,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9611,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9612,"author":{"gitId":"-"},"content":" \"node_modules/node-forge\": {","isFullCredit":false},{"lineNumber":9613,"author":{"gitId":"-"},"content":" \"version\": \"1.3.1\",","isFullCredit":false},{"lineNumber":9614,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9615,"author":{"gitId":"-"},"content":" \"license\": \"(BSD-3-Clause OR GPL-2.0)\",","isFullCredit":false},{"lineNumber":9616,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9617,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 6.13.0\"","isFullCredit":false},{"lineNumber":9618,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9619,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9620,"author":{"gitId":"-"},"content":" \"node_modules/node-releases\": {","isFullCredit":false},{"lineNumber":9621,"author":{"gitId":"-"},"content":" \"version\": \"2.0.8\",","isFullCredit":false},{"lineNumber":9622,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":9623,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":9624,"author":{"gitId":"-"},"content":" \"node_modules/normalize-path\": {","isFullCredit":false},{"lineNumber":9625,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":9626,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9627,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9628,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9629,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":9630,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9631,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9632,"author":{"gitId":"-"},"content":" \"node_modules/normalize-range\": {","isFullCredit":false},{"lineNumber":9633,"author":{"gitId":"-"},"content":" \"version\": \"0.1.2\",","isFullCredit":false},{"lineNumber":9634,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9635,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9636,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9637,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":9638,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9639,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9640,"author":{"gitId":"-"},"content":" \"node_modules/normalize-url\": {","isFullCredit":false},{"lineNumber":9641,"author":{"gitId":"-"},"content":" \"version\": \"6.1.0\",","isFullCredit":false},{"lineNumber":9642,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9643,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9644,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9645,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":9646,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":9647,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9648,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":9649,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9650,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9651,"author":{"gitId":"-"},"content":" \"node_modules/normalize.css\": {","isFullCredit":false},{"lineNumber":9652,"author":{"gitId":"-"},"content":" \"version\": \"8.0.1\",","isFullCredit":false},{"lineNumber":9653,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":9654,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9655,"author":{"gitId":"-"},"content":" \"node_modules/npm-run-path\": {","isFullCredit":false},{"lineNumber":9656,"author":{"gitId":"-"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":9657,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9658,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9659,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9660,"author":{"gitId":"-"},"content":" \"path-key\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":9661,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9662,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9663,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":9664,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9665,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9666,"author":{"gitId":"-"},"content":" \"node_modules/npm-run-path/node_modules/path-key\": {","isFullCredit":false},{"lineNumber":9667,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":9668,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9669,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9670,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9671,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":9672,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9673,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9674,"author":{"gitId":"-"},"content":" \"node_modules/nth-check\": {","isFullCredit":false},{"lineNumber":9675,"author":{"gitId":"-"},"content":" \"version\": \"2.1.1\",","isFullCredit":false},{"lineNumber":9676,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":9677,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9678,"author":{"gitId":"-"},"content":" \"boolbase\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":9679,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9680,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9681,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/fb55/nth-check?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":9682,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":9683,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":9684,"author":{"gitId":"-"},"content":" \"node_modules/object-assign\": {","isFullCredit":false},{"lineNumber":9685,"author":{"gitId":"-"},"content":" \"version\": \"4.1.1\",","isFullCredit":false},{"lineNumber":9686,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9687,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9688,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":9689,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9690,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9691,"author":{"gitId":"-"},"content":" \"node_modules/object-inspect\": {","isFullCredit":false},{"lineNumber":9692,"author":{"gitId":"-"},"content":" \"version\": \"1.13.1\",","isFullCredit":false},{"lineNumber":9693,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9694,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9695,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9696,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":9697,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9698,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9699,"author":{"gitId":"-"},"content":" \"node_modules/object-keys\": {","isFullCredit":false},{"lineNumber":9700,"author":{"gitId":"-"},"content":" \"version\": \"1.1.1\",","isFullCredit":false},{"lineNumber":9701,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9702,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9703,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9704,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":9705,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9706,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9707,"author":{"gitId":"-"},"content":" \"node_modules/object.assign\": {","isFullCredit":false},{"lineNumber":9708,"author":{"gitId":"-"},"content":" \"version\": \"4.1.5\",","isFullCredit":false},{"lineNumber":9709,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9710,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9711,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9712,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":9713,"author":{"gitId":"-"},"content":" \"define-properties\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":9714,"author":{"gitId":"-"},"content":" \"has-symbols\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":9715,"author":{"gitId":"-"},"content":" \"object-keys\": \"^1.1.1\"","isFullCredit":false},{"lineNumber":9716,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9717,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9718,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":9719,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9720,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9721,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":9722,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9723,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9724,"author":{"gitId":"-"},"content":" \"node_modules/object.entries\": {","isFullCredit":false},{"lineNumber":9725,"author":{"gitId":"-"},"content":" \"version\": \"1.1.6\",","isFullCredit":false},{"lineNumber":9726,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9727,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9728,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9729,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":9730,"author":{"gitId":"-"},"content":" \"define-properties\": \"^1.1.4\",","isFullCredit":false},{"lineNumber":9731,"author":{"gitId":"-"},"content":" \"es-abstract\": \"^1.20.4\"","isFullCredit":false},{"lineNumber":9732,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9733,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9734,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":9735,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9736,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9737,"author":{"gitId":"-"},"content":" \"node_modules/object.fromentries\": {","isFullCredit":false},{"lineNumber":9738,"author":{"gitId":"-"},"content":" \"version\": \"2.0.7\",","isFullCredit":false},{"lineNumber":9739,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9740,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9741,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9742,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":9743,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":9744,"author":{"gitId":"-"},"content":" \"es-abstract\": \"^1.22.1\"","isFullCredit":false},{"lineNumber":9745,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9746,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9747,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":9748,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9749,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9750,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":9751,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9752,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9753,"author":{"gitId":"-"},"content":" \"node_modules/object.groupby\": {","isFullCredit":false},{"lineNumber":9754,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":9755,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9756,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9757,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9758,"author":{"gitId":"-"},"content":" \"array.prototype.filter\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":9759,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":9760,"author":{"gitId":"-"},"content":" \"define-properties\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":9761,"author":{"gitId":"-"},"content":" \"es-abstract\": \"^1.22.3\",","isFullCredit":false},{"lineNumber":9762,"author":{"gitId":"-"},"content":" \"es-errors\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":9763,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":9764,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":9765,"author":{"gitId":"-"},"content":" \"node_modules/object.values\": {","isFullCredit":false},{"lineNumber":9766,"author":{"gitId":"-"},"content":" \"version\": \"1.1.7\",","isFullCredit":false},{"lineNumber":9767,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9768,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9769,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9770,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":9771,"author":{"gitId":"-"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":9772,"author":{"gitId":"-"},"content":" \"es-abstract\": \"^1.22.1\"","isFullCredit":false},{"lineNumber":9773,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9774,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9775,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":9776,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9777,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9778,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":9779,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9780,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9781,"author":{"gitId":"-"},"content":" \"node_modules/obuf\": {","isFullCredit":false},{"lineNumber":9782,"author":{"gitId":"-"},"content":" \"version\": \"1.1.2\",","isFullCredit":false},{"lineNumber":9783,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9784,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":9785,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9786,"author":{"gitId":"-"},"content":" \"node_modules/on-finished\": {","isFullCredit":false},{"lineNumber":9787,"author":{"gitId":"-"},"content":" \"version\": \"2.4.1\",","isFullCredit":false},{"lineNumber":9788,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9789,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9790,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9791,"author":{"gitId":"-"},"content":" \"ee-first\": \"1.1.1\"","isFullCredit":false},{"lineNumber":9792,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9793,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9794,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":9795,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9796,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9797,"author":{"gitId":"-"},"content":" \"node_modules/on-headers\": {","isFullCredit":false},{"lineNumber":9798,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":9799,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9800,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9801,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9802,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":9803,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9804,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9805,"author":{"gitId":"-"},"content":" \"node_modules/once\": {","isFullCredit":false},{"lineNumber":9806,"author":{"gitId":"-"},"content":" \"version\": \"1.4.0\",","isFullCredit":false},{"lineNumber":9807,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":9808,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9809,"author":{"gitId":"-"},"content":" \"wrappy\": \"1\"","isFullCredit":false},{"lineNumber":9810,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9811,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9812,"author":{"gitId":"-"},"content":" \"node_modules/onetime\": {","isFullCredit":false},{"lineNumber":9813,"author":{"gitId":"-"},"content":" \"version\": \"5.1.2\",","isFullCredit":false},{"lineNumber":9814,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9815,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9816,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9817,"author":{"gitId":"-"},"content":" \"mimic-fn\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":9818,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9819,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9820,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":9821,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9822,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9823,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":9824,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9825,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9826,"author":{"gitId":"-"},"content":" \"node_modules/open\": {","isFullCredit":false},{"lineNumber":9827,"author":{"gitId":"-"},"content":" \"version\": \"8.4.0\",","isFullCredit":false},{"lineNumber":9828,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9829,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9830,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9831,"author":{"gitId":"-"},"content":" \"define-lazy-prop\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":9832,"author":{"gitId":"-"},"content":" \"is-docker\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":9833,"author":{"gitId":"-"},"content":" \"is-wsl\": \"^2.2.0\"","isFullCredit":false},{"lineNumber":9834,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9835,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9836,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":9837,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9838,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9839,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":9840,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9841,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9842,"author":{"gitId":"-"},"content":" \"node_modules/opener\": {","isFullCredit":false},{"lineNumber":9843,"author":{"gitId":"-"},"content":" \"version\": \"1.5.2\",","isFullCredit":false},{"lineNumber":9844,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9845,"author":{"gitId":"-"},"content":" \"license\": \"(WTFPL OR MIT)\",","isFullCredit":false},{"lineNumber":9846,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":9847,"author":{"gitId":"-"},"content":" \"opener\": \"bin/opener-bin.js\"","isFullCredit":false},{"lineNumber":9848,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9849,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9850,"author":{"gitId":"-"},"content":" \"node_modules/optionator\": {","isFullCredit":false},{"lineNumber":9851,"author":{"gitId":"-"},"content":" \"version\": \"0.9.3\",","isFullCredit":false},{"lineNumber":9852,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9853,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9854,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9855,"author":{"gitId":"-"},"content":" \"@aashutoshrathi/word-wrap\": \"^1.2.3\",","isFullCredit":false},{"lineNumber":9856,"author":{"gitId":"-"},"content":" \"deep-is\": \"^0.1.3\",","isFullCredit":false},{"lineNumber":9857,"author":{"gitId":"-"},"content":" \"fast-levenshtein\": \"^2.0.6\",","isFullCredit":false},{"lineNumber":9858,"author":{"gitId":"-"},"content":" \"levn\": \"^0.4.1\",","isFullCredit":false},{"lineNumber":9859,"author":{"gitId":"-"},"content":" \"prelude-ls\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":9860,"author":{"gitId":"-"},"content":" \"type-check\": \"^0.4.0\"","isFullCredit":false},{"lineNumber":9861,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9862,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9863,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8.0\"","isFullCredit":false},{"lineNumber":9864,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9865,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9866,"author":{"gitId":"-"},"content":" \"node_modules/ora\": {","isFullCredit":false},{"lineNumber":9867,"author":{"gitId":"-"},"content":" \"version\": \"5.4.1\",","isFullCredit":false},{"lineNumber":9868,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9869,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9870,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9871,"author":{"gitId":"-"},"content":" \"bl\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":9872,"author":{"gitId":"-"},"content":" \"chalk\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":9873,"author":{"gitId":"-"},"content":" \"cli-cursor\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":9874,"author":{"gitId":"-"},"content":" \"cli-spinners\": \"^2.5.0\",","isFullCredit":false},{"lineNumber":9875,"author":{"gitId":"-"},"content":" \"is-interactive\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":9876,"author":{"gitId":"-"},"content":" \"is-unicode-supported\": \"^0.1.0\",","isFullCredit":false},{"lineNumber":9877,"author":{"gitId":"-"},"content":" \"log-symbols\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":9878,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":9879,"author":{"gitId":"-"},"content":" \"wcwidth\": \"^1.0.1\"","isFullCredit":false},{"lineNumber":9880,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9881,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9882,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":9883,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9884,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9885,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":9886,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9887,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9888,"author":{"gitId":"-"},"content":" \"node_modules/ora/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":9889,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":9890,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9891,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9892,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9893,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":9894,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9895,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9896,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":9897,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9898,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9899,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":9900,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9901,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9902,"author":{"gitId":"-"},"content":" \"node_modules/ora/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":9903,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":9904,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9905,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9906,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9907,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":9908,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":9909,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9910,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9911,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":9912,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9913,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9914,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":9915,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9916,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9917,"author":{"gitId":"-"},"content":" \"node_modules/ora/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":9918,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":9919,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9920,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9921,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9922,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":9923,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9924,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9925,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":9926,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9927,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9928,"author":{"gitId":"-"},"content":" \"node_modules/ora/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":9929,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":9930,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9931,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":9932,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9933,"author":{"gitId":"-"},"content":" \"node_modules/ora/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":9934,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":9935,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9936,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9937,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9938,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":9939,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9940,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9941,"author":{"gitId":"-"},"content":" \"node_modules/ora/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":9942,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":9943,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9944,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9945,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9946,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":9947,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9948,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9949,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":9950,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9951,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9952,"author":{"gitId":"-"},"content":" \"node_modules/p-finally\": {","isFullCredit":false},{"lineNumber":9953,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":9954,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9955,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9956,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9957,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":9958,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9959,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9960,"author":{"gitId":"-"},"content":" \"node_modules/p-limit\": {","isFullCredit":false},{"lineNumber":9961,"author":{"gitId":"-"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":9962,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9963,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9964,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9965,"author":{"gitId":"-"},"content":" \"yocto-queue\": \"^0.1.0\"","isFullCredit":false},{"lineNumber":9966,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9967,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9968,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":9969,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9970,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9971,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":9972,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9973,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9974,"author":{"gitId":"-"},"content":" \"node_modules/p-locate\": {","isFullCredit":false},{"lineNumber":9975,"author":{"gitId":"-"},"content":" \"version\": \"5.0.0\",","isFullCredit":false},{"lineNumber":9976,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9977,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9978,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9979,"author":{"gitId":"-"},"content":" \"p-limit\": \"^3.0.2\"","isFullCredit":false},{"lineNumber":9980,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9981,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9982,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":9983,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9984,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":9985,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":9986,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9987,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9988,"author":{"gitId":"-"},"content":" \"node_modules/p-retry\": {","isFullCredit":false},{"lineNumber":9989,"author":{"gitId":"-"},"content":" \"version\": \"4.6.2\",","isFullCredit":false},{"lineNumber":9990,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":9991,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":9992,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":9993,"author":{"gitId":"-"},"content":" \"@types/retry\": \"0.12.0\",","isFullCredit":false},{"lineNumber":9994,"author":{"gitId":"-"},"content":" \"retry\": \"^0.13.1\"","isFullCredit":false},{"lineNumber":9995,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":9996,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":9997,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":9998,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9999,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10000,"author":{"gitId":"-"},"content":" \"node_modules/p-retry/node_modules/retry\": {","isFullCredit":false},{"lineNumber":10001,"author":{"gitId":"-"},"content":" \"version\": \"0.13.1\",","isFullCredit":false},{"lineNumber":10002,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10003,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10004,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10005,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 4\"","isFullCredit":false},{"lineNumber":10006,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10007,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10008,"author":{"gitId":"-"},"content":" \"node_modules/p-try\": {","isFullCredit":false},{"lineNumber":10009,"author":{"gitId":"-"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":10010,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10011,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10012,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10013,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":10014,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10015,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10016,"author":{"gitId":"-"},"content":" \"node_modules/pako\": {","isFullCredit":false},{"lineNumber":10017,"author":{"gitId":"-"},"content":" \"version\": \"1.0.11\",","isFullCredit":false},{"lineNumber":10018,"author":{"gitId":"-"},"content":" \"license\": \"(MIT AND Zlib)\"","isFullCredit":false},{"lineNumber":10019,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10020,"author":{"gitId":"-"},"content":" \"node_modules/param-case\": {","isFullCredit":false},{"lineNumber":10021,"author":{"gitId":"-"},"content":" \"version\": \"3.0.4\",","isFullCredit":false},{"lineNumber":10022,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10023,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10024,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10025,"author":{"gitId":"-"},"content":" \"dot-case\": \"^3.0.4\",","isFullCredit":false},{"lineNumber":10026,"author":{"gitId":"-"},"content":" \"tslib\": \"^2.0.3\"","isFullCredit":false},{"lineNumber":10027,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10028,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10029,"author":{"gitId":"-"},"content":" \"node_modules/parent-module\": {","isFullCredit":false},{"lineNumber":10030,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":10031,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10032,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10033,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10034,"author":{"gitId":"-"},"content":" \"callsites\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":10035,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10036,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10037,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":10038,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10039,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10040,"author":{"gitId":"-"},"content":" \"node_modules/parse-json\": {","isFullCredit":false},{"lineNumber":10041,"author":{"gitId":"-"},"content":" \"version\": \"5.2.0\",","isFullCredit":false},{"lineNumber":10042,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10043,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10044,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10045,"author":{"gitId":"-"},"content":" \"@babel/code-frame\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":10046,"author":{"gitId":"-"},"content":" \"error-ex\": \"^1.3.1\",","isFullCredit":false},{"lineNumber":10047,"author":{"gitId":"-"},"content":" \"json-parse-even-better-errors\": \"^2.3.0\",","isFullCredit":false},{"lineNumber":10048,"author":{"gitId":"-"},"content":" \"lines-and-columns\": \"^1.1.6\"","isFullCredit":false},{"lineNumber":10049,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10050,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10051,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":10052,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10053,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":10054,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":10055,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10056,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10057,"author":{"gitId":"-"},"content":" \"node_modules/parse5\": {","isFullCredit":false},{"lineNumber":10058,"author":{"gitId":"-"},"content":" \"version\": \"5.1.1\",","isFullCredit":false},{"lineNumber":10059,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10060,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":10061,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10062,"author":{"gitId":"-"},"content":" \"node_modules/parse5-htmlparser2-tree-adapter\": {","isFullCredit":false},{"lineNumber":10063,"author":{"gitId":"-"},"content":" \"version\": \"6.0.1\",","isFullCredit":false},{"lineNumber":10064,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10065,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10066,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10067,"author":{"gitId":"-"},"content":" \"parse5\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":10068,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10069,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10070,"author":{"gitId":"-"},"content":" \"node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5\": {","isFullCredit":false},{"lineNumber":10071,"author":{"gitId":"-"},"content":" \"version\": \"6.0.1\",","isFullCredit":false},{"lineNumber":10072,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10073,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":10074,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10075,"author":{"gitId":"-"},"content":" \"node_modules/parseurl\": {","isFullCredit":false},{"lineNumber":10076,"author":{"gitId":"-"},"content":" \"version\": \"1.3.3\",","isFullCredit":false},{"lineNumber":10077,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10078,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10079,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10080,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":10081,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10082,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10083,"author":{"gitId":"-"},"content":" \"node_modules/pascal-case\": {","isFullCredit":false},{"lineNumber":10084,"author":{"gitId":"-"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":10085,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10086,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10087,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10088,"author":{"gitId":"-"},"content":" \"no-case\": \"^3.0.4\",","isFullCredit":false},{"lineNumber":10089,"author":{"gitId":"-"},"content":" \"tslib\": \"^2.0.3\"","isFullCredit":false},{"lineNumber":10090,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10091,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10092,"author":{"gitId":"-"},"content":" \"node_modules/path-exists\": {","isFullCredit":false},{"lineNumber":10093,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":10094,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10095,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10096,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10097,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":10098,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10099,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10100,"author":{"gitId":"-"},"content":" \"node_modules/path-is-absolute\": {","isFullCredit":false},{"lineNumber":10101,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":10102,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10103,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10104,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":10105,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10106,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10107,"author":{"gitId":"-"},"content":" \"node_modules/path-key\": {","isFullCredit":false},{"lineNumber":10108,"author":{"gitId":"-"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":10109,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10110,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10111,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10112,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":10113,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10114,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10115,"author":{"gitId":"-"},"content":" \"node_modules/path-parse\": {","isFullCredit":false},{"lineNumber":10116,"author":{"gitId":"-"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":10117,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":10118,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10119,"author":{"gitId":"-"},"content":" \"node_modules/path-to-regexp\": {","isFullCredit":false},{"lineNumber":10120,"author":{"gitId":"-"},"content":" \"version\": \"0.1.7\",","isFullCredit":false},{"lineNumber":10121,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10122,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":10123,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10124,"author":{"gitId":"-"},"content":" \"node_modules/path-type\": {","isFullCredit":false},{"lineNumber":10125,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":10126,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10127,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10128,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10129,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":10130,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10131,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10132,"author":{"gitId":"-"},"content":" \"node_modules/picocolors\": {","isFullCredit":false},{"lineNumber":10133,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":10134,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":10135,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10136,"author":{"gitId":"-"},"content":" \"node_modules/picomatch\": {","isFullCredit":false},{"lineNumber":10137,"author":{"gitId":"-"},"content":" \"version\": \"2.3.1\",","isFullCredit":false},{"lineNumber":10138,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10139,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10140,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10141,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8.6\"","isFullCredit":false},{"lineNumber":10142,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10143,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":10144,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/jonschlinkert\"","isFullCredit":false},{"lineNumber":10145,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10146,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10147,"author":{"gitId":"-"},"content":" \"node_modules/pkg-dir\": {","isFullCredit":false},{"lineNumber":10148,"author":{"gitId":"-"},"content":" \"version\": \"4.2.0\",","isFullCredit":false},{"lineNumber":10149,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10150,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10151,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10152,"author":{"gitId":"-"},"content":" \"find-up\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":10153,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10154,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10155,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":10156,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10157,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10158,"author":{"gitId":"-"},"content":" \"node_modules/pkg-dir/node_modules/find-up\": {","isFullCredit":false},{"lineNumber":10159,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":10160,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10161,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10162,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10163,"author":{"gitId":"-"},"content":" \"locate-path\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":10164,"author":{"gitId":"-"},"content":" \"path-exists\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":10165,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10166,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10167,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":10168,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10169,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10170,"author":{"gitId":"-"},"content":" \"node_modules/pkg-dir/node_modules/locate-path\": {","isFullCredit":false},{"lineNumber":10171,"author":{"gitId":"-"},"content":" \"version\": \"5.0.0\",","isFullCredit":false},{"lineNumber":10172,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10173,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10174,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10175,"author":{"gitId":"-"},"content":" \"p-locate\": \"^4.1.0\"","isFullCredit":false},{"lineNumber":10176,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10177,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10178,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":10179,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10180,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10181,"author":{"gitId":"-"},"content":" \"node_modules/pkg-dir/node_modules/p-limit\": {","isFullCredit":false},{"lineNumber":10182,"author":{"gitId":"-"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":10183,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10184,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10185,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10186,"author":{"gitId":"-"},"content":" \"p-try\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":10187,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10188,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10189,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":10190,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10191,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":10192,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":10193,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10194,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10195,"author":{"gitId":"-"},"content":" \"node_modules/pkg-dir/node_modules/p-locate\": {","isFullCredit":false},{"lineNumber":10196,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":10197,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10198,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10199,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10200,"author":{"gitId":"-"},"content":" \"p-limit\": \"^2.2.0\"","isFullCredit":false},{"lineNumber":10201,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10202,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10203,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":10204,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10205,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10206,"author":{"gitId":"-"},"content":" \"node_modules/portfinder\": {","isFullCredit":false},{"lineNumber":10207,"author":{"gitId":"-"},"content":" \"version\": \"1.0.32\",","isFullCredit":false},{"lineNumber":10208,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10209,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10210,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10211,"author":{"gitId":"-"},"content":" \"async\": \"^2.6.4\",","isFullCredit":false},{"lineNumber":10212,"author":{"gitId":"-"},"content":" \"debug\": \"^3.2.7\",","isFullCredit":false},{"lineNumber":10213,"author":{"gitId":"-"},"content":" \"mkdirp\": \"^0.5.6\"","isFullCredit":false},{"lineNumber":10214,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10215,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10216,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.12.0\"","isFullCredit":false},{"lineNumber":10217,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10218,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10219,"author":{"gitId":"-"},"content":" \"node_modules/portfinder/node_modules/debug\": {","isFullCredit":false},{"lineNumber":10220,"author":{"gitId":"-"},"content":" \"version\": \"3.2.7\",","isFullCredit":false},{"lineNumber":10221,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10222,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10223,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10224,"author":{"gitId":"-"},"content":" \"ms\": \"^2.1.1\"","isFullCredit":false},{"lineNumber":10225,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10226,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10227,"author":{"gitId":"-"},"content":" \"node_modules/portfinder/node_modules/mkdirp\": {","isFullCredit":false},{"lineNumber":10228,"author":{"gitId":"-"},"content":" \"version\": \"0.5.6\",","isFullCredit":false},{"lineNumber":10229,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10230,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10231,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10232,"author":{"gitId":"-"},"content":" \"minimist\": \"^1.2.6\"","isFullCredit":false},{"lineNumber":10233,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10234,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":10235,"author":{"gitId":"-"},"content":" \"mkdirp\": \"bin/cmd.js\"","isFullCredit":false},{"lineNumber":10236,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10237,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10238,"author":{"gitId":"-"},"content":" \"node_modules/possible-typed-array-names\": {","isFullCredit":false},{"lineNumber":10239,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":10240,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10241,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10242,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10243,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":10244,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10245,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10246,"author":{"gitId":"-"},"content":" \"node_modules/postcss\": {","isFullCredit":false},{"lineNumber":10247,"author":{"gitId":"-"},"content":" \"version\": \"8.4.38\",","isFullCredit":false},{"lineNumber":10248,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":10249,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":10250,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":10251,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/postcss/\"","isFullCredit":false},{"lineNumber":10252,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10253,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":10254,"author":{"gitId":"-"},"content":" \"type\": \"tidelift\",","isFullCredit":false},{"lineNumber":10255,"author":{"gitId":"-"},"content":" \"url\": \"https://tidelift.com/funding/github/npm/postcss\"","isFullCredit":false},{"lineNumber":10256,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10257,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":10258,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":10259,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ai\"","isFullCredit":false},{"lineNumber":10260,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10261,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":10262,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10263,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10264,"author":{"gitId":"-"},"content":" \"nanoid\": \"^3.3.7\",","isFullCredit":false},{"lineNumber":10265,"author":{"gitId":"-"},"content":" \"picocolors\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":10266,"author":{"gitId":"-"},"content":" \"source-map-js\": \"^1.2.0\"","isFullCredit":false},{"lineNumber":10267,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10268,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10269,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14\"","isFullCredit":false},{"lineNumber":10270,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10271,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10272,"author":{"gitId":"-"},"content":" \"node_modules/postcss-calc\": {","isFullCredit":false},{"lineNumber":10273,"author":{"gitId":"-"},"content":" \"version\": \"8.2.4\",","isFullCredit":false},{"lineNumber":10274,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10275,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10276,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10277,"author":{"gitId":"-"},"content":" \"postcss-selector-parser\": \"^6.0.9\",","isFullCredit":false},{"lineNumber":10278,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":10279,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10280,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10281,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.2\"","isFullCredit":false},{"lineNumber":10282,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10283,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10284,"author":{"gitId":"-"},"content":" \"node_modules/postcss-colormin\": {","isFullCredit":false},{"lineNumber":10285,"author":{"gitId":"-"},"content":" \"version\": \"5.3.0\",","isFullCredit":false},{"lineNumber":10286,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10287,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10288,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10289,"author":{"gitId":"-"},"content":" \"browserslist\": \"^4.16.6\",","isFullCredit":false},{"lineNumber":10290,"author":{"gitId":"-"},"content":" \"caniuse-api\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":10291,"author":{"gitId":"-"},"content":" \"colord\": \"^2.9.1\",","isFullCredit":false},{"lineNumber":10292,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":10293,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10294,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10295,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10296,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10297,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10298,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10299,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10300,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10301,"author":{"gitId":"-"},"content":" \"node_modules/postcss-convert-values\": {","isFullCredit":false},{"lineNumber":10302,"author":{"gitId":"-"},"content":" \"version\": \"5.1.3\",","isFullCredit":false},{"lineNumber":10303,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10304,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10305,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10306,"author":{"gitId":"-"},"content":" \"browserslist\": \"^4.21.4\",","isFullCredit":false},{"lineNumber":10307,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":10308,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10309,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10310,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10311,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10312,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10313,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10314,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10315,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10316,"author":{"gitId":"-"},"content":" \"node_modules/postcss-discard-comments\": {","isFullCredit":false},{"lineNumber":10317,"author":{"gitId":"-"},"content":" \"version\": \"5.1.2\",","isFullCredit":false},{"lineNumber":10318,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10319,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10320,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10321,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10322,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10323,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10324,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10325,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10326,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10327,"author":{"gitId":"-"},"content":" \"node_modules/postcss-discard-duplicates\": {","isFullCredit":false},{"lineNumber":10328,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":10329,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10330,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10331,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10332,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10333,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10334,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10335,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10336,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10337,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10338,"author":{"gitId":"-"},"content":" \"node_modules/postcss-discard-empty\": {","isFullCredit":false},{"lineNumber":10339,"author":{"gitId":"-"},"content":" \"version\": \"5.1.1\",","isFullCredit":false},{"lineNumber":10340,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10341,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10342,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10343,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10344,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10345,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10346,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10347,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10348,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10349,"author":{"gitId":"-"},"content":" \"node_modules/postcss-discard-overridden\": {","isFullCredit":false},{"lineNumber":10350,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":10351,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10352,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10353,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10354,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10355,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10356,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10357,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10358,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10359,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10360,"author":{"gitId":"-"},"content":" \"node_modules/postcss-html\": {","isFullCredit":false},{"lineNumber":10361,"author":{"gitId":"-"},"content":" \"version\": \"1.6.0\",","isFullCredit":false},{"lineNumber":10362,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10363,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10364,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10365,"author":{"gitId":"-"},"content":" \"htmlparser2\": \"^8.0.0\",","isFullCredit":false},{"lineNumber":10366,"author":{"gitId":"-"},"content":" \"js-tokens\": \"^8.0.0\",","isFullCredit":false},{"lineNumber":10367,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.4.0\",","isFullCredit":false},{"lineNumber":10368,"author":{"gitId":"-"},"content":" \"postcss-safe-parser\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":10369,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10370,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10371,"author":{"gitId":"-"},"content":" \"node\": \"^12 || \u003e\u003d14\"","isFullCredit":false},{"lineNumber":10372,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10373,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10374,"author":{"gitId":"-"},"content":" \"node_modules/postcss-html/node_modules/js-tokens\": {","isFullCredit":false},{"lineNumber":10375,"author":{"gitId":"-"},"content":" \"version\": \"8.0.1\",","isFullCredit":false},{"lineNumber":10376,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10377,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":10378,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10379,"author":{"gitId":"-"},"content":" \"node_modules/postcss-loader\": {","isFullCredit":false},{"lineNumber":10380,"author":{"gitId":"-"},"content":" \"version\": \"6.2.1\",","isFullCredit":false},{"lineNumber":10381,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10382,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10383,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10384,"author":{"gitId":"-"},"content":" \"cosmiconfig\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":10385,"author":{"gitId":"-"},"content":" \"klona\": \"^2.0.5\",","isFullCredit":false},{"lineNumber":10386,"author":{"gitId":"-"},"content":" \"semver\": \"^7.3.5\"","isFullCredit":false},{"lineNumber":10387,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10388,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10389,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 12.13.0\"","isFullCredit":false},{"lineNumber":10390,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10391,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":10392,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":10393,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":10394,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10395,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10396,"author":{"gitId":"-"},"content":" \"postcss\": \"^7.0.0 || ^8.0.1\",","isFullCredit":false},{"lineNumber":10397,"author":{"gitId":"-"},"content":" \"webpack\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":10398,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10399,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10400,"author":{"gitId":"-"},"content":" \"node_modules/postcss-loader/node_modules/cosmiconfig\": {","isFullCredit":false},{"lineNumber":10401,"author":{"gitId":"-"},"content":" \"version\": \"7.1.0\",","isFullCredit":false},{"lineNumber":10402,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10403,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10404,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10405,"author":{"gitId":"-"},"content":" \"@types/parse-json\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":10406,"author":{"gitId":"-"},"content":" \"import-fresh\": \"^3.2.1\",","isFullCredit":false},{"lineNumber":10407,"author":{"gitId":"-"},"content":" \"parse-json\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":10408,"author":{"gitId":"-"},"content":" \"path-type\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":10409,"author":{"gitId":"-"},"content":" \"yaml\": \"^1.10.0\"","isFullCredit":false},{"lineNumber":10410,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10411,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10412,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":10413,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10414,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10415,"author":{"gitId":"-"},"content":" \"node_modules/postcss-loader/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":10416,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":10417,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10418,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":10419,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10420,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":10421,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10422,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10423,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":10424,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10425,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10426,"author":{"gitId":"-"},"content":" \"node_modules/postcss-loader/node_modules/semver\": {","isFullCredit":false},{"lineNumber":10427,"author":{"gitId":"-"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":10428,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10429,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":10430,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10431,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":10432,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10433,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":10434,"author":{"gitId":"-"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":10435,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10436,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10437,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":10438,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10439,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10440,"author":{"gitId":"-"},"content":" \"node_modules/postcss-loader/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":10441,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":10442,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10443,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":10444,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10445,"author":{"gitId":"-"},"content":" \"node_modules/postcss-media-query-parser\": {","isFullCredit":false},{"lineNumber":10446,"author":{"gitId":"-"},"content":" \"version\": \"0.2.3\",","isFullCredit":false},{"lineNumber":10447,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz\",","isFullCredit":false},{"lineNumber":10448,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig\u003d\u003d\",","isFullCredit":false},{"lineNumber":10449,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":10450,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10451,"author":{"gitId":"-"},"content":" \"node_modules/postcss-merge-longhand\": {","isFullCredit":false},{"lineNumber":10452,"author":{"gitId":"-"},"content":" \"version\": \"5.1.7\",","isFullCredit":false},{"lineNumber":10453,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10454,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10455,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10456,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":10457,"author":{"gitId":"-"},"content":" \"stylehacks\": \"^5.1.1\"","isFullCredit":false},{"lineNumber":10458,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10459,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10460,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10461,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10462,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10463,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10464,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10465,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10466,"author":{"gitId":"-"},"content":" \"node_modules/postcss-merge-rules\": {","isFullCredit":false},{"lineNumber":10467,"author":{"gitId":"-"},"content":" \"version\": \"5.1.3\",","isFullCredit":false},{"lineNumber":10468,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10469,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10470,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10471,"author":{"gitId":"-"},"content":" \"browserslist\": \"^4.21.4\",","isFullCredit":false},{"lineNumber":10472,"author":{"gitId":"-"},"content":" \"caniuse-api\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":10473,"author":{"gitId":"-"},"content":" \"cssnano-utils\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":10474,"author":{"gitId":"-"},"content":" \"postcss-selector-parser\": \"^6.0.5\"","isFullCredit":false},{"lineNumber":10475,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10476,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10477,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10478,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10479,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10480,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10481,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10482,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10483,"author":{"gitId":"-"},"content":" \"node_modules/postcss-minify-font-values\": {","isFullCredit":false},{"lineNumber":10484,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":10485,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10486,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10487,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10488,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":10489,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10490,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10491,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10492,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10493,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10494,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10495,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10496,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10497,"author":{"gitId":"-"},"content":" \"node_modules/postcss-minify-gradients\": {","isFullCredit":false},{"lineNumber":10498,"author":{"gitId":"-"},"content":" \"version\": \"5.1.1\",","isFullCredit":false},{"lineNumber":10499,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10500,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10501,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10502,"author":{"gitId":"-"},"content":" \"colord\": \"^2.9.1\",","isFullCredit":false},{"lineNumber":10503,"author":{"gitId":"-"},"content":" \"cssnano-utils\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":10504,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":10505,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10506,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10507,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10508,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10509,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10510,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10511,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10512,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10513,"author":{"gitId":"-"},"content":" \"node_modules/postcss-minify-params\": {","isFullCredit":false},{"lineNumber":10514,"author":{"gitId":"-"},"content":" \"version\": \"5.1.4\",","isFullCredit":false},{"lineNumber":10515,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10516,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10517,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10518,"author":{"gitId":"-"},"content":" \"browserslist\": \"^4.21.4\",","isFullCredit":false},{"lineNumber":10519,"author":{"gitId":"-"},"content":" \"cssnano-utils\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":10520,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":10521,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10522,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10523,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10524,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10525,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10526,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10527,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10528,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10529,"author":{"gitId":"-"},"content":" \"node_modules/postcss-minify-selectors\": {","isFullCredit":false},{"lineNumber":10530,"author":{"gitId":"-"},"content":" \"version\": \"5.2.1\",","isFullCredit":false},{"lineNumber":10531,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10532,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10533,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10534,"author":{"gitId":"-"},"content":" \"postcss-selector-parser\": \"^6.0.5\"","isFullCredit":false},{"lineNumber":10535,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10536,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10537,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10538,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10539,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10540,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10541,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10542,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10543,"author":{"gitId":"-"},"content":" \"node_modules/postcss-modules-extract-imports\": {","isFullCredit":false},{"lineNumber":10544,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":10545,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10546,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":10547,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10548,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d 14\"","isFullCredit":false},{"lineNumber":10549,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10550,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10551,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.1.0\"","isFullCredit":false},{"lineNumber":10552,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10553,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10554,"author":{"gitId":"-"},"content":" \"node_modules/postcss-modules-local-by-default\": {","isFullCredit":false},{"lineNumber":10555,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":10556,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10557,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10558,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10559,"author":{"gitId":"-"},"content":" \"icss-utils\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":10560,"author":{"gitId":"-"},"content":" \"postcss-selector-parser\": \"^6.0.2\",","isFullCredit":false},{"lineNumber":10561,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.1.0\"","isFullCredit":false},{"lineNumber":10562,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10563,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10564,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d 14\"","isFullCredit":false},{"lineNumber":10565,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10566,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10567,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.1.0\"","isFullCredit":false},{"lineNumber":10568,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10569,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10570,"author":{"gitId":"-"},"content":" \"node_modules/postcss-modules-scope\": {","isFullCredit":false},{"lineNumber":10571,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":10572,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10573,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":10574,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10575,"author":{"gitId":"-"},"content":" \"postcss-selector-parser\": \"^6.0.4\"","isFullCredit":false},{"lineNumber":10576,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10577,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10578,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d 14\"","isFullCredit":false},{"lineNumber":10579,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10580,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10581,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.1.0\"","isFullCredit":false},{"lineNumber":10582,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10583,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10584,"author":{"gitId":"-"},"content":" \"node_modules/postcss-modules-values\": {","isFullCredit":false},{"lineNumber":10585,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":10586,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10587,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":10588,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10589,"author":{"gitId":"-"},"content":" \"icss-utils\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":10590,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10591,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10592,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d 14\"","isFullCredit":false},{"lineNumber":10593,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10594,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10595,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.1.0\"","isFullCredit":false},{"lineNumber":10596,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10597,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10598,"author":{"gitId":"-"},"content":" \"node_modules/postcss-normalize-charset\": {","isFullCredit":false},{"lineNumber":10599,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":10600,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10601,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10602,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10603,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10604,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10605,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10606,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10607,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10608,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10609,"author":{"gitId":"-"},"content":" \"node_modules/postcss-normalize-display-values\": {","isFullCredit":false},{"lineNumber":10610,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":10611,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10612,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10613,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10614,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":10615,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10616,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10617,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10618,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10619,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10620,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10621,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10622,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10623,"author":{"gitId":"-"},"content":" \"node_modules/postcss-normalize-positions\": {","isFullCredit":false},{"lineNumber":10624,"author":{"gitId":"-"},"content":" \"version\": \"5.1.1\",","isFullCredit":false},{"lineNumber":10625,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10626,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10627,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10628,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":10629,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10630,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10631,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10632,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10633,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10634,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10635,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10636,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10637,"author":{"gitId":"-"},"content":" \"node_modules/postcss-normalize-repeat-style\": {","isFullCredit":false},{"lineNumber":10638,"author":{"gitId":"-"},"content":" \"version\": \"5.1.1\",","isFullCredit":false},{"lineNumber":10639,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10640,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10641,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10642,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":10643,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10644,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10645,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10646,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10647,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10648,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10649,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10650,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10651,"author":{"gitId":"-"},"content":" \"node_modules/postcss-normalize-string\": {","isFullCredit":false},{"lineNumber":10652,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":10653,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10654,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10655,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10656,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":10657,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10658,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10659,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10660,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10661,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10662,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10663,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10664,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10665,"author":{"gitId":"-"},"content":" \"node_modules/postcss-normalize-timing-functions\": {","isFullCredit":false},{"lineNumber":10666,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":10667,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10668,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10669,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10670,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":10671,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10672,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10673,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10674,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10675,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10676,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10677,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10678,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10679,"author":{"gitId":"-"},"content":" \"node_modules/postcss-normalize-unicode\": {","isFullCredit":false},{"lineNumber":10680,"author":{"gitId":"-"},"content":" \"version\": \"5.1.1\",","isFullCredit":false},{"lineNumber":10681,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10682,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10683,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10684,"author":{"gitId":"-"},"content":" \"browserslist\": \"^4.21.4\",","isFullCredit":false},{"lineNumber":10685,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":10686,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10687,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10688,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10689,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10690,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10691,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10692,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10693,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10694,"author":{"gitId":"-"},"content":" \"node_modules/postcss-normalize-url\": {","isFullCredit":false},{"lineNumber":10695,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":10696,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10697,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10698,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10699,"author":{"gitId":"-"},"content":" \"normalize-url\": \"^6.0.1\",","isFullCredit":false},{"lineNumber":10700,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":10701,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10702,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10703,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10704,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10705,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10706,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10707,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10708,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10709,"author":{"gitId":"-"},"content":" \"node_modules/postcss-normalize-whitespace\": {","isFullCredit":false},{"lineNumber":10710,"author":{"gitId":"-"},"content":" \"version\": \"5.1.1\",","isFullCredit":false},{"lineNumber":10711,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10712,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10713,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10714,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":10715,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10716,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10717,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10718,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10719,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10720,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10721,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10722,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10723,"author":{"gitId":"-"},"content":" \"node_modules/postcss-ordered-values\": {","isFullCredit":false},{"lineNumber":10724,"author":{"gitId":"-"},"content":" \"version\": \"5.1.3\",","isFullCredit":false},{"lineNumber":10725,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10726,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10727,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10728,"author":{"gitId":"-"},"content":" \"cssnano-utils\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":10729,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":10730,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10731,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10732,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10733,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10734,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10735,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10736,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10737,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10738,"author":{"gitId":"-"},"content":" \"node_modules/postcss-reduce-initial\": {","isFullCredit":false},{"lineNumber":10739,"author":{"gitId":"-"},"content":" \"version\": \"5.1.1\",","isFullCredit":false},{"lineNumber":10740,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10741,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10742,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10743,"author":{"gitId":"-"},"content":" \"browserslist\": \"^4.21.4\",","isFullCredit":false},{"lineNumber":10744,"author":{"gitId":"-"},"content":" \"caniuse-api\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":10745,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10746,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10747,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10748,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10749,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10750,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10751,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10752,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10753,"author":{"gitId":"-"},"content":" \"node_modules/postcss-reduce-transforms\": {","isFullCredit":false},{"lineNumber":10754,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":10755,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10756,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10757,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10758,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":10759,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10760,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10761,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10762,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10763,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10764,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10765,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10766,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10767,"author":{"gitId":"-"},"content":" \"node_modules/postcss-resolve-nested-selector\": {","isFullCredit":false},{"lineNumber":10768,"author":{"gitId":"-"},"content":" \"version\": \"0.1.1\",","isFullCredit":false},{"lineNumber":10769,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10770,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":10771,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10772,"author":{"gitId":"-"},"content":" \"node_modules/postcss-safe-parser\": {","isFullCredit":false},{"lineNumber":10773,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":10774,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10775,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10776,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10777,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d12.0\"","isFullCredit":false},{"lineNumber":10778,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10779,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":10780,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":10781,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/postcss/\"","isFullCredit":false},{"lineNumber":10782,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10783,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10784,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.3.3\"","isFullCredit":false},{"lineNumber":10785,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10786,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10787,"author":{"gitId":"-"},"content":" \"node_modules/postcss-scss\": {","isFullCredit":false},{"lineNumber":10788,"author":{"gitId":"-"},"content":" \"version\": \"4.0.9\",","isFullCredit":false},{"lineNumber":10789,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz\",","isFullCredit":false},{"lineNumber":10790,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A\u003d\u003d\",","isFullCredit":false},{"lineNumber":10791,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10792,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":10793,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":10794,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":10795,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/postcss/\"","isFullCredit":false},{"lineNumber":10796,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10797,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":10798,"author":{"gitId":"-"},"content":" \"type\": \"tidelift\",","isFullCredit":false},{"lineNumber":10799,"author":{"gitId":"-"},"content":" \"url\": \"https://tidelift.com/funding/github/npm/postcss-scss\"","isFullCredit":false},{"lineNumber":10800,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10801,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":10802,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":10803,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ai\"","isFullCredit":false},{"lineNumber":10804,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10805,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":10806,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10807,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d12.0\"","isFullCredit":false},{"lineNumber":10808,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10809,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10810,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.4.29\"","isFullCredit":false},{"lineNumber":10811,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10812,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10813,"author":{"gitId":"-"},"content":" \"node_modules/postcss-selector-parser\": {","isFullCredit":false},{"lineNumber":10814,"author":{"gitId":"-"},"content":" \"version\": \"6.0.16\",","isFullCredit":false},{"lineNumber":10815,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz\",","isFullCredit":false},{"lineNumber":10816,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw\u003d\u003d\",","isFullCredit":false},{"lineNumber":10817,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10818,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10819,"author":{"gitId":"-"},"content":" \"cssesc\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":10820,"author":{"gitId":"-"},"content":" \"util-deprecate\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":10821,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10822,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10823,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":10824,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10825,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10826,"author":{"gitId":"-"},"content":" \"node_modules/postcss-sorting\": {","isFullCredit":false},{"lineNumber":10827,"author":{"gitId":"-"},"content":" \"version\": \"8.0.2\",","isFullCredit":false},{"lineNumber":10828,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-8.0.2.tgz\",","isFullCredit":false},{"lineNumber":10829,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":10830,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10831,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10832,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.4.20\"","isFullCredit":false},{"lineNumber":10833,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10834,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10835,"author":{"gitId":"-"},"content":" \"node_modules/postcss-svgo\": {","isFullCredit":false},{"lineNumber":10836,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":10837,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10838,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10839,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10840,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":10841,"author":{"gitId":"-"},"content":" \"svgo\": \"^2.7.0\"","isFullCredit":false},{"lineNumber":10842,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10843,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10844,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10845,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10846,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10847,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10848,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10849,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10850,"author":{"gitId":"-"},"content":" \"node_modules/postcss-unique-selectors\": {","isFullCredit":false},{"lineNumber":10851,"author":{"gitId":"-"},"content":" \"version\": \"5.1.1\",","isFullCredit":false},{"lineNumber":10852,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10853,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10854,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10855,"author":{"gitId":"-"},"content":" \"postcss-selector-parser\": \"^6.0.5\"","isFullCredit":false},{"lineNumber":10856,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10857,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10858,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":10859,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10860,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10861,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":10862,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10863,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10864,"author":{"gitId":"-"},"content":" \"node_modules/postcss-value-parser\": {","isFullCredit":false},{"lineNumber":10865,"author":{"gitId":"-"},"content":" \"version\": \"4.2.0\",","isFullCredit":false},{"lineNumber":10866,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10867,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":10868,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10869,"author":{"gitId":"-"},"content":" \"node_modules/prelude-ls\": {","isFullCredit":false},{"lineNumber":10870,"author":{"gitId":"-"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":10871,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10872,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10873,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10874,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8.0\"","isFullCredit":false},{"lineNumber":10875,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10876,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10877,"author":{"gitId":"-"},"content":" \"node_modules/prettier\": {","isFullCredit":false},{"lineNumber":10878,"author":{"gitId":"-"},"content":" \"version\": \"2.8.3\",","isFullCredit":false},{"lineNumber":10879,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10880,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10881,"author":{"gitId":"-"},"content":" \"optional\": true,","isFullCredit":false},{"lineNumber":10882,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":10883,"author":{"gitId":"-"},"content":" \"prettier\": \"bin-prettier.js\"","isFullCredit":false},{"lineNumber":10884,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10885,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10886,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10.13.0\"","isFullCredit":false},{"lineNumber":10887,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10888,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":10889,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/prettier/prettier?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":10890,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10891,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10892,"author":{"gitId":"-"},"content":" \"node_modules/pretty-error\": {","isFullCredit":false},{"lineNumber":10893,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":10894,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10895,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10896,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10897,"author":{"gitId":"-"},"content":" \"lodash\": \"^4.17.20\",","isFullCredit":false},{"lineNumber":10898,"author":{"gitId":"-"},"content":" \"renderkid\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":10899,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10900,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10901,"author":{"gitId":"-"},"content":" \"node_modules/process-nextick-args\": {","isFullCredit":false},{"lineNumber":10902,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":10903,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":10904,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10905,"author":{"gitId":"-"},"content":" \"node_modules/progress-webpack-plugin\": {","isFullCredit":false},{"lineNumber":10906,"author":{"gitId":"-"},"content":" \"version\": \"1.0.16\",","isFullCredit":false},{"lineNumber":10907,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10908,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10909,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10910,"author":{"gitId":"-"},"content":" \"chalk\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":10911,"author":{"gitId":"-"},"content":" \"figures\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":10912,"author":{"gitId":"-"},"content":" \"log-update\": \"^2.3.0\"","isFullCredit":false},{"lineNumber":10913,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10914,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10915,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10.13.0\"","isFullCredit":false},{"lineNumber":10916,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10917,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":10918,"author":{"gitId":"-"},"content":" \"webpack\": \"^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0\"","isFullCredit":false},{"lineNumber":10919,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10920,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10921,"author":{"gitId":"-"},"content":" \"node_modules/promise\": {","isFullCredit":false},{"lineNumber":10922,"author":{"gitId":"-"},"content":" \"version\": \"7.3.1\",","isFullCredit":false},{"lineNumber":10923,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10924,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10925,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10926,"author":{"gitId":"-"},"content":" \"asap\": \"~2.0.3\"","isFullCredit":false},{"lineNumber":10927,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10928,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10929,"author":{"gitId":"-"},"content":" \"node_modules/prop-types\": {","isFullCredit":false},{"lineNumber":10930,"author":{"gitId":"-"},"content":" \"version\": \"15.8.1\",","isFullCredit":false},{"lineNumber":10931,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10932,"author":{"gitId":"-"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":10933,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10934,"author":{"gitId":"-"},"content":" \"loose-envify\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":10935,"author":{"gitId":"-"},"content":" \"object-assign\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":10936,"author":{"gitId":"-"},"content":" \"react-is\": \"^16.13.1\"","isFullCredit":false},{"lineNumber":10937,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10938,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10939,"author":{"gitId":"-"},"content":" \"node_modules/proxy-addr\": {","isFullCredit":false},{"lineNumber":10940,"author":{"gitId":"-"},"content":" \"version\": \"2.0.7\",","isFullCredit":false},{"lineNumber":10941,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10942,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10943,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10944,"author":{"gitId":"-"},"content":" \"forwarded\": \"0.2.0\",","isFullCredit":false},{"lineNumber":10945,"author":{"gitId":"-"},"content":" \"ipaddr.js\": \"1.9.1\"","isFullCredit":false},{"lineNumber":10946,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10947,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10948,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.10\"","isFullCredit":false},{"lineNumber":10949,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10950,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10951,"author":{"gitId":"-"},"content":" \"node_modules/proxy-addr/node_modules/ipaddr.js\": {","isFullCredit":false},{"lineNumber":10952,"author":{"gitId":"-"},"content":" \"version\": \"1.9.1\",","isFullCredit":false},{"lineNumber":10953,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10954,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10955,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":10956,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.10\"","isFullCredit":false},{"lineNumber":10957,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10958,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10959,"author":{"gitId":"-"},"content":" \"node_modules/pseudomap\": {","isFullCredit":false},{"lineNumber":10960,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":10961,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10962,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":10963,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10964,"author":{"gitId":"-"},"content":" \"node_modules/pug\": {","isFullCredit":false},{"lineNumber":10965,"author":{"gitId":"-"},"content":" \"version\": \"3.0.2\",","isFullCredit":false},{"lineNumber":10966,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10967,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10968,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10969,"author":{"gitId":"-"},"content":" \"pug-code-gen\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":10970,"author":{"gitId":"-"},"content":" \"pug-filters\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":10971,"author":{"gitId":"-"},"content":" \"pug-lexer\": \"^5.0.1\",","isFullCredit":false},{"lineNumber":10972,"author":{"gitId":"-"},"content":" \"pug-linker\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":10973,"author":{"gitId":"-"},"content":" \"pug-load\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":10974,"author":{"gitId":"-"},"content":" \"pug-parser\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":10975,"author":{"gitId":"-"},"content":" \"pug-runtime\": \"^3.0.1\",","isFullCredit":false},{"lineNumber":10976,"author":{"gitId":"-"},"content":" \"pug-strip-comments\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":10977,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10978,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10979,"author":{"gitId":"-"},"content":" \"node_modules/pug-attrs\": {","isFullCredit":false},{"lineNumber":10980,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":10981,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10982,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10983,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10984,"author":{"gitId":"-"},"content":" \"constantinople\": \"^4.0.1\",","isFullCredit":false},{"lineNumber":10985,"author":{"gitId":"-"},"content":" \"js-stringify\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":10986,"author":{"gitId":"-"},"content":" \"pug-runtime\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":10987,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10988,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":10989,"author":{"gitId":"-"},"content":" \"node_modules/pug-code-gen\": {","isFullCredit":false},{"lineNumber":10990,"author":{"gitId":"-"},"content":" \"version\": \"3.0.2\",","isFullCredit":false},{"lineNumber":10991,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":10992,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":10993,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":10994,"author":{"gitId":"-"},"content":" \"constantinople\": \"^4.0.1\",","isFullCredit":false},{"lineNumber":10995,"author":{"gitId":"-"},"content":" \"doctypes\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":10996,"author":{"gitId":"-"},"content":" \"js-stringify\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":10997,"author":{"gitId":"-"},"content":" \"pug-attrs\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":10998,"author":{"gitId":"-"},"content":" \"pug-error\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":10999,"author":{"gitId":"-"},"content":" \"pug-runtime\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":11000,"author":{"gitId":"-"},"content":" \"void-elements\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":11001,"author":{"gitId":"-"},"content":" \"with\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":11002,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11003,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11004,"author":{"gitId":"-"},"content":" \"node_modules/pug-error\": {","isFullCredit":false},{"lineNumber":11005,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":11006,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11007,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":11008,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11009,"author":{"gitId":"-"},"content":" \"node_modules/pug-filters\": {","isFullCredit":false},{"lineNumber":11010,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":11011,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11012,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11013,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11014,"author":{"gitId":"-"},"content":" \"constantinople\": \"^4.0.1\",","isFullCredit":false},{"lineNumber":11015,"author":{"gitId":"-"},"content":" \"jstransformer\": \"1.0.0\",","isFullCredit":false},{"lineNumber":11016,"author":{"gitId":"-"},"content":" \"pug-error\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":11017,"author":{"gitId":"-"},"content":" \"pug-walk\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":11018,"author":{"gitId":"-"},"content":" \"resolve\": \"^1.15.1\"","isFullCredit":false},{"lineNumber":11019,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11020,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11021,"author":{"gitId":"-"},"content":" \"node_modules/pug-lexer\": {","isFullCredit":false},{"lineNumber":11022,"author":{"gitId":"-"},"content":" \"version\": \"5.0.1\",","isFullCredit":false},{"lineNumber":11023,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11024,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11025,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11026,"author":{"gitId":"-"},"content":" \"character-parser\": \"^2.2.0\",","isFullCredit":false},{"lineNumber":11027,"author":{"gitId":"-"},"content":" \"is-expression\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":11028,"author":{"gitId":"-"},"content":" \"pug-error\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":11029,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11030,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11031,"author":{"gitId":"-"},"content":" \"node_modules/pug-linker\": {","isFullCredit":false},{"lineNumber":11032,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":11033,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11034,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11035,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11036,"author":{"gitId":"-"},"content":" \"pug-error\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":11037,"author":{"gitId":"-"},"content":" \"pug-walk\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":11038,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11039,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11040,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint\": {","isFullCredit":false},{"lineNumber":11041,"author":{"gitId":"-"},"content":" \"version\": \"2.6.0\",","isFullCredit":false},{"lineNumber":11042,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":11043,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11044,"author":{"gitId":"-"},"content":" \"acorn\": \"^4.0.1\",","isFullCredit":false},{"lineNumber":11045,"author":{"gitId":"-"},"content":" \"commander\": \"^2.9.0\",","isFullCredit":false},{"lineNumber":11046,"author":{"gitId":"-"},"content":" \"css-selector-parser\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":11047,"author":{"gitId":"-"},"content":" \"find-line-column\": \"^0.5.2\",","isFullCredit":false},{"lineNumber":11048,"author":{"gitId":"-"},"content":" \"glob\": \"^7.0.3\",","isFullCredit":false},{"lineNumber":11049,"author":{"gitId":"-"},"content":" \"minimatch\": \"^3.0.3\",","isFullCredit":false},{"lineNumber":11050,"author":{"gitId":"-"},"content":" \"path-is-absolute\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":11051,"author":{"gitId":"-"},"content":" \"pug-attrs\": \"^2.0.3\",","isFullCredit":false},{"lineNumber":11052,"author":{"gitId":"-"},"content":" \"pug-error\": \"^1.3.2\",","isFullCredit":false},{"lineNumber":11053,"author":{"gitId":"-"},"content":" \"pug-lexer\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":11054,"author":{"gitId":"-"},"content":" \"resolve\": \"^1.1.7\",","isFullCredit":false},{"lineNumber":11055,"author":{"gitId":"-"},"content":" \"strip-json-comments\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":11056,"author":{"gitId":"-"},"content":" \"void-elements\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":11057,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11058,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":11059,"author":{"gitId":"-"},"content":" \"pug-lint\": \"bin/pug-lint\"","isFullCredit":false},{"lineNumber":11060,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11061,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11062,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint-vue\": {","isFullCredit":false},{"lineNumber":11063,"author":{"gitId":"-"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":11064,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11065,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11066,"author":{"gitId":"-"},"content":" \"chalk\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":11067,"author":{"gitId":"-"},"content":" \"cheerio\": \"^1.0.0-rc.3\",","isFullCredit":false},{"lineNumber":11068,"author":{"gitId":"-"},"content":" \"commander\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":11069,"author":{"gitId":"-"},"content":" \"htmlparser2\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":11070,"author":{"gitId":"-"},"content":" \"pug-lint\": \"^2.6.0\",","isFullCredit":false},{"lineNumber":11071,"author":{"gitId":"-"},"content":" \"text-table\": \"^0.2.0\",","isFullCredit":false},{"lineNumber":11072,"author":{"gitId":"-"},"content":" \"walk\": \"^2.3.14\"","isFullCredit":false},{"lineNumber":11073,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11074,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":11075,"author":{"gitId":"-"},"content":" \"pug-lint-vue\": \"bin/pug-lint-vue\"","isFullCredit":false},{"lineNumber":11076,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11077,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11078,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint-vue/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":11079,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":11080,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11081,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11082,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":11083,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11084,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11085,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":11086,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11087,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11088,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":11089,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11090,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11091,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint-vue/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":11092,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":11093,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11094,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11095,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":11096,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":11097,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11098,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11099,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":11100,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11101,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11102,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":11103,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11104,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11105,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint-vue/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":11106,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":11107,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11108,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11109,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":11110,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11111,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11112,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":11113,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11114,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11115,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint-vue/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":11116,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":11117,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":11118,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11119,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint-vue/node_modules/commander\": {","isFullCredit":false},{"lineNumber":11120,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":11121,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11122,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11123,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":11124,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11125,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11126,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint-vue/node_modules/dom-serializer\": {","isFullCredit":false},{"lineNumber":11127,"author":{"gitId":"-"},"content":" \"version\": \"1.4.1\",","isFullCredit":false},{"lineNumber":11128,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11129,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11130,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":11131,"author":{"gitId":"-"},"content":" \"domhandler\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":11132,"author":{"gitId":"-"},"content":" \"entities\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":11133,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11134,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11135,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/cheeriojs/dom-serializer?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":11136,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11137,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11138,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint-vue/node_modules/dom-serializer/node_modules/domhandler\": {","isFullCredit":false},{"lineNumber":11139,"author":{"gitId":"-"},"content":" \"version\": \"4.3.1\",","isFullCredit":false},{"lineNumber":11140,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":11141,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11142,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.2.0\"","isFullCredit":false},{"lineNumber":11143,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11144,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11145,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 4\"","isFullCredit":false},{"lineNumber":11146,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11147,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11148,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/fb55/domhandler?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":11149,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11150,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11151,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint-vue/node_modules/domhandler\": {","isFullCredit":false},{"lineNumber":11152,"author":{"gitId":"-"},"content":" \"version\": \"3.3.0\",","isFullCredit":false},{"lineNumber":11153,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":11154,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11155,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":11156,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11157,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11158,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 4\"","isFullCredit":false},{"lineNumber":11159,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11160,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11161,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/fb55/domhandler?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":11162,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11163,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11164,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint-vue/node_modules/domutils\": {","isFullCredit":false},{"lineNumber":11165,"author":{"gitId":"-"},"content":" \"version\": \"2.8.0\",","isFullCredit":false},{"lineNumber":11166,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":11167,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11168,"author":{"gitId":"-"},"content":" \"dom-serializer\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":11169,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.2.0\",","isFullCredit":false},{"lineNumber":11170,"author":{"gitId":"-"},"content":" \"domhandler\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":11171,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11172,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11173,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/fb55/domutils?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":11174,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11175,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11176,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint-vue/node_modules/domutils/node_modules/domhandler\": {","isFullCredit":false},{"lineNumber":11177,"author":{"gitId":"-"},"content":" \"version\": \"4.3.1\",","isFullCredit":false},{"lineNumber":11178,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":11179,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11180,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.2.0\"","isFullCredit":false},{"lineNumber":11181,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11182,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11183,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 4\"","isFullCredit":false},{"lineNumber":11184,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11185,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11186,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/fb55/domhandler?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":11187,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11188,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11189,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint-vue/node_modules/entities\": {","isFullCredit":false},{"lineNumber":11190,"author":{"gitId":"-"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":11191,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":11192,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11193,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/fb55/entities?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":11194,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11195,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11196,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint-vue/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":11197,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":11198,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11199,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11200,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":11201,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11202,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11203,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint-vue/node_modules/htmlparser2\": {","isFullCredit":false},{"lineNumber":11204,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":11205,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11206,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11207,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":11208,"author":{"gitId":"-"},"content":" \"domhandler\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":11209,"author":{"gitId":"-"},"content":" \"domutils\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":11210,"author":{"gitId":"-"},"content":" \"entities\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":11211,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11212,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11213,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint-vue/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":11214,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":11215,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11216,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11217,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":11218,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11219,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11220,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":11221,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11222,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11223,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint/node_modules/acorn\": {","isFullCredit":false},{"lineNumber":11224,"author":{"gitId":"-"},"content":" \"version\": \"4.0.13\",","isFullCredit":false},{"lineNumber":11225,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11226,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":11227,"author":{"gitId":"-"},"content":" \"acorn\": \"bin/acorn\"","isFullCredit":false},{"lineNumber":11228,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11229,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11230,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.4.0\"","isFullCredit":false},{"lineNumber":11231,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11232,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11233,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint/node_modules/brace-expansion\": {","isFullCredit":false},{"lineNumber":11234,"author":{"gitId":"-"},"content":" \"version\": \"1.1.11\",","isFullCredit":false},{"lineNumber":11235,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11236,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11237,"author":{"gitId":"-"},"content":" \"balanced-match\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":11238,"author":{"gitId":"-"},"content":" \"concat-map\": \"0.0.1\"","isFullCredit":false},{"lineNumber":11239,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11240,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11241,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint/node_modules/commander\": {","isFullCredit":false},{"lineNumber":11242,"author":{"gitId":"-"},"content":" \"version\": \"2.20.3\",","isFullCredit":false},{"lineNumber":11243,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":11244,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11245,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint/node_modules/constantinople\": {","isFullCredit":false},{"lineNumber":11246,"author":{"gitId":"-"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":11247,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11248,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11249,"author":{"gitId":"-"},"content":" \"@types/babel-types\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":11250,"author":{"gitId":"-"},"content":" \"@types/babylon\": \"^6.16.2\",","isFullCredit":false},{"lineNumber":11251,"author":{"gitId":"-"},"content":" \"babel-types\": \"^6.26.0\",","isFullCredit":false},{"lineNumber":11252,"author":{"gitId":"-"},"content":" \"babylon\": \"^6.18.0\"","isFullCredit":false},{"lineNumber":11253,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11254,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11255,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint/node_modules/is-expression\": {","isFullCredit":false},{"lineNumber":11256,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":11257,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11258,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11259,"author":{"gitId":"-"},"content":" \"acorn\": \"~4.0.2\",","isFullCredit":false},{"lineNumber":11260,"author":{"gitId":"-"},"content":" \"object-assign\": \"^4.0.1\"","isFullCredit":false},{"lineNumber":11261,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11262,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11263,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint/node_modules/minimatch\": {","isFullCredit":false},{"lineNumber":11264,"author":{"gitId":"-"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":11265,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":11266,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11267,"author":{"gitId":"-"},"content":" \"brace-expansion\": \"^1.1.7\"","isFullCredit":false},{"lineNumber":11268,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11269,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11270,"author":{"gitId":"-"},"content":" \"node\": \"*\"","isFullCredit":false},{"lineNumber":11271,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11272,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11273,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint/node_modules/pug-attrs\": {","isFullCredit":false},{"lineNumber":11274,"author":{"gitId":"-"},"content":" \"version\": \"2.0.4\",","isFullCredit":false},{"lineNumber":11275,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11276,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11277,"author":{"gitId":"-"},"content":" \"constantinople\": \"^3.0.1\",","isFullCredit":false},{"lineNumber":11278,"author":{"gitId":"-"},"content":" \"js-stringify\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":11279,"author":{"gitId":"-"},"content":" \"pug-runtime\": \"^2.0.5\"","isFullCredit":false},{"lineNumber":11280,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11281,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11282,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint/node_modules/pug-error\": {","isFullCredit":false},{"lineNumber":11283,"author":{"gitId":"-"},"content":" \"version\": \"1.3.3\",","isFullCredit":false},{"lineNumber":11284,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":11285,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11286,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint/node_modules/pug-lexer\": {","isFullCredit":false},{"lineNumber":11287,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":11288,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11289,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11290,"author":{"gitId":"-"},"content":" \"character-parser\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":11291,"author":{"gitId":"-"},"content":" \"is-expression\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":11292,"author":{"gitId":"-"},"content":" \"pug-error\": \"^1.3.3\"","isFullCredit":false},{"lineNumber":11293,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11294,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11295,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint/node_modules/pug-runtime\": {","isFullCredit":false},{"lineNumber":11296,"author":{"gitId":"-"},"content":" \"version\": \"2.0.5\",","isFullCredit":false},{"lineNumber":11297,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":11298,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11299,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint/node_modules/strip-json-comments\": {","isFullCredit":false},{"lineNumber":11300,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":11301,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11302,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11303,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":11304,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11305,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11306,"author":{"gitId":"-"},"content":" \"node_modules/pug-lint/node_modules/void-elements\": {","isFullCredit":false},{"lineNumber":11307,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":11308,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11309,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11310,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":11311,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11312,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11313,"author":{"gitId":"-"},"content":" \"node_modules/pug-load\": {","isFullCredit":false},{"lineNumber":11314,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":11315,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11316,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11317,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11318,"author":{"gitId":"-"},"content":" \"object-assign\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":11319,"author":{"gitId":"-"},"content":" \"pug-walk\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":11320,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11321,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11322,"author":{"gitId":"-"},"content":" \"node_modules/pug-parser\": {","isFullCredit":false},{"lineNumber":11323,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":11324,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11325,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11326,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11327,"author":{"gitId":"-"},"content":" \"pug-error\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":11328,"author":{"gitId":"-"},"content":" \"token-stream\": \"1.0.0\"","isFullCredit":false},{"lineNumber":11329,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11330,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11331,"author":{"gitId":"-"},"content":" \"node_modules/pug-plain-loader\": {","isFullCredit":false},{"lineNumber":11332,"author":{"gitId":"-"},"content":" \"version\": \"1.1.0\",","isFullCredit":false},{"lineNumber":11333,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11334,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11335,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11336,"author":{"gitId":"-"},"content":" \"loader-utils\": \"^1.1.0\"","isFullCredit":false},{"lineNumber":11337,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11338,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":11339,"author":{"gitId":"-"},"content":" \"pug\": \"^2.0.0 || ^3.0.0\"","isFullCredit":false},{"lineNumber":11340,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11341,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11342,"author":{"gitId":"-"},"content":" \"node_modules/pug-runtime\": {","isFullCredit":false},{"lineNumber":11343,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":11344,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11345,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":11346,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11347,"author":{"gitId":"-"},"content":" \"node_modules/pug-strip-comments\": {","isFullCredit":false},{"lineNumber":11348,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":11349,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11350,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11351,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11352,"author":{"gitId":"-"},"content":" \"pug-error\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":11353,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11354,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11355,"author":{"gitId":"-"},"content":" \"node_modules/pug-walk\": {","isFullCredit":false},{"lineNumber":11356,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":11357,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11358,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":11359,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11360,"author":{"gitId":"-"},"content":" \"node_modules/pump\": {","isFullCredit":false},{"lineNumber":11361,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":11362,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11363,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11364,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11365,"author":{"gitId":"-"},"content":" \"end-of-stream\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":11366,"author":{"gitId":"-"},"content":" \"once\": \"^1.3.1\"","isFullCredit":false},{"lineNumber":11367,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11368,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11369,"author":{"gitId":"-"},"content":" \"node_modules/punycode\": {","isFullCredit":false},{"lineNumber":11370,"author":{"gitId":"-"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":11371,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11372,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11373,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":11374,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11375,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11376,"author":{"gitId":"-"},"content":" \"node_modules/punycode.js\": {","isFullCredit":false},{"lineNumber":11377,"author":{"gitId":"-"},"content":" \"version\": \"2.3.1\",","isFullCredit":false},{"lineNumber":11378,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11379,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11380,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":11381,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11382,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11383,"author":{"gitId":"-"},"content":" \"node_modules/qs\": {","isFullCredit":false},{"lineNumber":11384,"author":{"gitId":"-"},"content":" \"version\": \"6.11.0\",","isFullCredit":false},{"lineNumber":11385,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11386,"author":{"gitId":"-"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":11387,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11388,"author":{"gitId":"-"},"content":" \"side-channel\": \"^1.0.4\"","isFullCredit":false},{"lineNumber":11389,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11390,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11391,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.6\"","isFullCredit":false},{"lineNumber":11392,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11393,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11394,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":11395,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11396,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11397,"author":{"gitId":"-"},"content":" \"node_modules/queue-microtask\": {","isFullCredit":false},{"lineNumber":11398,"author":{"gitId":"-"},"content":" \"version\": \"1.2.3\",","isFullCredit":false},{"lineNumber":11399,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11400,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":11401,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":11402,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":11403,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":11404,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11405,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":11406,"author":{"gitId":"-"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":11407,"author":{"gitId":"-"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":11408,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11409,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":11410,"author":{"gitId":"-"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":11411,"author":{"gitId":"-"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":11412,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11413,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":11414,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":11415,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11416,"author":{"gitId":"-"},"content":" \"node_modules/randombytes\": {","isFullCredit":false},{"lineNumber":11417,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":11418,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11419,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11420,"author":{"gitId":"-"},"content":" \"safe-buffer\": \"^5.1.0\"","isFullCredit":false},{"lineNumber":11421,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11422,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11423,"author":{"gitId":"-"},"content":" \"node_modules/range-parser\": {","isFullCredit":false},{"lineNumber":11424,"author":{"gitId":"-"},"content":" \"version\": \"1.2.1\",","isFullCredit":false},{"lineNumber":11425,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11426,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11427,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11428,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":11429,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11430,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11431,"author":{"gitId":"-"},"content":" \"node_modules/raw-body\": {","isFullCredit":false},{"lineNumber":11432,"author":{"gitId":"-"},"content":" \"version\": \"2.5.2\",","isFullCredit":false},{"lineNumber":11433,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11434,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11435,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11436,"author":{"gitId":"-"},"content":" \"bytes\": \"3.1.2\",","isFullCredit":false},{"lineNumber":11437,"author":{"gitId":"-"},"content":" \"http-errors\": \"2.0.0\",","isFullCredit":false},{"lineNumber":11438,"author":{"gitId":"-"},"content":" \"iconv-lite\": \"0.4.24\",","isFullCredit":false},{"lineNumber":11439,"author":{"gitId":"-"},"content":" \"unpipe\": \"1.0.0\"","isFullCredit":false},{"lineNumber":11440,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11441,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11442,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":11443,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11444,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11445,"author":{"gitId":"-"},"content":" \"node_modules/raw-body/node_modules/bytes\": {","isFullCredit":false},{"lineNumber":11446,"author":{"gitId":"-"},"content":" \"version\": \"3.1.2\",","isFullCredit":false},{"lineNumber":11447,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11448,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11449,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11450,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":11451,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11452,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11453,"author":{"gitId":"-"},"content":" \"node_modules/raw-body/node_modules/iconv-lite\": {","isFullCredit":false},{"lineNumber":11454,"author":{"gitId":"-"},"content":" \"version\": \"0.4.24\",","isFullCredit":false},{"lineNumber":11455,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11456,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11457,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11458,"author":{"gitId":"-"},"content":" \"safer-buffer\": \"\u003e\u003d 2.1.2 \u003c 3\"","isFullCredit":false},{"lineNumber":11459,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11460,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11461,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":11462,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11463,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11464,"author":{"gitId":"-"},"content":" \"node_modules/react\": {","isFullCredit":false},{"lineNumber":11465,"author":{"gitId":"-"},"content":" \"version\": \"16.14.0\",","isFullCredit":false},{"lineNumber":11466,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11467,"author":{"gitId":"-"},"content":" \"peer\": true,","isFullCredit":false},{"lineNumber":11468,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11469,"author":{"gitId":"-"},"content":" \"loose-envify\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":11470,"author":{"gitId":"-"},"content":" \"object-assign\": \"^4.1.1\",","isFullCredit":false},{"lineNumber":11471,"author":{"gitId":"-"},"content":" \"prop-types\": \"^15.6.2\"","isFullCredit":false},{"lineNumber":11472,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11473,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11474,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":11475,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11476,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11477,"author":{"gitId":"-"},"content":" \"node_modules/react-addons-shallow-compare\": {","isFullCredit":false},{"lineNumber":11478,"author":{"gitId":"-"},"content":" \"version\": \"15.6.3\",","isFullCredit":false},{"lineNumber":11479,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11480,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11481,"author":{"gitId":"-"},"content":" \"object-assign\": \"^4.1.0\"","isFullCredit":false},{"lineNumber":11482,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11483,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11484,"author":{"gitId":"-"},"content":" \"node_modules/react-is\": {","isFullCredit":false},{"lineNumber":11485,"author":{"gitId":"-"},"content":" \"version\": \"16.13.1\",","isFullCredit":false},{"lineNumber":11486,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11487,"author":{"gitId":"-"},"content":" \"peer\": true","isFullCredit":false},{"lineNumber":11488,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11489,"author":{"gitId":"-"},"content":" \"node_modules/read-pkg\": {","isFullCredit":false},{"lineNumber":11490,"author":{"gitId":"-"},"content":" \"version\": \"5.2.0\",","isFullCredit":false},{"lineNumber":11491,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11492,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11493,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11494,"author":{"gitId":"-"},"content":" \"@types/normalize-package-data\": \"^2.4.0\",","isFullCredit":false},{"lineNumber":11495,"author":{"gitId":"-"},"content":" \"normalize-package-data\": \"^2.5.0\",","isFullCredit":false},{"lineNumber":11496,"author":{"gitId":"-"},"content":" \"parse-json\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":11497,"author":{"gitId":"-"},"content":" \"type-fest\": \"^0.6.0\"","isFullCredit":false},{"lineNumber":11498,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11499,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11500,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":11501,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11502,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11503,"author":{"gitId":"-"},"content":" \"node_modules/read-pkg-up\": {","isFullCredit":false},{"lineNumber":11504,"author":{"gitId":"-"},"content":" \"version\": \"7.0.1\",","isFullCredit":false},{"lineNumber":11505,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11506,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11507,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11508,"author":{"gitId":"-"},"content":" \"find-up\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":11509,"author":{"gitId":"-"},"content":" \"read-pkg\": \"^5.2.0\",","isFullCredit":false},{"lineNumber":11510,"author":{"gitId":"-"},"content":" \"type-fest\": \"^0.8.1\"","isFullCredit":false},{"lineNumber":11511,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11512,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11513,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":11514,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11515,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11516,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":11517,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11518,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11519,"author":{"gitId":"-"},"content":" \"node_modules/read-pkg-up/node_modules/find-up\": {","isFullCredit":false},{"lineNumber":11520,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":11521,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11522,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11523,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11524,"author":{"gitId":"-"},"content":" \"locate-path\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":11525,"author":{"gitId":"-"},"content":" \"path-exists\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":11526,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11527,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11528,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":11529,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11530,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11531,"author":{"gitId":"-"},"content":" \"node_modules/read-pkg-up/node_modules/locate-path\": {","isFullCredit":false},{"lineNumber":11532,"author":{"gitId":"-"},"content":" \"version\": \"5.0.0\",","isFullCredit":false},{"lineNumber":11533,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11534,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11535,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11536,"author":{"gitId":"-"},"content":" \"p-locate\": \"^4.1.0\"","isFullCredit":false},{"lineNumber":11537,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11538,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11539,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":11540,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11541,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11542,"author":{"gitId":"-"},"content":" \"node_modules/read-pkg-up/node_modules/p-limit\": {","isFullCredit":false},{"lineNumber":11543,"author":{"gitId":"-"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":11544,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11545,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11546,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11547,"author":{"gitId":"-"},"content":" \"p-try\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":11548,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11549,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11550,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":11551,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11552,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11553,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":11554,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11555,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11556,"author":{"gitId":"-"},"content":" \"node_modules/read-pkg-up/node_modules/p-locate\": {","isFullCredit":false},{"lineNumber":11557,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":11558,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11559,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11560,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11561,"author":{"gitId":"-"},"content":" \"p-limit\": \"^2.2.0\"","isFullCredit":false},{"lineNumber":11562,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11563,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11564,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":11565,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11566,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11567,"author":{"gitId":"-"},"content":" \"node_modules/read-pkg-up/node_modules/type-fest\": {","isFullCredit":false},{"lineNumber":11568,"author":{"gitId":"-"},"content":" \"version\": \"0.8.1\",","isFullCredit":false},{"lineNumber":11569,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11570,"author":{"gitId":"-"},"content":" \"license\": \"(MIT OR CC0-1.0)\",","isFullCredit":false},{"lineNumber":11571,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11572,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":11573,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11574,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11575,"author":{"gitId":"-"},"content":" \"node_modules/read-pkg/node_modules/hosted-git-info\": {","isFullCredit":false},{"lineNumber":11576,"author":{"gitId":"-"},"content":" \"version\": \"2.8.9\",","isFullCredit":false},{"lineNumber":11577,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11578,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":11579,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11580,"author":{"gitId":"-"},"content":" \"node_modules/read-pkg/node_modules/normalize-package-data\": {","isFullCredit":false},{"lineNumber":11581,"author":{"gitId":"-"},"content":" \"version\": \"2.5.0\",","isFullCredit":false},{"lineNumber":11582,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11583,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":11584,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11585,"author":{"gitId":"-"},"content":" \"hosted-git-info\": \"^2.1.4\",","isFullCredit":false},{"lineNumber":11586,"author":{"gitId":"-"},"content":" \"resolve\": \"^1.10.0\",","isFullCredit":false},{"lineNumber":11587,"author":{"gitId":"-"},"content":" \"semver\": \"2 || 3 || 4 || 5\",","isFullCredit":false},{"lineNumber":11588,"author":{"gitId":"-"},"content":" \"validate-npm-package-license\": \"^3.0.1\"","isFullCredit":false},{"lineNumber":11589,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11590,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11591,"author":{"gitId":"-"},"content":" \"node_modules/read-pkg/node_modules/semver\": {","isFullCredit":false},{"lineNumber":11592,"author":{"gitId":"-"},"content":" \"version\": \"5.7.2\",","isFullCredit":false},{"lineNumber":11593,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11594,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":11595,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":11596,"author":{"gitId":"-"},"content":" \"semver\": \"bin/semver\"","isFullCredit":false},{"lineNumber":11597,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11598,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11599,"author":{"gitId":"-"},"content":" \"node_modules/read-pkg/node_modules/type-fest\": {","isFullCredit":false},{"lineNumber":11600,"author":{"gitId":"-"},"content":" \"version\": \"0.6.0\",","isFullCredit":false},{"lineNumber":11601,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11602,"author":{"gitId":"-"},"content":" \"license\": \"(MIT OR CC0-1.0)\",","isFullCredit":false},{"lineNumber":11603,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11604,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":11605,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11606,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11607,"author":{"gitId":"-"},"content":" \"node_modules/readable-stream\": {","isFullCredit":false},{"lineNumber":11608,"author":{"gitId":"-"},"content":" \"version\": \"2.3.7\",","isFullCredit":false},{"lineNumber":11609,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11610,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11611,"author":{"gitId":"-"},"content":" \"core-util-is\": \"~1.0.0\",","isFullCredit":false},{"lineNumber":11612,"author":{"gitId":"-"},"content":" \"inherits\": \"~2.0.3\",","isFullCredit":false},{"lineNumber":11613,"author":{"gitId":"-"},"content":" \"isarray\": \"~1.0.0\",","isFullCredit":false},{"lineNumber":11614,"author":{"gitId":"-"},"content":" \"process-nextick-args\": \"~2.0.0\",","isFullCredit":false},{"lineNumber":11615,"author":{"gitId":"-"},"content":" \"safe-buffer\": \"~5.1.1\",","isFullCredit":false},{"lineNumber":11616,"author":{"gitId":"-"},"content":" \"string_decoder\": \"~1.1.1\",","isFullCredit":false},{"lineNumber":11617,"author":{"gitId":"-"},"content":" \"util-deprecate\": \"~1.0.1\"","isFullCredit":false},{"lineNumber":11618,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11619,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11620,"author":{"gitId":"-"},"content":" \"node_modules/readdirp\": {","isFullCredit":false},{"lineNumber":11621,"author":{"gitId":"-"},"content":" \"version\": \"3.6.0\",","isFullCredit":false},{"lineNumber":11622,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11623,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11624,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11625,"author":{"gitId":"-"},"content":" \"picomatch\": \"^2.2.1\"","isFullCredit":false},{"lineNumber":11626,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11627,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11628,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8.10.0\"","isFullCredit":false},{"lineNumber":11629,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11630,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11631,"author":{"gitId":"-"},"content":" \"node_modules/regenerate\": {","isFullCredit":false},{"lineNumber":11632,"author":{"gitId":"-"},"content":" \"version\": \"1.4.2\",","isFullCredit":false},{"lineNumber":11633,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11634,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":11635,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11636,"author":{"gitId":"-"},"content":" \"node_modules/regenerate-unicode-properties\": {","isFullCredit":false},{"lineNumber":11637,"author":{"gitId":"-"},"content":" \"version\": \"10.1.0\",","isFullCredit":false},{"lineNumber":11638,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11639,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11640,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11641,"author":{"gitId":"-"},"content":" \"regenerate\": \"^1.4.2\"","isFullCredit":false},{"lineNumber":11642,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11643,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11644,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":11645,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11646,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11647,"author":{"gitId":"-"},"content":" \"node_modules/regenerator-runtime\": {","isFullCredit":false},{"lineNumber":11648,"author":{"gitId":"-"},"content":" \"version\": \"0.13.11\",","isFullCredit":false},{"lineNumber":11649,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11650,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":11651,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11652,"author":{"gitId":"-"},"content":" \"node_modules/regenerator-transform\": {","isFullCredit":false},{"lineNumber":11653,"author":{"gitId":"-"},"content":" \"version\": \"0.15.1\",","isFullCredit":false},{"lineNumber":11654,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11655,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11656,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11657,"author":{"gitId":"-"},"content":" \"@babel/runtime\": \"^7.8.4\"","isFullCredit":false},{"lineNumber":11658,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11659,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11660,"author":{"gitId":"-"},"content":" \"node_modules/regexp.prototype.flags\": {","isFullCredit":false},{"lineNumber":11661,"author":{"gitId":"-"},"content":" \"version\": \"1.5.2\",","isFullCredit":false},{"lineNumber":11662,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11663,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11664,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11665,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.6\",","isFullCredit":false},{"lineNumber":11666,"author":{"gitId":"-"},"content":" \"define-properties\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":11667,"author":{"gitId":"-"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":11668,"author":{"gitId":"-"},"content":" \"set-function-name\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":11669,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11670,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11671,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":11672,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11673,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11674,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":11675,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11676,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11677,"author":{"gitId":"-"},"content":" \"node_modules/regexpu-core\": {","isFullCredit":false},{"lineNumber":11678,"author":{"gitId":"-"},"content":" \"version\": \"5.2.2\",","isFullCredit":false},{"lineNumber":11679,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11680,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11681,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11682,"author":{"gitId":"-"},"content":" \"regenerate\": \"^1.4.2\",","isFullCredit":false},{"lineNumber":11683,"author":{"gitId":"-"},"content":" \"regenerate-unicode-properties\": \"^10.1.0\",","isFullCredit":false},{"lineNumber":11684,"author":{"gitId":"-"},"content":" \"regjsgen\": \"^0.7.1\",","isFullCredit":false},{"lineNumber":11685,"author":{"gitId":"-"},"content":" \"regjsparser\": \"^0.9.1\",","isFullCredit":false},{"lineNumber":11686,"author":{"gitId":"-"},"content":" \"unicode-match-property-ecmascript\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":11687,"author":{"gitId":"-"},"content":" \"unicode-match-property-value-ecmascript\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":11688,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11689,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11690,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":11691,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11692,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11693,"author":{"gitId":"-"},"content":" \"node_modules/regjsgen\": {","isFullCredit":false},{"lineNumber":11694,"author":{"gitId":"-"},"content":" \"version\": \"0.7.1\",","isFullCredit":false},{"lineNumber":11695,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11696,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":11697,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11698,"author":{"gitId":"-"},"content":" \"node_modules/regjsparser\": {","isFullCredit":false},{"lineNumber":11699,"author":{"gitId":"-"},"content":" \"version\": \"0.9.1\",","isFullCredit":false},{"lineNumber":11700,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11701,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":11702,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11703,"author":{"gitId":"-"},"content":" \"jsesc\": \"~0.5.0\"","isFullCredit":false},{"lineNumber":11704,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11705,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":11706,"author":{"gitId":"-"},"content":" \"regjsparser\": \"bin/parser\"","isFullCredit":false},{"lineNumber":11707,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11708,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11709,"author":{"gitId":"-"},"content":" \"node_modules/regjsparser/node_modules/jsesc\": {","isFullCredit":false},{"lineNumber":11710,"author":{"gitId":"-"},"content":" \"version\": \"0.5.0\",","isFullCredit":false},{"lineNumber":11711,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11712,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":11713,"author":{"gitId":"-"},"content":" \"jsesc\": \"bin/jsesc\"","isFullCredit":false},{"lineNumber":11714,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11715,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11716,"author":{"gitId":"-"},"content":" \"node_modules/relateurl\": {","isFullCredit":false},{"lineNumber":11717,"author":{"gitId":"-"},"content":" \"version\": \"0.2.7\",","isFullCredit":false},{"lineNumber":11718,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11719,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11720,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11721,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.10\"","isFullCredit":false},{"lineNumber":11722,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11723,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11724,"author":{"gitId":"-"},"content":" \"node_modules/renderkid\": {","isFullCredit":false},{"lineNumber":11725,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":11726,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11727,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11728,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11729,"author":{"gitId":"-"},"content":" \"css-select\": \"^4.1.3\",","isFullCredit":false},{"lineNumber":11730,"author":{"gitId":"-"},"content":" \"dom-converter\": \"^0.2.0\",","isFullCredit":false},{"lineNumber":11731,"author":{"gitId":"-"},"content":" \"htmlparser2\": \"^6.1.0\",","isFullCredit":false},{"lineNumber":11732,"author":{"gitId":"-"},"content":" \"lodash\": \"^4.17.21\",","isFullCredit":false},{"lineNumber":11733,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":11734,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11735,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11736,"author":{"gitId":"-"},"content":" \"node_modules/renderkid/node_modules/css-select\": {","isFullCredit":false},{"lineNumber":11737,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":11738,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11739,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":11740,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11741,"author":{"gitId":"-"},"content":" \"boolbase\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":11742,"author":{"gitId":"-"},"content":" \"css-what\": \"^6.0.1\",","isFullCredit":false},{"lineNumber":11743,"author":{"gitId":"-"},"content":" \"domhandler\": \"^4.3.1\",","isFullCredit":false},{"lineNumber":11744,"author":{"gitId":"-"},"content":" \"domutils\": \"^2.8.0\",","isFullCredit":false},{"lineNumber":11745,"author":{"gitId":"-"},"content":" \"nth-check\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":11746,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11747,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11748,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/fb55\"","isFullCredit":false},{"lineNumber":11749,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11750,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11751,"author":{"gitId":"-"},"content":" \"node_modules/renderkid/node_modules/dom-serializer\": {","isFullCredit":false},{"lineNumber":11752,"author":{"gitId":"-"},"content":" \"version\": \"1.4.1\",","isFullCredit":false},{"lineNumber":11753,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11754,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11755,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11756,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":11757,"author":{"gitId":"-"},"content":" \"domhandler\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":11758,"author":{"gitId":"-"},"content":" \"entities\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":11759,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11760,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11761,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/cheeriojs/dom-serializer?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":11762,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11763,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11764,"author":{"gitId":"-"},"content":" \"node_modules/renderkid/node_modules/domhandler\": {","isFullCredit":false},{"lineNumber":11765,"author":{"gitId":"-"},"content":" \"version\": \"4.3.1\",","isFullCredit":false},{"lineNumber":11766,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11767,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":11768,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11769,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.2.0\"","isFullCredit":false},{"lineNumber":11770,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11771,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11772,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 4\"","isFullCredit":false},{"lineNumber":11773,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11774,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11775,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/fb55/domhandler?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":11776,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11777,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11778,"author":{"gitId":"-"},"content":" \"node_modules/renderkid/node_modules/domutils\": {","isFullCredit":false},{"lineNumber":11779,"author":{"gitId":"-"},"content":" \"version\": \"2.8.0\",","isFullCredit":false},{"lineNumber":11780,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11781,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":11782,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11783,"author":{"gitId":"-"},"content":" \"dom-serializer\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":11784,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.2.0\",","isFullCredit":false},{"lineNumber":11785,"author":{"gitId":"-"},"content":" \"domhandler\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":11786,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11787,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11788,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/fb55/domutils?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":11789,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11790,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11791,"author":{"gitId":"-"},"content":" \"node_modules/renderkid/node_modules/entities\": {","isFullCredit":false},{"lineNumber":11792,"author":{"gitId":"-"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":11793,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11794,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":11795,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11796,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/fb55/entities?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":11797,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11798,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11799,"author":{"gitId":"-"},"content":" \"node_modules/renderkid/node_modules/htmlparser2\": {","isFullCredit":false},{"lineNumber":11800,"author":{"gitId":"-"},"content":" \"version\": \"6.1.0\",","isFullCredit":false},{"lineNumber":11801,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11802,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":11803,"author":{"gitId":"-"},"content":" \"https://github.com/fb55/htmlparser2?sponsor\u003d1\",","isFullCredit":false},{"lineNumber":11804,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":11805,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":11806,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/fb55\"","isFullCredit":false},{"lineNumber":11807,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11808,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":11809,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11810,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11811,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":11812,"author":{"gitId":"-"},"content":" \"domhandler\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":11813,"author":{"gitId":"-"},"content":" \"domutils\": \"^2.5.2\",","isFullCredit":false},{"lineNumber":11814,"author":{"gitId":"-"},"content":" \"entities\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":11815,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11816,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11817,"author":{"gitId":"-"},"content":" \"node_modules/require-directory\": {","isFullCredit":false},{"lineNumber":11818,"author":{"gitId":"-"},"content":" \"version\": \"2.1.1\",","isFullCredit":false},{"lineNumber":11819,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11820,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11821,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11822,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":11823,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11824,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11825,"author":{"gitId":"-"},"content":" \"node_modules/require-from-string\": {","isFullCredit":false},{"lineNumber":11826,"author":{"gitId":"-"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":11827,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11828,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11829,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11830,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":11831,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11832,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11833,"author":{"gitId":"-"},"content":" \"node_modules/requires-port\": {","isFullCredit":false},{"lineNumber":11834,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":11835,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11836,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":11837,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11838,"author":{"gitId":"-"},"content":" \"node_modules/resolve\": {","isFullCredit":false},{"lineNumber":11839,"author":{"gitId":"-"},"content":" \"version\": \"1.22.8\",","isFullCredit":false},{"lineNumber":11840,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11841,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11842,"author":{"gitId":"-"},"content":" \"is-core-module\": \"^2.13.0\",","isFullCredit":false},{"lineNumber":11843,"author":{"gitId":"-"},"content":" \"path-parse\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":11844,"author":{"gitId":"-"},"content":" \"supports-preserve-symlinks-flag\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":11845,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11846,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":11847,"author":{"gitId":"-"},"content":" \"resolve\": \"bin/resolve\"","isFullCredit":false},{"lineNumber":11848,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11849,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11850,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":11851,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11852,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11853,"author":{"gitId":"-"},"content":" \"node_modules/resolve-from\": {","isFullCredit":false},{"lineNumber":11854,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":11855,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11856,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11857,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11858,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":11859,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11860,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11861,"author":{"gitId":"-"},"content":" \"node_modules/restore-cursor\": {","isFullCredit":false},{"lineNumber":11862,"author":{"gitId":"-"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":11863,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11864,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11865,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11866,"author":{"gitId":"-"},"content":" \"onetime\": \"^5.1.0\",","isFullCredit":false},{"lineNumber":11867,"author":{"gitId":"-"},"content":" \"signal-exit\": \"^3.0.2\"","isFullCredit":false},{"lineNumber":11868,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11869,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11870,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":11871,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11872,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11873,"author":{"gitId":"-"},"content":" \"node_modules/reusify\": {","isFullCredit":false},{"lineNumber":11874,"author":{"gitId":"-"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":11875,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11876,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11877,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11878,"author":{"gitId":"-"},"content":" \"iojs\": \"\u003e\u003d1.0.0\",","isFullCredit":false},{"lineNumber":11879,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":11880,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11881,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11882,"author":{"gitId":"-"},"content":" \"node_modules/rimraf\": {","isFullCredit":false},{"lineNumber":11883,"author":{"gitId":"-"},"content":" \"version\": \"3.0.2\",","isFullCredit":false},{"lineNumber":11884,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11885,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":11886,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11887,"author":{"gitId":"-"},"content":" \"glob\": \"^7.1.3\"","isFullCredit":false},{"lineNumber":11888,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11889,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":11890,"author":{"gitId":"-"},"content":" \"rimraf\": \"bin.js\"","isFullCredit":false},{"lineNumber":11891,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11892,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11893,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/isaacs\"","isFullCredit":false},{"lineNumber":11894,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11895,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11896,"author":{"gitId":"-"},"content":" \"node_modules/run-parallel\": {","isFullCredit":false},{"lineNumber":11897,"author":{"gitId":"-"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":11898,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11899,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":11900,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":11901,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":11902,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/feross\"","isFullCredit":false},{"lineNumber":11903,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11904,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":11905,"author":{"gitId":"-"},"content":" \"type\": \"patreon\",","isFullCredit":false},{"lineNumber":11906,"author":{"gitId":"-"},"content":" \"url\": \"https://www.patreon.com/feross\"","isFullCredit":false},{"lineNumber":11907,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11908,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":11909,"author":{"gitId":"-"},"content":" \"type\": \"consulting\",","isFullCredit":false},{"lineNumber":11910,"author":{"gitId":"-"},"content":" \"url\": \"https://feross.org/support\"","isFullCredit":false},{"lineNumber":11911,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11912,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":11913,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11914,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11915,"author":{"gitId":"-"},"content":" \"queue-microtask\": \"^1.2.2\"","isFullCredit":false},{"lineNumber":11916,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11917,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11918,"author":{"gitId":"-"},"content":" \"node_modules/safe-array-concat\": {","isFullCredit":false},{"lineNumber":11919,"author":{"gitId":"-"},"content":" \"version\": \"1.1.2\",","isFullCredit":false},{"lineNumber":11920,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11921,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11922,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11923,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":11924,"author":{"gitId":"-"},"content":" \"get-intrinsic\": \"^1.2.4\",","isFullCredit":false},{"lineNumber":11925,"author":{"gitId":"-"},"content":" \"has-symbols\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":11926,"author":{"gitId":"-"},"content":" \"isarray\": \"^2.0.5\"","isFullCredit":false},{"lineNumber":11927,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":11928,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11929,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.4\"","isFullCredit":false},{"lineNumber":11930,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11931,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11932,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":11933,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":11934,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":11935,"author":{"gitId":"-"},"content":" \"node_modules/safe-array-concat/node_modules/isarray\": {","isFullCredit":false},{"lineNumber":11936,"author":{"gitId":"-"},"content":" \"version\": \"2.0.5\",","isFullCredit":false},{"lineNumber":11937,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11938,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":11939,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":11940,"author":{"gitId":"-"},"content":" \"node_modules/safe-buffer\": {","isFullCredit":false},{"lineNumber":11941,"author":{"gitId":"-"},"content":" \"version\": \"5.1.2\",","isFullCredit":false},{"lineNumber":11942,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":11943,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11944,"author":{"gitId":"-"},"content":" \"node_modules/safe-regex-test\": {","isFullCredit":false},{"lineNumber":11945,"author":{"gitId":"-"},"content":" \"version\": \"1.0.3\",","isFullCredit":false},{"lineNumber":11946,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11947,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11948,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11949,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.6\",","isFullCredit":false},{"lineNumber":11950,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":11951,"author":{"gitId":"-"},"content":" \"is-regex\": \"^1.1.4\"","isFullCredit":false},{"lineNumber":11952,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11953,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11954,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":11955,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":11956,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11957,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":11958,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11959,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11960,"author":{"gitId":"-"},"content":" \"node_modules/safer-buffer\": {","isFullCredit":false},{"lineNumber":11961,"author":{"gitId":"-"},"content":" \"version\": \"2.1.2\",","isFullCredit":false},{"lineNumber":11962,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11963,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":11964,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11965,"author":{"gitId":"-"},"content":" \"node_modules/sass\": {","isFullCredit":false},{"lineNumber":11966,"author":{"gitId":"-"},"content":" \"version\": \"1.72.0\",","isFullCredit":false},{"lineNumber":11967,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11968,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":11969,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11970,"author":{"gitId":"-"},"content":" \"chokidar\": \"\u003e\u003d3.0.0 \u003c4.0.0\",","isFullCredit":false},{"lineNumber":11971,"author":{"gitId":"-"},"content":" \"immutable\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":11972,"author":{"gitId":"-"},"content":" \"source-map-js\": \"\u003e\u003d0.6.2 \u003c2.0.0\"","isFullCredit":false},{"lineNumber":11973,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11974,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":11975,"author":{"gitId":"-"},"content":" \"sass\": \"sass.js\"","isFullCredit":false},{"lineNumber":11976,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11977,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11978,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d14.0.0\"","isFullCredit":false},{"lineNumber":11979,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":11980,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11981,"author":{"gitId":"-"},"content":" \"node_modules/sass-loader\": {","isFullCredit":false},{"lineNumber":11982,"author":{"gitId":"-"},"content":" \"version\": \"14.2.1\",","isFullCredit":false},{"lineNumber":11983,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/sass-loader/-/sass-loader-14.2.1.tgz\",","isFullCredit":false},{"lineNumber":11984,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-G0VcnMYU18a4N7VoNDegg2OuMjYtxnqzQWARVWCIVSZwJeiL9kg8QMsuIZOplsJgTzZLF6jGxI3AClj8I9nRdQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":11985,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":11986,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":11987,"author":{"gitId":"-"},"content":" \"neo-async\": \"^2.6.2\"","isFullCredit":false},{"lineNumber":11988,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11989,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":11990,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 18.12.0\"","isFullCredit":false},{"lineNumber":11991,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11992,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":11993,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":11994,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":11995,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":11996,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":11997,"author":{"gitId":"-"},"content":" \"@rspack/core\": \"0.x || 1.x\",","isFullCredit":false},{"lineNumber":11998,"author":{"gitId":"-"},"content":" \"node-sass\": \"^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0\",","isFullCredit":false},{"lineNumber":11999,"author":{"gitId":"-"},"content":" \"sass\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":12000,"author":{"gitId":"-"},"content":" \"sass-embedded\": \"*\",","isFullCredit":false},{"lineNumber":12001,"author":{"gitId":"-"},"content":" \"webpack\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":12002,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12003,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":12004,"author":{"gitId":"-"},"content":" \"@rspack/core\": {","isFullCredit":false},{"lineNumber":12005,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":12006,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12007,"author":{"gitId":"-"},"content":" \"node-sass\": {","isFullCredit":false},{"lineNumber":12008,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":12009,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12010,"author":{"gitId":"-"},"content":" \"sass\": {","isFullCredit":false},{"lineNumber":12011,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":12012,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12013,"author":{"gitId":"-"},"content":" \"sass-embedded\": {","isFullCredit":false},{"lineNumber":12014,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":12015,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12016,"author":{"gitId":"-"},"content":" \"webpack\": {","isFullCredit":false},{"lineNumber":12017,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":12018,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12019,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12020,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12021,"author":{"gitId":"-"},"content":" \"node_modules/schema-utils\": {","isFullCredit":false},{"lineNumber":12022,"author":{"gitId":"-"},"content":" \"version\": \"2.7.1\",","isFullCredit":false},{"lineNumber":12023,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12024,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12025,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12026,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.5\",","isFullCredit":false},{"lineNumber":12027,"author":{"gitId":"-"},"content":" \"ajv\": \"^6.12.4\",","isFullCredit":false},{"lineNumber":12028,"author":{"gitId":"-"},"content":" \"ajv-keywords\": \"^3.5.2\"","isFullCredit":false},{"lineNumber":12029,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12030,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12031,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 8.9.0\"","isFullCredit":false},{"lineNumber":12032,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12033,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12034,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":12035,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":12036,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12037,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12038,"author":{"gitId":"-"},"content":" \"node_modules/seedrandom\": {","isFullCredit":false},{"lineNumber":12039,"author":{"gitId":"-"},"content":" \"version\": \"3.0.5\",","isFullCredit":false},{"lineNumber":12040,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":12041,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12042,"author":{"gitId":"-"},"content":" \"node_modules/select-hose\": {","isFullCredit":false},{"lineNumber":12043,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":12044,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12045,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":12046,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12047,"author":{"gitId":"-"},"content":" \"node_modules/selfsigned\": {","isFullCredit":false},{"lineNumber":12048,"author":{"gitId":"-"},"content":" \"version\": \"2.1.1\",","isFullCredit":false},{"lineNumber":12049,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12050,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12051,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12052,"author":{"gitId":"-"},"content":" \"node-forge\": \"^1\"","isFullCredit":false},{"lineNumber":12053,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12054,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12055,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":12056,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12057,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12058,"author":{"gitId":"-"},"content":" \"node_modules/semver\": {","isFullCredit":false},{"lineNumber":12059,"author":{"gitId":"-"},"content":" \"version\": \"6.3.1\",","isFullCredit":false},{"lineNumber":12060,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12061,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":12062,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":12063,"author":{"gitId":"-"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":12064,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12065,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12066,"author":{"gitId":"-"},"content":" \"node_modules/send\": {","isFullCredit":false},{"lineNumber":12067,"author":{"gitId":"-"},"content":" \"version\": \"0.18.0\",","isFullCredit":false},{"lineNumber":12068,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12069,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12070,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12071,"author":{"gitId":"-"},"content":" \"debug\": \"2.6.9\",","isFullCredit":false},{"lineNumber":12072,"author":{"gitId":"-"},"content":" \"depd\": \"2.0.0\",","isFullCredit":false},{"lineNumber":12073,"author":{"gitId":"-"},"content":" \"destroy\": \"1.2.0\",","isFullCredit":false},{"lineNumber":12074,"author":{"gitId":"-"},"content":" \"encodeurl\": \"~1.0.2\",","isFullCredit":false},{"lineNumber":12075,"author":{"gitId":"-"},"content":" \"escape-html\": \"~1.0.3\",","isFullCredit":false},{"lineNumber":12076,"author":{"gitId":"-"},"content":" \"etag\": \"~1.8.1\",","isFullCredit":false},{"lineNumber":12077,"author":{"gitId":"-"},"content":" \"fresh\": \"0.5.2\",","isFullCredit":false},{"lineNumber":12078,"author":{"gitId":"-"},"content":" \"http-errors\": \"2.0.0\",","isFullCredit":false},{"lineNumber":12079,"author":{"gitId":"-"},"content":" \"mime\": \"1.6.0\",","isFullCredit":false},{"lineNumber":12080,"author":{"gitId":"-"},"content":" \"ms\": \"2.1.3\",","isFullCredit":false},{"lineNumber":12081,"author":{"gitId":"-"},"content":" \"on-finished\": \"2.4.1\",","isFullCredit":false},{"lineNumber":12082,"author":{"gitId":"-"},"content":" \"range-parser\": \"~1.2.1\",","isFullCredit":false},{"lineNumber":12083,"author":{"gitId":"-"},"content":" \"statuses\": \"2.0.1\"","isFullCredit":false},{"lineNumber":12084,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12085,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12086,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8.0\"","isFullCredit":false},{"lineNumber":12087,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12088,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12089,"author":{"gitId":"-"},"content":" \"node_modules/send/node_modules/debug\": {","isFullCredit":false},{"lineNumber":12090,"author":{"gitId":"-"},"content":" \"version\": \"2.6.9\",","isFullCredit":false},{"lineNumber":12091,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12092,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12093,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12094,"author":{"gitId":"-"},"content":" \"ms\": \"2.0.0\"","isFullCredit":false},{"lineNumber":12095,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12096,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12097,"author":{"gitId":"-"},"content":" \"node_modules/send/node_modules/debug/node_modules/ms\": {","isFullCredit":false},{"lineNumber":12098,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":12099,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12100,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":12101,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12102,"author":{"gitId":"-"},"content":" \"node_modules/send/node_modules/depd\": {","isFullCredit":false},{"lineNumber":12103,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":12104,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12105,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12106,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12107,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":12108,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12109,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12110,"author":{"gitId":"-"},"content":" \"node_modules/send/node_modules/ms\": {","isFullCredit":false},{"lineNumber":12111,"author":{"gitId":"-"},"content":" \"version\": \"2.1.3\",","isFullCredit":false},{"lineNumber":12112,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12113,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":12114,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12115,"author":{"gitId":"-"},"content":" \"node_modules/serialize-javascript\": {","isFullCredit":false},{"lineNumber":12116,"author":{"gitId":"-"},"content":" \"version\": \"6.0.1\",","isFullCredit":false},{"lineNumber":12117,"author":{"gitId":"-"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":12118,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12119,"author":{"gitId":"-"},"content":" \"randombytes\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":12120,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12121,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12122,"author":{"gitId":"-"},"content":" \"node_modules/serve-index\": {","isFullCredit":false},{"lineNumber":12123,"author":{"gitId":"-"},"content":" \"version\": \"1.9.1\",","isFullCredit":false},{"lineNumber":12124,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12125,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12126,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12127,"author":{"gitId":"-"},"content":" \"accepts\": \"~1.3.4\",","isFullCredit":false},{"lineNumber":12128,"author":{"gitId":"-"},"content":" \"batch\": \"0.6.1\",","isFullCredit":false},{"lineNumber":12129,"author":{"gitId":"-"},"content":" \"debug\": \"2.6.9\",","isFullCredit":false},{"lineNumber":12130,"author":{"gitId":"-"},"content":" \"escape-html\": \"~1.0.3\",","isFullCredit":false},{"lineNumber":12131,"author":{"gitId":"-"},"content":" \"http-errors\": \"~1.6.2\",","isFullCredit":false},{"lineNumber":12132,"author":{"gitId":"-"},"content":" \"mime-types\": \"~2.1.17\",","isFullCredit":false},{"lineNumber":12133,"author":{"gitId":"-"},"content":" \"parseurl\": \"~1.3.2\"","isFullCredit":false},{"lineNumber":12134,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12135,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12136,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8.0\"","isFullCredit":false},{"lineNumber":12137,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12138,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12139,"author":{"gitId":"-"},"content":" \"node_modules/serve-index/node_modules/debug\": {","isFullCredit":false},{"lineNumber":12140,"author":{"gitId":"-"},"content":" \"version\": \"2.6.9\",","isFullCredit":false},{"lineNumber":12141,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12142,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12143,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12144,"author":{"gitId":"-"},"content":" \"ms\": \"2.0.0\"","isFullCredit":false},{"lineNumber":12145,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12146,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12147,"author":{"gitId":"-"},"content":" \"node_modules/serve-index/node_modules/http-errors\": {","isFullCredit":false},{"lineNumber":12148,"author":{"gitId":"-"},"content":" \"version\": \"1.6.3\",","isFullCredit":false},{"lineNumber":12149,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12150,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12151,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12152,"author":{"gitId":"-"},"content":" \"depd\": \"~1.1.2\",","isFullCredit":false},{"lineNumber":12153,"author":{"gitId":"-"},"content":" \"inherits\": \"2.0.3\",","isFullCredit":false},{"lineNumber":12154,"author":{"gitId":"-"},"content":" \"setprototypeof\": \"1.1.0\",","isFullCredit":false},{"lineNumber":12155,"author":{"gitId":"-"},"content":" \"statuses\": \"\u003e\u003d 1.4.0 \u003c 2\"","isFullCredit":false},{"lineNumber":12156,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12157,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12158,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":12159,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12160,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12161,"author":{"gitId":"-"},"content":" \"node_modules/serve-index/node_modules/inherits\": {","isFullCredit":false},{"lineNumber":12162,"author":{"gitId":"-"},"content":" \"version\": \"2.0.3\",","isFullCredit":false},{"lineNumber":12163,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12164,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":12165,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12166,"author":{"gitId":"-"},"content":" \"node_modules/serve-index/node_modules/ms\": {","isFullCredit":false},{"lineNumber":12167,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":12168,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12169,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":12170,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12171,"author":{"gitId":"-"},"content":" \"node_modules/serve-index/node_modules/setprototypeof\": {","isFullCredit":false},{"lineNumber":12172,"author":{"gitId":"-"},"content":" \"version\": \"1.1.0\",","isFullCredit":false},{"lineNumber":12173,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12174,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":12175,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12176,"author":{"gitId":"-"},"content":" \"node_modules/serve-index/node_modules/statuses\": {","isFullCredit":false},{"lineNumber":12177,"author":{"gitId":"-"},"content":" \"version\": \"1.5.0\",","isFullCredit":false},{"lineNumber":12178,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12179,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12180,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12181,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":12182,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12183,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12184,"author":{"gitId":"-"},"content":" \"node_modules/serve-static\": {","isFullCredit":false},{"lineNumber":12185,"author":{"gitId":"-"},"content":" \"version\": \"1.15.0\",","isFullCredit":false},{"lineNumber":12186,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12187,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12188,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12189,"author":{"gitId":"-"},"content":" \"encodeurl\": \"~1.0.2\",","isFullCredit":false},{"lineNumber":12190,"author":{"gitId":"-"},"content":" \"escape-html\": \"~1.0.3\",","isFullCredit":false},{"lineNumber":12191,"author":{"gitId":"-"},"content":" \"parseurl\": \"~1.3.3\",","isFullCredit":false},{"lineNumber":12192,"author":{"gitId":"-"},"content":" \"send\": \"0.18.0\"","isFullCredit":false},{"lineNumber":12193,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12194,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12195,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8.0\"","isFullCredit":false},{"lineNumber":12196,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12197,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12198,"author":{"gitId":"sopa301"},"content":" \"node_modules/set-function-length\": {","isFullCredit":false},{"lineNumber":12199,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.2\",","isFullCredit":false},{"lineNumber":12200,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12201,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12202,"author":{"gitId":"sopa301"},"content":" \"define-data-property\": \"^1.1.4\",","isFullCredit":false},{"lineNumber":12203,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":12204,"author":{"gitId":"sopa301"},"content":" \"function-bind\": \"^1.1.2\",","isFullCredit":false},{"lineNumber":12205,"author":{"gitId":"sopa301"},"content":" \"get-intrinsic\": \"^1.2.4\",","isFullCredit":false},{"lineNumber":12206,"author":{"gitId":"sopa301"},"content":" \"gopd\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":12207,"author":{"gitId":"sopa301"},"content":" \"has-property-descriptors\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":12208,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12209,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12210,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":12211,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":12212,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12213,"author":{"gitId":"sopa301"},"content":" \"node_modules/set-function-name\": {","isFullCredit":false},{"lineNumber":12214,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":12215,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12216,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12217,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12218,"author":{"gitId":"sopa301"},"content":" \"define-data-property\": \"^1.1.4\",","isFullCredit":false},{"lineNumber":12219,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":12220,"author":{"gitId":"sopa301"},"content":" \"functions-have-names\": \"^1.2.3\",","isFullCredit":false},{"lineNumber":12221,"author":{"gitId":"sopa301"},"content":" \"has-property-descriptors\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":12222,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12223,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12224,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":12225,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":12226,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12227,"author":{"gitId":"-"},"content":" \"node_modules/setimmediate\": {","isFullCredit":false},{"lineNumber":12228,"author":{"gitId":"-"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":12229,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":12230,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12231,"author":{"gitId":"-"},"content":" \"node_modules/setprototypeof\": {","isFullCredit":false},{"lineNumber":12232,"author":{"gitId":"-"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":12233,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12234,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":12235,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12236,"author":{"gitId":"-"},"content":" \"node_modules/shallow-clone\": {","isFullCredit":false},{"lineNumber":12237,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":12238,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12239,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12240,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12241,"author":{"gitId":"-"},"content":" \"kind-of\": \"^6.0.2\"","isFullCredit":false},{"lineNumber":12242,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12243,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12244,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":12245,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12246,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12247,"author":{"gitId":"-"},"content":" \"node_modules/shebang-command\": {","isFullCredit":false},{"lineNumber":12248,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":12249,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12250,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12251,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12252,"author":{"gitId":"-"},"content":" \"shebang-regex\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":12253,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12254,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12255,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":12256,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12257,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12258,"author":{"gitId":"-"},"content":" \"node_modules/shebang-regex\": {","isFullCredit":false},{"lineNumber":12259,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":12260,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12261,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12262,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12263,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":12264,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12265,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12266,"author":{"gitId":"-"},"content":" \"node_modules/shell-quote\": {","isFullCredit":false},{"lineNumber":12267,"author":{"gitId":"-"},"content":" \"version\": \"1.7.4\",","isFullCredit":false},{"lineNumber":12268,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12269,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12270,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12271,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":12272,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12273,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12274,"author":{"gitId":"-"},"content":" \"node_modules/side-channel\": {","isFullCredit":false},{"lineNumber":12275,"author":{"gitId":"-"},"content":" \"version\": \"1.0.4\",","isFullCredit":false},{"lineNumber":12276,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12277,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12278,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12279,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":12280,"author":{"gitId":"-"},"content":" \"get-intrinsic\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":12281,"author":{"gitId":"-"},"content":" \"object-inspect\": \"^1.9.0\"","isFullCredit":false},{"lineNumber":12282,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12283,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12284,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":12285,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12286,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12287,"author":{"gitId":"-"},"content":" \"node_modules/signal-exit\": {","isFullCredit":false},{"lineNumber":12288,"author":{"gitId":"-"},"content":" \"version\": \"3.0.7\",","isFullCredit":false},{"lineNumber":12289,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12290,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":12291,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12292,"author":{"gitId":"-"},"content":" \"node_modules/sirv\": {","isFullCredit":false},{"lineNumber":12293,"author":{"gitId":"-"},"content":" \"version\": \"1.0.19\",","isFullCredit":false},{"lineNumber":12294,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12295,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12296,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12297,"author":{"gitId":"-"},"content":" \"@polka/url\": \"^1.0.0-next.20\",","isFullCredit":false},{"lineNumber":12298,"author":{"gitId":"-"},"content":" \"mrmime\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":12299,"author":{"gitId":"-"},"content":" \"totalist\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":12300,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12301,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12302,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10\"","isFullCredit":false},{"lineNumber":12303,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12304,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12305,"author":{"gitId":"-"},"content":" \"node_modules/slash\": {","isFullCredit":false},{"lineNumber":12306,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":12307,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12308,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12309,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12310,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":12311,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12312,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12313,"author":{"gitId":"-"},"content":" \"node_modules/slice-ansi\": {","isFullCredit":false},{"lineNumber":12314,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":12315,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12316,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12317,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12318,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":12319,"author":{"gitId":"-"},"content":" \"astral-regex\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":12320,"author":{"gitId":"-"},"content":" \"is-fullwidth-code-point\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":12321,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12322,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12323,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":12324,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12325,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12326,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/slice-ansi?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":12327,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12328,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12329,"author":{"gitId":"-"},"content":" \"node_modules/slice-ansi/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":12330,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":12331,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12332,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12333,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12334,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":12335,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12336,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12337,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":12338,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12339,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12340,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":12341,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12342,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12343,"author":{"gitId":"-"},"content":" \"node_modules/slice-ansi/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":12344,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":12345,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12346,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12347,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12348,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":12349,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12350,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12351,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":12352,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12353,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12354,"author":{"gitId":"-"},"content":" \"node_modules/slice-ansi/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":12355,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":12356,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12357,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":12358,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12359,"author":{"gitId":"-"},"content":" \"node_modules/sockjs\": {","isFullCredit":false},{"lineNumber":12360,"author":{"gitId":"-"},"content":" \"version\": \"0.3.24\",","isFullCredit":false},{"lineNumber":12361,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12362,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12363,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12364,"author":{"gitId":"-"},"content":" \"faye-websocket\": \"^0.11.3\",","isFullCredit":false},{"lineNumber":12365,"author":{"gitId":"-"},"content":" \"uuid\": \"^8.3.2\",","isFullCredit":false},{"lineNumber":12366,"author":{"gitId":"-"},"content":" \"websocket-driver\": \"^0.7.4\"","isFullCredit":false},{"lineNumber":12367,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12368,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12369,"author":{"gitId":"-"},"content":" \"node_modules/sockjs/node_modules/uuid\": {","isFullCredit":false},{"lineNumber":12370,"author":{"gitId":"-"},"content":" \"version\": \"8.3.2\",","isFullCredit":false},{"lineNumber":12371,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12372,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12373,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":12374,"author":{"gitId":"-"},"content":" \"uuid\": \"dist/bin/uuid\"","isFullCredit":false},{"lineNumber":12375,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12376,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12377,"author":{"gitId":"sopa301"},"content":" \"node_modules/source-map\": {","isFullCredit":false},{"lineNumber":12378,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.6.1\",","isFullCredit":false},{"lineNumber":12379,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":12380,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12381,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":12382,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12383,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12384,"author":{"gitId":"-"},"content":" \"node_modules/source-map-js\": {","isFullCredit":false},{"lineNumber":12385,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":12386,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":12387,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12388,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":12389,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12390,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12391,"author":{"gitId":"-"},"content":" \"node_modules/source-map-support\": {","isFullCredit":false},{"lineNumber":12392,"author":{"gitId":"-"},"content":" \"version\": \"0.5.21\",","isFullCredit":false},{"lineNumber":12393,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12394,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12395,"author":{"gitId":"-"},"content":" \"buffer-from\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":12396,"author":{"gitId":"-"},"content":" \"source-map\": \"^0.6.0\"","isFullCredit":false},{"lineNumber":12397,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12398,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12399,"author":{"gitId":"-"},"content":" \"node_modules/spdx-correct\": {","isFullCredit":false},{"lineNumber":12400,"author":{"gitId":"-"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":12401,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12402,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":12403,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12404,"author":{"gitId":"-"},"content":" \"spdx-expression-parse\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":12405,"author":{"gitId":"-"},"content":" \"spdx-license-ids\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":12406,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12407,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12408,"author":{"gitId":"-"},"content":" \"node_modules/spdx-exceptions\": {","isFullCredit":false},{"lineNumber":12409,"author":{"gitId":"-"},"content":" \"version\": \"2.3.0\",","isFullCredit":false},{"lineNumber":12410,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12411,"author":{"gitId":"-"},"content":" \"license\": \"CC-BY-3.0\"","isFullCredit":false},{"lineNumber":12412,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12413,"author":{"gitId":"-"},"content":" \"node_modules/spdx-expression-parse\": {","isFullCredit":false},{"lineNumber":12414,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":12415,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12416,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12417,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12418,"author":{"gitId":"-"},"content":" \"spdx-exceptions\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":12419,"author":{"gitId":"-"},"content":" \"spdx-license-ids\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":12420,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12421,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12422,"author":{"gitId":"-"},"content":" \"node_modules/spdx-license-ids\": {","isFullCredit":false},{"lineNumber":12423,"author":{"gitId":"-"},"content":" \"version\": \"3.0.12\",","isFullCredit":false},{"lineNumber":12424,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12425,"author":{"gitId":"-"},"content":" \"license\": \"CC0-1.0\"","isFullCredit":false},{"lineNumber":12426,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12427,"author":{"gitId":"-"},"content":" \"node_modules/spdy\": {","isFullCredit":false},{"lineNumber":12428,"author":{"gitId":"-"},"content":" \"version\": \"4.0.2\",","isFullCredit":false},{"lineNumber":12429,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12430,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12431,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12432,"author":{"gitId":"-"},"content":" \"debug\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":12433,"author":{"gitId":"-"},"content":" \"handle-thing\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":12434,"author":{"gitId":"-"},"content":" \"http-deceiver\": \"^1.2.7\",","isFullCredit":false},{"lineNumber":12435,"author":{"gitId":"-"},"content":" \"select-hose\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":12436,"author":{"gitId":"-"},"content":" \"spdy-transport\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":12437,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12438,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12439,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":12440,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12441,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12442,"author":{"gitId":"-"},"content":" \"node_modules/spdy-transport\": {","isFullCredit":false},{"lineNumber":12443,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":12444,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12445,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12446,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12447,"author":{"gitId":"-"},"content":" \"debug\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":12448,"author":{"gitId":"-"},"content":" \"detect-node\": \"^2.0.4\",","isFullCredit":false},{"lineNumber":12449,"author":{"gitId":"-"},"content":" \"hpack.js\": \"^2.1.6\",","isFullCredit":false},{"lineNumber":12450,"author":{"gitId":"-"},"content":" \"obuf\": \"^1.1.2\",","isFullCredit":false},{"lineNumber":12451,"author":{"gitId":"-"},"content":" \"readable-stream\": \"^3.0.6\",","isFullCredit":false},{"lineNumber":12452,"author":{"gitId":"-"},"content":" \"wbuf\": \"^1.7.3\"","isFullCredit":false},{"lineNumber":12453,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12454,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12455,"author":{"gitId":"-"},"content":" \"node_modules/spdy-transport/node_modules/readable-stream\": {","isFullCredit":false},{"lineNumber":12456,"author":{"gitId":"-"},"content":" \"version\": \"3.6.0\",","isFullCredit":false},{"lineNumber":12457,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12458,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12459,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12460,"author":{"gitId":"-"},"content":" \"inherits\": \"^2.0.3\",","isFullCredit":false},{"lineNumber":12461,"author":{"gitId":"-"},"content":" \"string_decoder\": \"^1.1.1\",","isFullCredit":false},{"lineNumber":12462,"author":{"gitId":"-"},"content":" \"util-deprecate\": \"^1.0.1\"","isFullCredit":false},{"lineNumber":12463,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12464,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12465,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":12466,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12467,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12468,"author":{"gitId":"-"},"content":" \"node_modules/ssri\": {","isFullCredit":false},{"lineNumber":12469,"author":{"gitId":"-"},"content":" \"version\": \"8.0.1\",","isFullCredit":false},{"lineNumber":12470,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12471,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":12472,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12473,"author":{"gitId":"-"},"content":" \"minipass\": \"^3.1.1\"","isFullCredit":false},{"lineNumber":12474,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12475,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12476,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":12477,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12478,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12479,"author":{"gitId":"-"},"content":" \"node_modules/stable\": {","isFullCredit":false},{"lineNumber":12480,"author":{"gitId":"-"},"content":" \"version\": \"0.1.8\",","isFullCredit":false},{"lineNumber":12481,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12482,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":12483,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12484,"author":{"gitId":"-"},"content":" \"node_modules/stackframe\": {","isFullCredit":false},{"lineNumber":12485,"author":{"gitId":"-"},"content":" \"version\": \"1.3.4\",","isFullCredit":false},{"lineNumber":12486,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12487,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":12488,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12489,"author":{"gitId":"-"},"content":" \"node_modules/statuses\": {","isFullCredit":false},{"lineNumber":12490,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":12491,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12492,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12493,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12494,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":12495,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12496,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12497,"author":{"gitId":"-"},"content":" \"node_modules/string_decoder\": {","isFullCredit":false},{"lineNumber":12498,"author":{"gitId":"-"},"content":" \"version\": \"1.1.1\",","isFullCredit":false},{"lineNumber":12499,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12500,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12501,"author":{"gitId":"-"},"content":" \"safe-buffer\": \"~5.1.0\"","isFullCredit":false},{"lineNumber":12502,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12503,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12504,"author":{"gitId":"-"},"content":" \"node_modules/string-width\": {","isFullCredit":false},{"lineNumber":12505,"author":{"gitId":"-"},"content":" \"version\": \"4.2.3\",","isFullCredit":false},{"lineNumber":12506,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12507,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12508,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12509,"author":{"gitId":"-"},"content":" \"emoji-regex\": \"^8.0.0\",","isFullCredit":false},{"lineNumber":12510,"author":{"gitId":"-"},"content":" \"is-fullwidth-code-point\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":12511,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":12512,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12513,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12514,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":12515,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12516,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12517,"author":{"gitId":"sopa301"},"content":" \"node_modules/string.prototype.trim\": {","isFullCredit":false},{"lineNumber":12518,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.2.8\",","isFullCredit":false},{"lineNumber":12519,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12520,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12521,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12522,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":12523,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":12524,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.22.1\"","isFullCredit":false},{"lineNumber":12525,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12526,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12527,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":12528,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12529,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12530,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":12531,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":12532,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12533,"author":{"gitId":"-"},"content":" \"node_modules/string.prototype.trimend\": {","isFullCredit":false},{"lineNumber":12534,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":12535,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12536,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12537,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12538,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":12539,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":12540,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.22.1\"","isFullCredit":false},{"lineNumber":12541,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12542,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12543,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":12544,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12545,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12546,"author":{"gitId":"-"},"content":" \"node_modules/string.prototype.trimstart\": {","isFullCredit":false},{"lineNumber":12547,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.7\",","isFullCredit":false},{"lineNumber":12548,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12549,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12550,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12551,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":12552,"author":{"gitId":"sopa301"},"content":" \"define-properties\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":12553,"author":{"gitId":"sopa301"},"content":" \"es-abstract\": \"^1.22.1\"","isFullCredit":false},{"lineNumber":12554,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12555,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12556,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":12557,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12558,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12559,"author":{"gitId":"-"},"content":" \"node_modules/strip-ansi\": {","isFullCredit":false},{"lineNumber":12560,"author":{"gitId":"-"},"content":" \"version\": \"6.0.1\",","isFullCredit":false},{"lineNumber":12561,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12562,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12563,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12564,"author":{"gitId":"-"},"content":" \"ansi-regex\": \"^5.0.1\"","isFullCredit":false},{"lineNumber":12565,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12566,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12567,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":12568,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12569,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12570,"author":{"gitId":"-"},"content":" \"node_modules/strip-bom\": {","isFullCredit":false},{"lineNumber":12571,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":12572,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12573,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12574,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12575,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":12576,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12577,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12578,"author":{"gitId":"-"},"content":" \"node_modules/strip-eof\": {","isFullCredit":false},{"lineNumber":12579,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":12580,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12581,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12582,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12583,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":12584,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12585,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12586,"author":{"gitId":"-"},"content":" \"node_modules/strip-final-newline\": {","isFullCredit":false},{"lineNumber":12587,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":12588,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12589,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12590,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12591,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":12592,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12593,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12594,"author":{"gitId":"-"},"content":" \"node_modules/strip-json-comments\": {","isFullCredit":false},{"lineNumber":12595,"author":{"gitId":"-"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":12596,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12597,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12598,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12599,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":12600,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12601,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12602,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":12603,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12604,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12605,"author":{"gitId":"-"},"content":" \"node_modules/style-search\": {","isFullCredit":false},{"lineNumber":12606,"author":{"gitId":"-"},"content":" \"version\": \"0.1.0\",","isFullCredit":false},{"lineNumber":12607,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12608,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":12609,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12610,"author":{"gitId":"-"},"content":" \"node_modules/stylehacks\": {","isFullCredit":false},{"lineNumber":12611,"author":{"gitId":"-"},"content":" \"version\": \"5.1.1\",","isFullCredit":false},{"lineNumber":12612,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12613,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12614,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12615,"author":{"gitId":"-"},"content":" \"browserslist\": \"^4.21.4\",","isFullCredit":false},{"lineNumber":12616,"author":{"gitId":"-"},"content":" \"postcss-selector-parser\": \"^6.0.4\"","isFullCredit":false},{"lineNumber":12617,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12618,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12619,"author":{"gitId":"-"},"content":" \"node\": \"^10 || ^12 || \u003e\u003d14.0\"","isFullCredit":false},{"lineNumber":12620,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12621,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":12622,"author":{"gitId":"-"},"content":" \"postcss\": \"^8.2.15\"","isFullCredit":false},{"lineNumber":12623,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12624,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12625,"author":{"gitId":"-"},"content":" \"node_modules/stylelint\": {","isFullCredit":false},{"lineNumber":12626,"author":{"gitId":"sopa301"},"content":" \"version\": \"16.3.1\",","isFullCredit":false},{"lineNumber":12627,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/stylelint/-/stylelint-16.3.1.tgz\",","isFullCredit":false},{"lineNumber":12628,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-/JOwQnBvxEKOT2RtNgGpBVXnCSMBgKOL2k7w0K52htwCyJls4+cHvc4YZgXlVoAZS9QJd2DgYAiRnja96pTgxw\u003d\u003d\",","isFullCredit":false},{"lineNumber":12629,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12630,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12631,"author":{"gitId":"sopa301"},"content":" \"@csstools/css-parser-algorithms\": \"^2.6.1\",","isFullCredit":false},{"lineNumber":12632,"author":{"gitId":"sopa301"},"content":" \"@csstools/css-tokenizer\": \"^2.2.4\",","isFullCredit":false},{"lineNumber":12633,"author":{"gitId":"sopa301"},"content":" \"@csstools/media-query-list-parser\": \"^2.1.9\",","isFullCredit":false},{"lineNumber":12634,"author":{"gitId":"sopa301"},"content":" \"@csstools/selector-specificity\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":12635,"author":{"gitId":"sopa301"},"content":" \"@dual-bundle/import-meta-resolve\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":12636,"author":{"gitId":"-"},"content":" \"balanced-match\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":12637,"author":{"gitId":"-"},"content":" \"colord\": \"^2.9.3\",","isFullCredit":false},{"lineNumber":12638,"author":{"gitId":"sopa301"},"content":" \"cosmiconfig\": \"^9.0.0\",","isFullCredit":false},{"lineNumber":12639,"author":{"gitId":"sopa301"},"content":" \"css-functions-list\": \"^3.2.1\",","isFullCredit":false},{"lineNumber":12640,"author":{"gitId":"sopa301"},"content":" \"css-tree\": \"^2.3.1\",","isFullCredit":false},{"lineNumber":12641,"author":{"gitId":"-"},"content":" \"debug\": \"^4.3.4\",","isFullCredit":false},{"lineNumber":12642,"author":{"gitId":"sopa301"},"content":" \"fast-glob\": \"^3.3.2\",","isFullCredit":false},{"lineNumber":12643,"author":{"gitId":"-"},"content":" \"fastest-levenshtein\": \"^1.0.16\",","isFullCredit":false},{"lineNumber":12644,"author":{"gitId":"sopa301"},"content":" \"file-entry-cache\": \"^8.0.0\",","isFullCredit":false},{"lineNumber":12645,"author":{"gitId":"-"},"content":" \"global-modules\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":12646,"author":{"gitId":"-"},"content":" \"globby\": \"^11.1.0\",","isFullCredit":false},{"lineNumber":12647,"author":{"gitId":"-"},"content":" \"globjoin\": \"^0.1.4\",","isFullCredit":false},{"lineNumber":12648,"author":{"gitId":"sopa301"},"content":" \"html-tags\": \"^3.3.1\",","isFullCredit":false},{"lineNumber":12649,"author":{"gitId":"sopa301"},"content":" \"ignore\": \"^5.3.1\",","isFullCredit":false},{"lineNumber":12650,"author":{"gitId":"-"},"content":" \"imurmurhash\": \"^0.1.4\",","isFullCredit":false},{"lineNumber":12651,"author":{"gitId":"-"},"content":" \"is-plain-object\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":12652,"author":{"gitId":"sopa301"},"content":" \"known-css-properties\": \"^0.30.0\",","isFullCredit":false},{"lineNumber":12653,"author":{"gitId":"-"},"content":" \"mathml-tag-names\": \"^2.1.3\",","isFullCredit":false},{"lineNumber":12654,"author":{"gitId":"sopa301"},"content":" \"meow\": \"^13.2.0\",","isFullCredit":false},{"lineNumber":12655,"author":{"gitId":"-"},"content":" \"micromatch\": \"^4.0.5\",","isFullCredit":false},{"lineNumber":12656,"author":{"gitId":"-"},"content":" \"normalize-path\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":12657,"author":{"gitId":"-"},"content":" \"picocolors\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":12658,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.4.38\",","isFullCredit":false},{"lineNumber":12659,"author":{"gitId":"-"},"content":" \"postcss-resolve-nested-selector\": \"^0.1.1\",","isFullCredit":false},{"lineNumber":12660,"author":{"gitId":"sopa301"},"content":" \"postcss-safe-parser\": \"^7.0.0\",","isFullCredit":false},{"lineNumber":12661,"author":{"gitId":"sopa301"},"content":" \"postcss-selector-parser\": \"^6.0.16\",","isFullCredit":false},{"lineNumber":12662,"author":{"gitId":"-"},"content":" \"postcss-value-parser\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":12663,"author":{"gitId":"-"},"content":" \"resolve-from\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":12664,"author":{"gitId":"-"},"content":" \"string-width\": \"^4.2.3\",","isFullCredit":false},{"lineNumber":12665,"author":{"gitId":"sopa301"},"content":" \"strip-ansi\": \"^7.1.0\",","isFullCredit":false},{"lineNumber":12666,"author":{"gitId":"sopa301"},"content":" \"supports-hyperlinks\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":12667,"author":{"gitId":"-"},"content":" \"svg-tags\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":12668,"author":{"gitId":"-"},"content":" \"table\": \"^6.8.1\",","isFullCredit":false},{"lineNumber":12669,"author":{"gitId":"sopa301"},"content":" \"write-file-atomic\": \"^5.0.1\"","isFullCredit":false},{"lineNumber":12670,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12671,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":12672,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"bin/stylelint.mjs\"","isFullCredit":false},{"lineNumber":12673,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12674,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12675,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18.12.0\"","isFullCredit":false},{"lineNumber":12676,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12677,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12678,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":12679,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/stylelint\"","isFullCredit":false},{"lineNumber":12680,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12681,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12682,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-config-html\": {","isFullCredit":false},{"lineNumber":12683,"author":{"gitId":"-"},"content":" \"version\": \"1.1.0\",","isFullCredit":false},{"lineNumber":12684,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12685,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12686,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12687,"author":{"gitId":"-"},"content":" \"node\": \"^12 || \u003e\u003d14\"","isFullCredit":false},{"lineNumber":12688,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12689,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12690,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ota-meshi\"","isFullCredit":false},{"lineNumber":12691,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12692,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":12693,"author":{"gitId":"-"},"content":" \"postcss-html\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":12694,"author":{"gitId":"-"},"content":" \"stylelint\": \"\u003e\u003d14.0.0\"","isFullCredit":false},{"lineNumber":12695,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12696,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12697,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-config-recommended\": {","isFullCredit":false},{"lineNumber":12698,"author":{"gitId":"sopa301"},"content":" \"version\": \"14.0.0\",","isFullCredit":false},{"lineNumber":12699,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.0.tgz\",","isFullCredit":false},{"lineNumber":12700,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":12701,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12702,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12703,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18.12.0\"","isFullCredit":false},{"lineNumber":12704,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12705,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":12706,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^16.0.0\"","isFullCredit":false},{"lineNumber":12707,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12708,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12709,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-config-recommended-scss\": {","isFullCredit":false},{"lineNumber":12710,"author":{"gitId":"sopa301"},"content":" \"version\": \"14.0.0\",","isFullCredit":false},{"lineNumber":12711,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-14.0.0.tgz\",","isFullCredit":false},{"lineNumber":12712,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-HDvpoOAQ1RpF+sPbDOT2Q2/YrBDEJDnUymmVmZ7mMCeNiFSdhRdyGEimBkz06wsN+HaFwUh249gDR+I9JR7Onw\u003d\u003d\",","isFullCredit":false},{"lineNumber":12713,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12714,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12715,"author":{"gitId":"sopa301"},"content":" \"postcss-scss\": \"^4.0.9\",","isFullCredit":false},{"lineNumber":12716,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-recommended\": \"^14.0.0\",","isFullCredit":false},{"lineNumber":12717,"author":{"gitId":"sopa301"},"content":" \"stylelint-scss\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":12718,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12719,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12720,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18.12.0\"","isFullCredit":false},{"lineNumber":12721,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12722,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":12723,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.3.3\",","isFullCredit":false},{"lineNumber":12724,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^16.0.2\"","isFullCredit":false},{"lineNumber":12725,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12726,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":12727,"author":{"gitId":"sopa301"},"content":" \"postcss\": {","isFullCredit":false},{"lineNumber":12728,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":12729,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":12730,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12731,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12732,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-config-recommended-vue\": {","isFullCredit":false},{"lineNumber":12733,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.5.0\",","isFullCredit":false},{"lineNumber":12734,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12735,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":12736,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12737,"author":{"gitId":"-"},"content":" \"semver\": \"^7.3.5\",","isFullCredit":false},{"lineNumber":12738,"author":{"gitId":"-"},"content":" \"stylelint-config-html\": \"\u003e\u003d1.0.0\",","isFullCredit":false},{"lineNumber":12739,"author":{"gitId":"-"},"content":" \"stylelint-config-recommended\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":12740,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12741,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12742,"author":{"gitId":"-"},"content":" \"node\": \"^12 || \u003e\u003d14\"","isFullCredit":false},{"lineNumber":12743,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12744,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12745,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ota-meshi\"","isFullCredit":false},{"lineNumber":12746,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12747,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":12748,"author":{"gitId":"-"},"content":" \"postcss-html\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":12749,"author":{"gitId":"-"},"content":" \"stylelint\": \"\u003e\u003d14.0.0\"","isFullCredit":false},{"lineNumber":12750,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12751,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12752,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-config-recommended-vue/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":12753,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":12754,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12755,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":12756,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12757,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":12758,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12759,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12760,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":12761,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12762,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12763,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-config-recommended-vue/node_modules/semver\": {","isFullCredit":false},{"lineNumber":12764,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":12765,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12766,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":12767,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12768,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":12769,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12770,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":12771,"author":{"gitId":"-"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":12772,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12773,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12774,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":12775,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12776,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12777,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-config-recommended-vue/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":12778,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":12779,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12780,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":12781,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12782,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-config-standard\": {","isFullCredit":false},{"lineNumber":12783,"author":{"gitId":"sopa301"},"content":" \"version\": \"36.0.0\",","isFullCredit":false},{"lineNumber":12784,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-36.0.0.tgz\",","isFullCredit":false},{"lineNumber":12785,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3Kjyq4d62bYFp/Aq8PMKDwlgUyPU4nacXsjDLWJdNPRUgpuxALu1KnlAHIj36cdtxViVhXexZij65yM0uNIHug\u003d\u003d\",","isFullCredit":false},{"lineNumber":12786,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12787,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12788,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-recommended\": \"^14.0.0\"","isFullCredit":false},{"lineNumber":12789,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12790,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12791,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18.12.0\"","isFullCredit":false},{"lineNumber":12792,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12793,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":12794,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^16.1.0\"","isFullCredit":false},{"lineNumber":12795,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":12796,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12797,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-config-standard-scss\": {","isFullCredit":false},{"lineNumber":12798,"author":{"gitId":"sopa301"},"content":" \"version\": \"13.1.0\",","isFullCredit":false},{"lineNumber":12799,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-13.1.0.tgz\",","isFullCredit":false},{"lineNumber":12800,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Eo5w7/XvwGHWkeGLtdm2FZLOMYoZl1omP2/jgFCXyl2x5yNz7/8vv4Tj6slHvMSSUNTaGoam/GAZ0ZhukvalfA\u003d\u003d\",","isFullCredit":false},{"lineNumber":12801,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12802,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12803,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-recommended-scss\": \"^14.0.0\",","isFullCredit":false},{"lineNumber":12804,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-standard\": \"^36.0.0\"","isFullCredit":false},{"lineNumber":12805,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12806,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12807,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18.12.0\"","isFullCredit":false},{"lineNumber":12808,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12809,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":12810,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.3.3\",","isFullCredit":false},{"lineNumber":12811,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^16.3.1\"","isFullCredit":false},{"lineNumber":12812,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12813,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":12814,"author":{"gitId":"sopa301"},"content":" \"postcss\": {","isFullCredit":false},{"lineNumber":12815,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":12816,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":12817,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":12818,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12819,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-order\": {","isFullCredit":false},{"lineNumber":12820,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.4\",","isFullCredit":false},{"lineNumber":12821,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.4.tgz\",","isFullCredit":false},{"lineNumber":12822,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA\u003d\u003d\",","isFullCredit":false},{"lineNumber":12823,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12824,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12825,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.4.32\",","isFullCredit":false},{"lineNumber":12826,"author":{"gitId":"sopa301"},"content":" \"postcss-sorting\": \"^8.0.2\"","isFullCredit":false},{"lineNumber":12827,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12828,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":12829,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^14.0.0 || ^15.0.0 || ^16.0.1\"","isFullCredit":false},{"lineNumber":12830,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12831,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12832,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-scss\": {","isFullCredit":false},{"lineNumber":12833,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.2.1\",","isFullCredit":false},{"lineNumber":12834,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.2.1.tgz\",","isFullCredit":false},{"lineNumber":12835,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ZoGLbVb1keZYRVGQlhB8G6sZOoNqw61whzzzGFWp05N12ErqLFfBv3JPrXiMLZaW98sBS7K/vUQhRnvUj4vwdw\u003d\u003d\",","isFullCredit":false},{"lineNumber":12836,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12837,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12838,"author":{"gitId":"sopa301"},"content":" \"known-css-properties\": \"^0.29.0\",","isFullCredit":false},{"lineNumber":12839,"author":{"gitId":"-"},"content":" \"postcss-media-query-parser\": \"^0.2.3\",","isFullCredit":false},{"lineNumber":12840,"author":{"gitId":"-"},"content":" \"postcss-resolve-nested-selector\": \"^0.1.1\",","isFullCredit":false},{"lineNumber":12841,"author":{"gitId":"sopa301"},"content":" \"postcss-selector-parser\": \"^6.0.15\",","isFullCredit":false},{"lineNumber":12842,"author":{"gitId":"sopa301"},"content":" \"postcss-value-parser\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":12843,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12844,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12845,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18.12.0\"","isFullCredit":false},{"lineNumber":12846,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12847,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":12848,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^16.0.2\"","isFullCredit":false},{"lineNumber":12849,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12850,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12851,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint-scss/node_modules/known-css-properties\": {","isFullCredit":false},{"lineNumber":12852,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.29.0\",","isFullCredit":false},{"lineNumber":12853,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz\",","isFullCredit":false},{"lineNumber":12854,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":12855,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":12856,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12857,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-webpack-plugin\": {","isFullCredit":false},{"lineNumber":12858,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.0\",","isFullCredit":false},{"lineNumber":12859,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/stylelint-webpack-plugin/-/stylelint-webpack-plugin-5.0.0.tgz\",","isFullCredit":false},{"lineNumber":12860,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-f56OmfvIYfZpL5+TKg3LZ+Ehzoar5GAwytUtsdti+W6WhR3UpQC36vmXHsKxx9ibj7dKXCIKea6w0U+LdVSBmg\u003d\u003d\",","isFullCredit":false},{"lineNumber":12861,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12862,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12863,"author":{"gitId":"-"},"content":" \"globby\": \"^11.1.0\",","isFullCredit":false},{"lineNumber":12864,"author":{"gitId":"sopa301"},"content":" \"jest-worker\": \"^29.7.0\",","isFullCredit":false},{"lineNumber":12865,"author":{"gitId":"-"},"content":" \"micromatch\": \"^4.0.5\",","isFullCredit":false},{"lineNumber":12866,"author":{"gitId":"-"},"content":" \"normalize-path\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":12867,"author":{"gitId":"sopa301"},"content":" \"schema-utils\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":12868,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12869,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12870,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 18.12.0\"","isFullCredit":false},{"lineNumber":12871,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12872,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12873,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":12874,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":12875,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12876,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":12877,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0\",","isFullCredit":false},{"lineNumber":12878,"author":{"gitId":"-"},"content":" \"webpack\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":12879,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12880,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12881,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-webpack-plugin/node_modules/ajv\": {","isFullCredit":false},{"lineNumber":12882,"author":{"gitId":"-"},"content":" \"version\": \"8.12.0\",","isFullCredit":false},{"lineNumber":12883,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz\",","isFullCredit":false},{"lineNumber":12884,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA\u003d\u003d\",","isFullCredit":false},{"lineNumber":12885,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12886,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12887,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":12888,"author":{"gitId":"-"},"content":" \"json-schema-traverse\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":12889,"author":{"gitId":"-"},"content":" \"require-from-string\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":12890,"author":{"gitId":"-"},"content":" \"uri-js\": \"^4.2.2\"","isFullCredit":false},{"lineNumber":12891,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12892,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12893,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":12894,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/epoberezkin\"","isFullCredit":false},{"lineNumber":12895,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12896,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12897,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-webpack-plugin/node_modules/ajv-keywords\": {","isFullCredit":false},{"lineNumber":12898,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":12899,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz\",","isFullCredit":false},{"lineNumber":12900,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw\u003d\u003d\",","isFullCredit":false},{"lineNumber":12901,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12902,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12903,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.3\"","isFullCredit":false},{"lineNumber":12904,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12905,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":12906,"author":{"gitId":"-"},"content":" \"ajv\": \"^8.8.2\"","isFullCredit":false},{"lineNumber":12907,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12908,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12909,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-webpack-plugin/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":12910,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":12911,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":12912,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":12913,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12914,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12915,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":12916,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12917,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12918,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-webpack-plugin/node_modules/jest-worker\": {","isFullCredit":false},{"lineNumber":12919,"author":{"gitId":"sopa301"},"content":" \"version\": \"29.7.0\",","isFullCredit":false},{"lineNumber":12920,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz\",","isFullCredit":false},{"lineNumber":12921,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw\u003d\u003d\",","isFullCredit":false},{"lineNumber":12922,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12923,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12924,"author":{"gitId":"-"},"content":" \"@types/node\": \"*\",","isFullCredit":false},{"lineNumber":12925,"author":{"gitId":"sopa301"},"content":" \"jest-util\": \"^29.7.0\",","isFullCredit":false},{"lineNumber":12926,"author":{"gitId":"-"},"content":" \"merge-stream\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":12927,"author":{"gitId":"-"},"content":" \"supports-color\": \"^8.0.0\"","isFullCredit":false},{"lineNumber":12928,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12929,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12930,"author":{"gitId":"sopa301"},"content":" \"node\": \"^14.15.0 || ^16.10.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":12931,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12932,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12933,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-webpack-plugin/node_modules/json-schema-traverse\": {","isFullCredit":false},{"lineNumber":12934,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":12935,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz\",","isFullCredit":false},{"lineNumber":12936,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug\u003d\u003d\",","isFullCredit":false},{"lineNumber":12937,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":12938,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12939,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-webpack-plugin/node_modules/schema-utils\": {","isFullCredit":false},{"lineNumber":12940,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.2.0\",","isFullCredit":false},{"lineNumber":12941,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz\",","isFullCredit":false},{"lineNumber":12942,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw\u003d\u003d\",","isFullCredit":false},{"lineNumber":12943,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12944,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12945,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.9\",","isFullCredit":false},{"lineNumber":12946,"author":{"gitId":"sopa301"},"content":" \"ajv\": \"^8.9.0\",","isFullCredit":false},{"lineNumber":12947,"author":{"gitId":"-"},"content":" \"ajv-formats\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":12948,"author":{"gitId":"sopa301"},"content":" \"ajv-keywords\": \"^5.1.0\"","isFullCredit":false},{"lineNumber":12949,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12950,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12951,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 12.13.0\"","isFullCredit":false},{"lineNumber":12952,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12953,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12954,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":12955,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":12956,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12957,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12958,"author":{"gitId":"-"},"content":" \"node_modules/stylelint-webpack-plugin/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":12959,"author":{"gitId":"-"},"content":" \"version\": \"8.1.1\",","isFullCredit":false},{"lineNumber":12960,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",","isFullCredit":false},{"lineNumber":12961,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q\u003d\u003d\",","isFullCredit":false},{"lineNumber":12962,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12963,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12964,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":12965,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12966,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12967,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":12968,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12969,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12970,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/supports-color?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":12971,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":12972,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12973,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/ansi-regex\": {","isFullCredit":false},{"lineNumber":12974,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.1\",","isFullCredit":false},{"lineNumber":12975,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz\",","isFullCredit":false},{"lineNumber":12976,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA\u003d\u003d\",","isFullCredit":false},{"lineNumber":12977,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12978,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":12979,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":12980,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12981,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":12982,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/ansi-regex?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":12983,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":12984,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":12985,"author":{"gitId":"-"},"content":" \"node_modules/stylelint/node_modules/balanced-match\": {","isFullCredit":false},{"lineNumber":12986,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":12987,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12988,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":12989,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":12990,"author":{"gitId":"-"},"content":" \"node_modules/stylelint/node_modules/cosmiconfig\": {","isFullCredit":false},{"lineNumber":12991,"author":{"gitId":"sopa301"},"content":" \"version\": \"9.0.0\",","isFullCredit":false},{"lineNumber":12992,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz\",","isFullCredit":false},{"lineNumber":12993,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg\u003d\u003d\",","isFullCredit":false},{"lineNumber":12994,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":12995,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":12996,"author":{"gitId":"sopa301"},"content":" \"env-paths\": \"^2.2.1\",","isFullCredit":false},{"lineNumber":12997,"author":{"gitId":"sopa301"},"content":" \"import-fresh\": \"^3.3.0\",","isFullCredit":false},{"lineNumber":12998,"author":{"gitId":"sopa301"},"content":" \"js-yaml\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":12999,"author":{"gitId":"sopa301"},"content":" \"parse-json\": \"^5.2.0\"","isFullCredit":false},{"lineNumber":13000,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13001,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13002,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d14\"","isFullCredit":false},{"lineNumber":13003,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13004,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13005,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/d-fischer\"","isFullCredit":false},{"lineNumber":13006,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13007,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":13008,"author":{"gitId":"sopa301"},"content":" \"typescript\": \"\u003e\u003d4.9.5\"","isFullCredit":false},{"lineNumber":13009,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13010,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":13011,"author":{"gitId":"sopa301"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":13012,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":13013,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":13014,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":13015,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13016,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/css-tree\": {","isFullCredit":false},{"lineNumber":13017,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.3.1\",","isFullCredit":false},{"lineNumber":13018,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz\",","isFullCredit":false},{"lineNumber":13019,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw\u003d\u003d\",","isFullCredit":false},{"lineNumber":13020,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13021,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13022,"author":{"gitId":"sopa301"},"content":" \"mdn-data\": \"2.0.30\",","isFullCredit":false},{"lineNumber":13023,"author":{"gitId":"sopa301"},"content":" \"source-map-js\": \"^1.0.1\"","isFullCredit":false},{"lineNumber":13024,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13025,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13026,"author":{"gitId":"sopa301"},"content":" \"node\": \"^10 || ^12.20.0 || ^14.13.0 || \u003e\u003d15.0.0\"","isFullCredit":false},{"lineNumber":13027,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":13028,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13029,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/file-entry-cache\": {","isFullCredit":false},{"lineNumber":13030,"author":{"gitId":"sopa301"},"content":" \"version\": \"8.0.0\",","isFullCredit":false},{"lineNumber":13031,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz\",","isFullCredit":false},{"lineNumber":13032,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":13033,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13034,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13035,"author":{"gitId":"sopa301"},"content":" \"flat-cache\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":13036,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13037,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13038,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":13039,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":13040,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13041,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/flat-cache\": {","isFullCredit":false},{"lineNumber":13042,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.1\",","isFullCredit":false},{"lineNumber":13043,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz\",","isFullCredit":false},{"lineNumber":13044,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw\u003d\u003d\",","isFullCredit":false},{"lineNumber":13045,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13046,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13047,"author":{"gitId":"sopa301"},"content":" \"flatted\": \"^3.2.9\",","isFullCredit":false},{"lineNumber":13048,"author":{"gitId":"sopa301"},"content":" \"keyv\": \"^4.5.4\"","isFullCredit":false},{"lineNumber":13049,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13050,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13051,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d16\"","isFullCredit":false},{"lineNumber":13052,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":13053,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13054,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/mdn-data\": {","isFullCredit":false},{"lineNumber":13055,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.0.30\",","isFullCredit":false},{"lineNumber":13056,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz\",","isFullCredit":false},{"lineNumber":13057,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA\u003d\u003d\",","isFullCredit":false},{"lineNumber":13058,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":13059,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13060,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/postcss-safe-parser\": {","isFullCredit":false},{"lineNumber":13061,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.0.0\",","isFullCredit":false},{"lineNumber":13062,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz\",","isFullCredit":false},{"lineNumber":13063,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg\u003d\u003d\",","isFullCredit":false},{"lineNumber":13064,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13065,"author":{"gitId":"sopa301"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":13066,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":13067,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":13068,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/postcss/\"","isFullCredit":false},{"lineNumber":13069,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13070,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":13071,"author":{"gitId":"sopa301"},"content":" \"type\": \"tidelift\",","isFullCredit":false},{"lineNumber":13072,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://tidelift.com/funding/github/npm/postcss-safe-parser\"","isFullCredit":false},{"lineNumber":13073,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13074,"author":{"gitId":"sopa301"},"content":" {","isFullCredit":false},{"lineNumber":13075,"author":{"gitId":"sopa301"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":13076,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ai\"","isFullCredit":false},{"lineNumber":13077,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":13078,"author":{"gitId":"sopa301"},"content":" ],","isFullCredit":false},{"lineNumber":13079,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13080,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d18.0\"","isFullCredit":false},{"lineNumber":13081,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13082,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":13083,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.4.31\"","isFullCredit":false},{"lineNumber":13084,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13085,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13086,"author":{"gitId":"-"},"content":" \"node_modules/stylelint/node_modules/resolve-from\": {","isFullCredit":false},{"lineNumber":13087,"author":{"gitId":"-"},"content":" \"version\": \"5.0.0\",","isFullCredit":false},{"lineNumber":13088,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13089,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13090,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13091,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":13092,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13093,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13094,"author":{"gitId":"sopa301"},"content":" \"node_modules/stylelint/node_modules/strip-ansi\": {","isFullCredit":false},{"lineNumber":13095,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.1.0\",","isFullCredit":false},{"lineNumber":13096,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz\",","isFullCredit":false},{"lineNumber":13097,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":13098,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13099,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13100,"author":{"gitId":"sopa301"},"content":" \"ansi-regex\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":13101,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13102,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13103,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":13104,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13105,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13106,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/chalk/strip-ansi?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":13107,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":13108,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13109,"author":{"gitId":"-"},"content":" \"node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":13110,"author":{"gitId":"-"},"content":" \"version\": \"5.5.0\",","isFullCredit":false},{"lineNumber":13111,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13112,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13113,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13114,"author":{"gitId":"-"},"content":" \"has-flag\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":13115,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13116,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13117,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":13118,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13119,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13120,"author":{"gitId":"-"},"content":" \"node_modules/supports-hyperlinks\": {","isFullCredit":false},{"lineNumber":13121,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":13122,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz\",","isFullCredit":false},{"lineNumber":13123,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA\u003d\u003d\",","isFullCredit":false},{"lineNumber":13124,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13125,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13126,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":13127,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":13128,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13129,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13130,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d14.18\"","isFullCredit":false},{"lineNumber":13131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13132,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13133,"author":{"gitId":"-"},"content":" \"node_modules/supports-hyperlinks/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":13134,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":13135,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":13136,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":13137,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13138,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13139,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":13140,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13141,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13142,"author":{"gitId":"-"},"content":" \"node_modules/supports-hyperlinks/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":13143,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":13144,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",","isFullCredit":false},{"lineNumber":13145,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw\u003d\u003d\",","isFullCredit":false},{"lineNumber":13146,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13147,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13148,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":13149,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13150,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13151,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":13152,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13153,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13154,"author":{"gitId":"-"},"content":" \"node_modules/supports-preserve-symlinks-flag\": {","isFullCredit":false},{"lineNumber":13155,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":13156,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13157,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13158,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":13159,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13160,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13161,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":13162,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13163,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13164,"author":{"gitId":"-"},"content":" \"node_modules/svg-tags\": {","isFullCredit":false},{"lineNumber":13165,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":13166,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":13167,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13168,"author":{"gitId":"-"},"content":" \"node_modules/svgo\": {","isFullCredit":false},{"lineNumber":13169,"author":{"gitId":"-"},"content":" \"version\": \"2.8.0\",","isFullCredit":false},{"lineNumber":13170,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13171,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13172,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13173,"author":{"gitId":"-"},"content":" \"@trysound/sax\": \"0.2.0\",","isFullCredit":false},{"lineNumber":13174,"author":{"gitId":"-"},"content":" \"commander\": \"^7.2.0\",","isFullCredit":false},{"lineNumber":13175,"author":{"gitId":"-"},"content":" \"css-select\": \"^4.1.3\",","isFullCredit":false},{"lineNumber":13176,"author":{"gitId":"-"},"content":" \"css-tree\": \"^1.1.3\",","isFullCredit":false},{"lineNumber":13177,"author":{"gitId":"-"},"content":" \"csso\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":13178,"author":{"gitId":"-"},"content":" \"picocolors\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":13179,"author":{"gitId":"-"},"content":" \"stable\": \"^0.1.8\"","isFullCredit":false},{"lineNumber":13180,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13181,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":13182,"author":{"gitId":"-"},"content":" \"svgo\": \"bin/svgo\"","isFullCredit":false},{"lineNumber":13183,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13184,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13185,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10.13.0\"","isFullCredit":false},{"lineNumber":13186,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13187,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13188,"author":{"gitId":"-"},"content":" \"node_modules/svgo/node_modules/commander\": {","isFullCredit":false},{"lineNumber":13189,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":13190,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13191,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13192,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13193,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10\"","isFullCredit":false},{"lineNumber":13194,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13195,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13196,"author":{"gitId":"-"},"content":" \"node_modules/svgo/node_modules/css-select\": {","isFullCredit":false},{"lineNumber":13197,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":13198,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13199,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":13200,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13201,"author":{"gitId":"-"},"content":" \"boolbase\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":13202,"author":{"gitId":"-"},"content":" \"css-what\": \"^6.0.1\",","isFullCredit":false},{"lineNumber":13203,"author":{"gitId":"-"},"content":" \"domhandler\": \"^4.3.1\",","isFullCredit":false},{"lineNumber":13204,"author":{"gitId":"-"},"content":" \"domutils\": \"^2.8.0\",","isFullCredit":false},{"lineNumber":13205,"author":{"gitId":"-"},"content":" \"nth-check\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":13206,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13207,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13208,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/fb55\"","isFullCredit":false},{"lineNumber":13209,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13210,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13211,"author":{"gitId":"-"},"content":" \"node_modules/svgo/node_modules/dom-serializer\": {","isFullCredit":false},{"lineNumber":13212,"author":{"gitId":"-"},"content":" \"version\": \"1.4.1\",","isFullCredit":false},{"lineNumber":13213,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13214,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13215,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13216,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":13217,"author":{"gitId":"-"},"content":" \"domhandler\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":13218,"author":{"gitId":"-"},"content":" \"entities\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":13219,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13220,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13221,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/cheeriojs/dom-serializer?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":13222,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13223,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13224,"author":{"gitId":"-"},"content":" \"node_modules/svgo/node_modules/domhandler\": {","isFullCredit":false},{"lineNumber":13225,"author":{"gitId":"-"},"content":" \"version\": \"4.3.1\",","isFullCredit":false},{"lineNumber":13226,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13227,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":13228,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13229,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.2.0\"","isFullCredit":false},{"lineNumber":13230,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13231,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13232,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 4\"","isFullCredit":false},{"lineNumber":13233,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13234,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13235,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/fb55/domhandler?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":13236,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13237,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13238,"author":{"gitId":"-"},"content":" \"node_modules/svgo/node_modules/domutils\": {","isFullCredit":false},{"lineNumber":13239,"author":{"gitId":"-"},"content":" \"version\": \"2.8.0\",","isFullCredit":false},{"lineNumber":13240,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13241,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":13242,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13243,"author":{"gitId":"-"},"content":" \"dom-serializer\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":13244,"author":{"gitId":"-"},"content":" \"domelementtype\": \"^2.2.0\",","isFullCredit":false},{"lineNumber":13245,"author":{"gitId":"-"},"content":" \"domhandler\": \"^4.2.0\"","isFullCredit":false},{"lineNumber":13246,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13247,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13248,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/fb55/domutils?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":13249,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13250,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13251,"author":{"gitId":"-"},"content":" \"node_modules/svgo/node_modules/entities\": {","isFullCredit":false},{"lineNumber":13252,"author":{"gitId":"-"},"content":" \"version\": \"2.2.0\",","isFullCredit":false},{"lineNumber":13253,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13254,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":13255,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13256,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/fb55/entities?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":13257,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13258,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13259,"author":{"gitId":"-"},"content":" \"node_modules/table\": {","isFullCredit":false},{"lineNumber":13260,"author":{"gitId":"-"},"content":" \"version\": \"6.8.1\",","isFullCredit":false},{"lineNumber":13261,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13262,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-3-Clause\",","isFullCredit":false},{"lineNumber":13263,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13264,"author":{"gitId":"-"},"content":" \"ajv\": \"^8.0.1\",","isFullCredit":false},{"lineNumber":13265,"author":{"gitId":"-"},"content":" \"lodash.truncate\": \"^4.4.2\",","isFullCredit":false},{"lineNumber":13266,"author":{"gitId":"-"},"content":" \"slice-ansi\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":13267,"author":{"gitId":"-"},"content":" \"string-width\": \"^4.2.3\",","isFullCredit":false},{"lineNumber":13268,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.1\"","isFullCredit":false},{"lineNumber":13269,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13270,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13271,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10.0.0\"","isFullCredit":false},{"lineNumber":13272,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13273,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13274,"author":{"gitId":"-"},"content":" \"node_modules/table/node_modules/ajv\": {","isFullCredit":false},{"lineNumber":13275,"author":{"gitId":"-"},"content":" \"version\": \"8.12.0\",","isFullCredit":false},{"lineNumber":13276,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13277,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13278,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13279,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":13280,"author":{"gitId":"-"},"content":" \"json-schema-traverse\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":13281,"author":{"gitId":"-"},"content":" \"require-from-string\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":13282,"author":{"gitId":"-"},"content":" \"uri-js\": \"^4.2.2\"","isFullCredit":false},{"lineNumber":13283,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13284,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13285,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":13286,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/epoberezkin\"","isFullCredit":false},{"lineNumber":13287,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13288,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13289,"author":{"gitId":"-"},"content":" \"node_modules/table/node_modules/json-schema-traverse\": {","isFullCredit":false},{"lineNumber":13290,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":13291,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13292,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":13293,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13294,"author":{"gitId":"-"},"content":" \"node_modules/tapable\": {","isFullCredit":false},{"lineNumber":13295,"author":{"gitId":"-"},"content":" \"version\": \"1.1.3\",","isFullCredit":false},{"lineNumber":13296,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13297,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13298,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13299,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":13300,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13301,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13302,"author":{"gitId":"-"},"content":" \"node_modules/terser\": {","isFullCredit":false},{"lineNumber":13303,"author":{"gitId":"-"},"content":" \"version\": \"5.16.1\",","isFullCredit":false},{"lineNumber":13304,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":13305,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13306,"author":{"gitId":"-"},"content":" \"@jridgewell/source-map\": \"^0.3.2\",","isFullCredit":false},{"lineNumber":13307,"author":{"gitId":"-"},"content":" \"acorn\": \"^8.5.0\",","isFullCredit":false},{"lineNumber":13308,"author":{"gitId":"-"},"content":" \"commander\": \"^2.20.0\",","isFullCredit":false},{"lineNumber":13309,"author":{"gitId":"-"},"content":" \"source-map-support\": \"~0.5.20\"","isFullCredit":false},{"lineNumber":13310,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13311,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":13312,"author":{"gitId":"-"},"content":" \"terser\": \"bin/terser\"","isFullCredit":false},{"lineNumber":13313,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13314,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13315,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":13316,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13317,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13318,"author":{"gitId":"-"},"content":" \"node_modules/terser-webpack-plugin\": {","isFullCredit":false},{"lineNumber":13319,"author":{"gitId":"-"},"content":" \"version\": \"5.3.6\",","isFullCredit":false},{"lineNumber":13320,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13321,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13322,"author":{"gitId":"-"},"content":" \"@jridgewell/trace-mapping\": \"^0.3.14\",","isFullCredit":false},{"lineNumber":13323,"author":{"gitId":"-"},"content":" \"jest-worker\": \"^27.4.5\",","isFullCredit":false},{"lineNumber":13324,"author":{"gitId":"-"},"content":" \"schema-utils\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":13325,"author":{"gitId":"-"},"content":" \"serialize-javascript\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":13326,"author":{"gitId":"-"},"content":" \"terser\": \"^5.14.1\"","isFullCredit":false},{"lineNumber":13327,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13328,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13329,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10.13.0\"","isFullCredit":false},{"lineNumber":13330,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13331,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13332,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":13333,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":13334,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13335,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":13336,"author":{"gitId":"-"},"content":" \"webpack\": \"^5.1.0\"","isFullCredit":false},{"lineNumber":13337,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13338,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":13339,"author":{"gitId":"-"},"content":" \"@swc/core\": {","isFullCredit":false},{"lineNumber":13340,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":13341,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13342,"author":{"gitId":"-"},"content":" \"esbuild\": {","isFullCredit":false},{"lineNumber":13343,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":13344,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13345,"author":{"gitId":"-"},"content":" \"uglify-js\": {","isFullCredit":false},{"lineNumber":13346,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":13347,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13348,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13349,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13350,"author":{"gitId":"-"},"content":" \"node_modules/terser-webpack-plugin/node_modules/schema-utils\": {","isFullCredit":false},{"lineNumber":13351,"author":{"gitId":"-"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":13352,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13353,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13354,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.8\",","isFullCredit":false},{"lineNumber":13355,"author":{"gitId":"-"},"content":" \"ajv\": \"^6.12.5\",","isFullCredit":false},{"lineNumber":13356,"author":{"gitId":"-"},"content":" \"ajv-keywords\": \"^3.5.2\"","isFullCredit":false},{"lineNumber":13357,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13358,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13359,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10.13.0\"","isFullCredit":false},{"lineNumber":13360,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13361,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13362,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":13363,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":13364,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13365,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13366,"author":{"gitId":"-"},"content":" \"node_modules/terser/node_modules/commander\": {","isFullCredit":false},{"lineNumber":13367,"author":{"gitId":"-"},"content":" \"version\": \"2.20.3\",","isFullCredit":false},{"lineNumber":13368,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":13369,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13370,"author":{"gitId":"-"},"content":" \"node_modules/text-table\": {","isFullCredit":false},{"lineNumber":13371,"author":{"gitId":"-"},"content":" \"version\": \"0.2.0\",","isFullCredit":false},{"lineNumber":13372,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":13373,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13374,"author":{"gitId":"-"},"content":" \"node_modules/thenify\": {","isFullCredit":false},{"lineNumber":13375,"author":{"gitId":"-"},"content":" \"version\": \"3.3.1\",","isFullCredit":false},{"lineNumber":13376,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13377,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13378,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13379,"author":{"gitId":"-"},"content":" \"any-promise\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":13380,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13381,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13382,"author":{"gitId":"-"},"content":" \"node_modules/thenify-all\": {","isFullCredit":false},{"lineNumber":13383,"author":{"gitId":"-"},"content":" \"version\": \"1.6.0\",","isFullCredit":false},{"lineNumber":13384,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13385,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13386,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13387,"author":{"gitId":"-"},"content":" \"thenify\": \"\u003e\u003d 3.1.0 \u003c 4\"","isFullCredit":false},{"lineNumber":13388,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13389,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13390,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.8\"","isFullCredit":false},{"lineNumber":13391,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13392,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13393,"author":{"gitId":"-"},"content":" \"node_modules/thread-loader\": {","isFullCredit":false},{"lineNumber":13394,"author":{"gitId":"-"},"content":" \"version\": \"3.0.4\",","isFullCredit":false},{"lineNumber":13395,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13396,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13397,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13398,"author":{"gitId":"-"},"content":" \"json-parse-better-errors\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":13399,"author":{"gitId":"-"},"content":" \"loader-runner\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":13400,"author":{"gitId":"-"},"content":" \"loader-utils\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":13401,"author":{"gitId":"-"},"content":" \"neo-async\": \"^2.6.2\",","isFullCredit":false},{"lineNumber":13402,"author":{"gitId":"-"},"content":" \"schema-utils\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":13403,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13404,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13405,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10.13.0\"","isFullCredit":false},{"lineNumber":13406,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13407,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13408,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":13409,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":13410,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13411,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":13412,"author":{"gitId":"-"},"content":" \"webpack\": \"^4.27.0 || ^5.0.0\"","isFullCredit":false},{"lineNumber":13413,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13414,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13415,"author":{"gitId":"-"},"content":" \"node_modules/thread-loader/node_modules/loader-utils\": {","isFullCredit":false},{"lineNumber":13416,"author":{"gitId":"-"},"content":" \"version\": \"2.0.4\",","isFullCredit":false},{"lineNumber":13417,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13418,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13419,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13420,"author":{"gitId":"-"},"content":" \"big.js\": \"^5.2.2\",","isFullCredit":false},{"lineNumber":13421,"author":{"gitId":"-"},"content":" \"emojis-list\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":13422,"author":{"gitId":"-"},"content":" \"json5\": \"^2.1.2\"","isFullCredit":false},{"lineNumber":13423,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13424,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13425,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8.9.0\"","isFullCredit":false},{"lineNumber":13426,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13427,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13428,"author":{"gitId":"-"},"content":" \"node_modules/thread-loader/node_modules/schema-utils\": {","isFullCredit":false},{"lineNumber":13429,"author":{"gitId":"-"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":13430,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13431,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13432,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13433,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.8\",","isFullCredit":false},{"lineNumber":13434,"author":{"gitId":"-"},"content":" \"ajv\": \"^6.12.5\",","isFullCredit":false},{"lineNumber":13435,"author":{"gitId":"-"},"content":" \"ajv-keywords\": \"^3.5.2\"","isFullCredit":false},{"lineNumber":13436,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13437,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13438,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10.13.0\"","isFullCredit":false},{"lineNumber":13439,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13440,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13441,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":13442,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":13443,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13444,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13445,"author":{"gitId":"-"},"content":" \"node_modules/thunky\": {","isFullCredit":false},{"lineNumber":13446,"author":{"gitId":"-"},"content":" \"version\": \"1.1.0\",","isFullCredit":false},{"lineNumber":13447,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13448,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":13449,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13450,"author":{"gitId":"-"},"content":" \"node_modules/to-fast-properties\": {","isFullCredit":false},{"lineNumber":13451,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":13452,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13453,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13454,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13455,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":13456,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13457,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13458,"author":{"gitId":"-"},"content":" \"node_modules/to-regex-range\": {","isFullCredit":false},{"lineNumber":13459,"author":{"gitId":"-"},"content":" \"version\": \"5.0.1\",","isFullCredit":false},{"lineNumber":13460,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13461,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13462,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13463,"author":{"gitId":"-"},"content":" \"is-number\": \"^7.0.0\"","isFullCredit":false},{"lineNumber":13464,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13465,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13466,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8.0\"","isFullCredit":false},{"lineNumber":13467,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13468,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13469,"author":{"gitId":"-"},"content":" \"node_modules/toidentifier\": {","isFullCredit":false},{"lineNumber":13470,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":13471,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13472,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13473,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13474,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.6\"","isFullCredit":false},{"lineNumber":13475,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13476,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13477,"author":{"gitId":"-"},"content":" \"node_modules/token-stream\": {","isFullCredit":false},{"lineNumber":13478,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":13479,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13480,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":13481,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13482,"author":{"gitId":"-"},"content":" \"node_modules/totalist\": {","isFullCredit":false},{"lineNumber":13483,"author":{"gitId":"-"},"content":" \"version\": \"1.1.0\",","isFullCredit":false},{"lineNumber":13484,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13485,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13486,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13487,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":13488,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13489,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13490,"author":{"gitId":"-"},"content":" \"node_modules/tr46\": {","isFullCredit":false},{"lineNumber":13491,"author":{"gitId":"-"},"content":" \"version\": \"0.0.3\",","isFullCredit":false},{"lineNumber":13492,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13493,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":13494,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13495,"author":{"gitId":"-"},"content":" \"node_modules/ts-api-utils\": {","isFullCredit":false},{"lineNumber":13496,"author":{"gitId":"-"},"content":" \"version\": \"1.3.0\",","isFullCredit":false},{"lineNumber":13497,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz\",","isFullCredit":false},{"lineNumber":13498,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":13499,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13500,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13501,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d16\"","isFullCredit":false},{"lineNumber":13502,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13503,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":13504,"author":{"gitId":"-"},"content":" \"typescript\": \"\u003e\u003d4.2.0\"","isFullCredit":false},{"lineNumber":13505,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13506,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13507,"author":{"gitId":"-"},"content":" \"node_modules/ts-loader\": {","isFullCredit":false},{"lineNumber":13508,"author":{"gitId":"-"},"content":" \"version\": \"9.4.2\",","isFullCredit":false},{"lineNumber":13509,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13510,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13511,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13512,"author":{"gitId":"-"},"content":" \"chalk\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":13513,"author":{"gitId":"-"},"content":" \"enhanced-resolve\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":13514,"author":{"gitId":"-"},"content":" \"micromatch\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":13515,"author":{"gitId":"-"},"content":" \"semver\": \"^7.3.4\"","isFullCredit":false},{"lineNumber":13516,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13517,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13518,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d12.0.0\"","isFullCredit":false},{"lineNumber":13519,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13520,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":13521,"author":{"gitId":"-"},"content":" \"typescript\": \"*\",","isFullCredit":false},{"lineNumber":13522,"author":{"gitId":"-"},"content":" \"webpack\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":13523,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13524,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13525,"author":{"gitId":"-"},"content":" \"node_modules/ts-loader/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":13526,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":13527,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13528,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13529,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13530,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":13531,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13532,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13533,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":13534,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13535,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13536,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":13537,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13538,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13539,"author":{"gitId":"-"},"content":" \"node_modules/ts-loader/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":13540,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":13541,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13542,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13543,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13544,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":13545,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":13546,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13547,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13548,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":13549,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13550,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13551,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":13552,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13553,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13554,"author":{"gitId":"-"},"content":" \"node_modules/ts-loader/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":13555,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":13556,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13557,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13558,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13559,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":13560,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13561,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13562,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":13563,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13564,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13565,"author":{"gitId":"-"},"content":" \"node_modules/ts-loader/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":13566,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":13567,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13568,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":13569,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13570,"author":{"gitId":"-"},"content":" \"node_modules/ts-loader/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":13571,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":13572,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13573,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13574,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13575,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":13576,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13577,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13578,"author":{"gitId":"-"},"content":" \"node_modules/ts-loader/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":13579,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":13580,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13581,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":13582,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13583,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":13584,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13585,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13586,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":13587,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13588,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13589,"author":{"gitId":"-"},"content":" \"node_modules/ts-loader/node_modules/semver\": {","isFullCredit":false},{"lineNumber":13590,"author":{"gitId":"-"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":13591,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13592,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":13593,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13594,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":13595,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13596,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":13597,"author":{"gitId":"-"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":13598,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13599,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13600,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":13601,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13602,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13603,"author":{"gitId":"-"},"content":" \"node_modules/ts-loader/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":13604,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":13605,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13606,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13607,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13608,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":13609,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13610,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13611,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":13612,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13613,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13614,"author":{"gitId":"-"},"content":" \"node_modules/ts-loader/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":13615,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":13616,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13617,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":13618,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13619,"author":{"gitId":"-"},"content":" \"node_modules/tsconfig-paths\": {","isFullCredit":false},{"lineNumber":13620,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.15.0\",","isFullCredit":false},{"lineNumber":13621,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13622,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13623,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13624,"author":{"gitId":"-"},"content":" \"@types/json5\": \"^0.0.29\",","isFullCredit":false},{"lineNumber":13625,"author":{"gitId":"sopa301"},"content":" \"json5\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":13626,"author":{"gitId":"-"},"content":" \"minimist\": \"^1.2.6\",","isFullCredit":false},{"lineNumber":13627,"author":{"gitId":"-"},"content":" \"strip-bom\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":13628,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13629,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13630,"author":{"gitId":"-"},"content":" \"node_modules/tsconfig-paths/node_modules/json5\": {","isFullCredit":false},{"lineNumber":13631,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":13632,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13633,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13634,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13635,"author":{"gitId":"-"},"content":" \"minimist\": \"^1.2.0\"","isFullCredit":false},{"lineNumber":13636,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13637,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":13638,"author":{"gitId":"-"},"content":" \"json5\": \"lib/cli.js\"","isFullCredit":false},{"lineNumber":13639,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13640,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13641,"author":{"gitId":"-"},"content":" \"node_modules/tslib\": {","isFullCredit":false},{"lineNumber":13642,"author":{"gitId":"-"},"content":" \"version\": \"2.4.1\",","isFullCredit":false},{"lineNumber":13643,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13644,"author":{"gitId":"-"},"content":" \"license\": \"0BSD\"","isFullCredit":false},{"lineNumber":13645,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13646,"author":{"gitId":"-"},"content":" \"node_modules/type-check\": {","isFullCredit":false},{"lineNumber":13647,"author":{"gitId":"-"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":13648,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13649,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13650,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13651,"author":{"gitId":"-"},"content":" \"prelude-ls\": \"^1.2.1\"","isFullCredit":false},{"lineNumber":13652,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13653,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13654,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8.0\"","isFullCredit":false},{"lineNumber":13655,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13656,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13657,"author":{"gitId":"-"},"content":" \"node_modules/type-fest\": {","isFullCredit":false},{"lineNumber":13658,"author":{"gitId":"sopa301"},"content":" \"version\": \"0.20.2\",","isFullCredit":false},{"lineNumber":13659,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz\",","isFullCredit":false},{"lineNumber":13660,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":13661,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13662,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13663,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":13664,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13665,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13666,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":13667,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13668,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13669,"author":{"gitId":"-"},"content":" \"node_modules/type-is\": {","isFullCredit":false},{"lineNumber":13670,"author":{"gitId":"-"},"content":" \"version\": \"1.6.18\",","isFullCredit":false},{"lineNumber":13671,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13672,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13673,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13674,"author":{"gitId":"-"},"content":" \"media-typer\": \"0.3.0\",","isFullCredit":false},{"lineNumber":13675,"author":{"gitId":"-"},"content":" \"mime-types\": \"~2.1.24\"","isFullCredit":false},{"lineNumber":13676,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13677,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13678,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.6\"","isFullCredit":false},{"lineNumber":13679,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13680,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13681,"author":{"gitId":"sopa301"},"content":" \"node_modules/typed-array-buffer\": {","isFullCredit":false},{"lineNumber":13682,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":13683,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13684,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13685,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13686,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":13687,"author":{"gitId":"sopa301"},"content":" \"es-errors\": \"^1.3.0\",","isFullCredit":false},{"lineNumber":13688,"author":{"gitId":"sopa301"},"content":" \"is-typed-array\": \"^1.1.13\"","isFullCredit":false},{"lineNumber":13689,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13690,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13691,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":13692,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":13693,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13694,"author":{"gitId":"sopa301"},"content":" \"node_modules/typed-array-byte-length\": {","isFullCredit":false},{"lineNumber":13695,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":13696,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13697,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13698,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13699,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":13700,"author":{"gitId":"sopa301"},"content":" \"for-each\": \"^0.3.3\",","isFullCredit":false},{"lineNumber":13701,"author":{"gitId":"sopa301"},"content":" \"gopd\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":13702,"author":{"gitId":"sopa301"},"content":" \"has-proto\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":13703,"author":{"gitId":"sopa301"},"content":" \"is-typed-array\": \"^1.1.13\"","isFullCredit":false},{"lineNumber":13704,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13705,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13706,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":13707,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13708,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13709,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":13710,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":13711,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13712,"author":{"gitId":"sopa301"},"content":" \"node_modules/typed-array-byte-offset\": {","isFullCredit":false},{"lineNumber":13713,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":13714,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13715,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13716,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13717,"author":{"gitId":"sopa301"},"content":" \"available-typed-arrays\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":13718,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":13719,"author":{"gitId":"sopa301"},"content":" \"for-each\": \"^0.3.3\",","isFullCredit":false},{"lineNumber":13720,"author":{"gitId":"sopa301"},"content":" \"gopd\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":13721,"author":{"gitId":"sopa301"},"content":" \"has-proto\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":13722,"author":{"gitId":"sopa301"},"content":" \"is-typed-array\": \"^1.1.13\"","isFullCredit":false},{"lineNumber":13723,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13724,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13725,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":13726,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13727,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13728,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":13729,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":13730,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13731,"author":{"gitId":"-"},"content":" \"node_modules/typed-array-length\": {","isFullCredit":false},{"lineNumber":13732,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.0.5\",","isFullCredit":false},{"lineNumber":13733,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13734,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13735,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13736,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":13737,"author":{"gitId":"-"},"content":" \"for-each\": \"^0.3.3\",","isFullCredit":false},{"lineNumber":13738,"author":{"gitId":"sopa301"},"content":" \"gopd\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":13739,"author":{"gitId":"sopa301"},"content":" \"has-proto\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":13740,"author":{"gitId":"sopa301"},"content":" \"is-typed-array\": \"^1.1.13\",","isFullCredit":false},{"lineNumber":13741,"author":{"gitId":"sopa301"},"content":" \"possible-typed-array-names\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":13742,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13743,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13744,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":13745,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13746,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13747,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":13748,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13749,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13750,"author":{"gitId":"-"},"content":" \"node_modules/typescript\": {","isFullCredit":false},{"lineNumber":13751,"author":{"gitId":"-"},"content":" \"version\": \"4.9.5\",","isFullCredit":false},{"lineNumber":13752,"author":{"gitId":"sopa301"},"content":" \"devOptional\": true,","isFullCredit":false},{"lineNumber":13753,"author":{"gitId":"sopa301"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":13754,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":13755,"author":{"gitId":"-"},"content":" \"tsc\": \"bin/tsc\",","isFullCredit":false},{"lineNumber":13756,"author":{"gitId":"-"},"content":" \"tsserver\": \"bin/tsserver\"","isFullCredit":false},{"lineNumber":13757,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13758,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13759,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4.2.0\"","isFullCredit":false},{"lineNumber":13760,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13761,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13762,"author":{"gitId":"sopa301"},"content":" \"node_modules/typescript-eslint\": {","isFullCredit":false},{"lineNumber":13763,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":13764,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":13765,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-wZZ+7mTQJCn4mGAvzdERtL4vwKGM/mF9cMSMeKUllz3Hgbd1Mdd5L60Q+nJmCio9RB4OyMMr0EX4Ry2Q7jiAyw\u003d\u003d\",","isFullCredit":false},{"lineNumber":13766,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13767,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13768,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/eslint-plugin\": \"7.7.0\",","isFullCredit":false},{"lineNumber":13769,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/parser\": \"7.7.0\",","isFullCredit":false},{"lineNumber":13770,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/utils\": \"7.7.0\"","isFullCredit":false},{"lineNumber":13771,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13772,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13773,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":13774,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13775,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13776,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":13777,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":13778,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13779,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":13780,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^8.56.0\"","isFullCredit":false},{"lineNumber":13781,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13782,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":13783,"author":{"gitId":"sopa301"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":13784,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":13785,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":13786,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13787,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13788,"author":{"gitId":"sopa301"},"content":" \"node_modules/typescript-eslint/node_modules/@typescript-eslint/utils\": {","isFullCredit":false},{"lineNumber":13789,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.7.0\",","isFullCredit":false},{"lineNumber":13790,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz\",","isFullCredit":false},{"lineNumber":13791,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig\u003d\u003d\",","isFullCredit":false},{"lineNumber":13792,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13793,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13794,"author":{"gitId":"sopa301"},"content":" \"@eslint-community/eslint-utils\": \"^4.4.0\",","isFullCredit":false},{"lineNumber":13795,"author":{"gitId":"sopa301"},"content":" \"@types/json-schema\": \"^7.0.15\",","isFullCredit":false},{"lineNumber":13796,"author":{"gitId":"sopa301"},"content":" \"@types/semver\": \"^7.5.8\",","isFullCredit":false},{"lineNumber":13797,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/scope-manager\": \"7.7.0\",","isFullCredit":false},{"lineNumber":13798,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/types\": \"7.7.0\",","isFullCredit":false},{"lineNumber":13799,"author":{"gitId":"sopa301"},"content":" \"@typescript-eslint/typescript-estree\": \"7.7.0\",","isFullCredit":false},{"lineNumber":13800,"author":{"gitId":"sopa301"},"content":" \"semver\": \"^7.6.0\"","isFullCredit":false},{"lineNumber":13801,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13802,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13803,"author":{"gitId":"sopa301"},"content":" \"node\": \"^18.18.0 || \u003e\u003d20.0.0\"","isFullCredit":false},{"lineNumber":13804,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13805,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13806,"author":{"gitId":"sopa301"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":13807,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/typescript-eslint\"","isFullCredit":false},{"lineNumber":13808,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13809,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":13810,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^8.56.0\"","isFullCredit":false},{"lineNumber":13811,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":13812,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13813,"author":{"gitId":"sopa301"},"content":" \"node_modules/typescript-eslint/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":13814,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":13815,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":13816,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":13817,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13818,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13819,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":13820,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13821,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13822,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":13823,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13824,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13825,"author":{"gitId":"sopa301"},"content":" \"node_modules/typescript-eslint/node_modules/semver\": {","isFullCredit":false},{"lineNumber":13826,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":13827,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.6.0.tgz\",","isFullCredit":false},{"lineNumber":13828,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":13829,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13830,"author":{"gitId":"sopa301"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13831,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":13832,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13833,"author":{"gitId":"sopa301"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":13834,"author":{"gitId":"sopa301"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":13835,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":13836,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13837,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":13838,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13839,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13840,"author":{"gitId":"sopa301"},"content":" \"node_modules/typescript-eslint/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":13841,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":13842,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":13843,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":13844,"author":{"gitId":"sopa301"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":13845,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13846,"author":{"gitId":"sopa301"},"content":" \"node_modules/uc.micro\": {","isFullCredit":false},{"lineNumber":13847,"author":{"gitId":"sopa301"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":13848,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":13849,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13850,"author":{"gitId":"-"},"content":" \"node_modules/unbox-primitive\": {","isFullCredit":false},{"lineNumber":13851,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":13852,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13853,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13854,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13855,"author":{"gitId":"-"},"content":" \"call-bind\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":13856,"author":{"gitId":"-"},"content":" \"has-bigints\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":13857,"author":{"gitId":"-"},"content":" \"has-symbols\": \"^1.0.3\",","isFullCredit":false},{"lineNumber":13858,"author":{"gitId":"-"},"content":" \"which-boxed-primitive\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":13859,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13860,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":13861,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":13862,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13863,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13864,"author":{"gitId":"-"},"content":" \"node_modules/unicode-canonical-property-names-ecmascript\": {","isFullCredit":false},{"lineNumber":13865,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":13866,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13867,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13868,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13869,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":13870,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13871,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13872,"author":{"gitId":"-"},"content":" \"node_modules/unicode-match-property-ecmascript\": {","isFullCredit":false},{"lineNumber":13873,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":13874,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13875,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13876,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13877,"author":{"gitId":"-"},"content":" \"unicode-canonical-property-names-ecmascript\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":13878,"author":{"gitId":"-"},"content":" \"unicode-property-aliases-ecmascript\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":13879,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13880,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13881,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":13882,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13883,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13884,"author":{"gitId":"-"},"content":" \"node_modules/unicode-match-property-value-ecmascript\": {","isFullCredit":false},{"lineNumber":13885,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":13886,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13887,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13888,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13889,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":13890,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13891,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13892,"author":{"gitId":"-"},"content":" \"node_modules/unicode-property-aliases-ecmascript\": {","isFullCredit":false},{"lineNumber":13893,"author":{"gitId":"-"},"content":" \"version\": \"2.1.0\",","isFullCredit":false},{"lineNumber":13894,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13895,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13896,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13897,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":13898,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13899,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13900,"author":{"gitId":"-"},"content":" \"node_modules/universalify\": {","isFullCredit":false},{"lineNumber":13901,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":13902,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13903,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13904,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13905,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10.0.0\"","isFullCredit":false},{"lineNumber":13906,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13907,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13908,"author":{"gitId":"-"},"content":" \"node_modules/unpipe\": {","isFullCredit":false},{"lineNumber":13909,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":13910,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13911,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13912,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13913,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":13914,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13915,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13916,"author":{"gitId":"-"},"content":" \"node_modules/update-browserslist-db\": {","isFullCredit":false},{"lineNumber":13917,"author":{"gitId":"-"},"content":" \"version\": \"1.0.10\",","isFullCredit":false},{"lineNumber":13918,"author":{"gitId":"-"},"content":" \"funding\": [","isFullCredit":false},{"lineNumber":13919,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":13920,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":13921,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/browserslist\"","isFullCredit":false},{"lineNumber":13922,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13923,"author":{"gitId":"-"},"content":" {","isFullCredit":false},{"lineNumber":13924,"author":{"gitId":"-"},"content":" \"type\": \"tidelift\",","isFullCredit":false},{"lineNumber":13925,"author":{"gitId":"-"},"content":" \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"","isFullCredit":false},{"lineNumber":13926,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13927,"author":{"gitId":"-"},"content":" ],","isFullCredit":false},{"lineNumber":13928,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13929,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13930,"author":{"gitId":"-"},"content":" \"escalade\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":13931,"author":{"gitId":"-"},"content":" \"picocolors\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":13932,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13933,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":13934,"author":{"gitId":"-"},"content":" \"browserslist-lint\": \"cli.js\"","isFullCredit":false},{"lineNumber":13935,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13936,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":13937,"author":{"gitId":"-"},"content":" \"browserslist\": \"\u003e\u003d 4.21.0\"","isFullCredit":false},{"lineNumber":13938,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13939,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13940,"author":{"gitId":"-"},"content":" \"node_modules/uri-js\": {","isFullCredit":false},{"lineNumber":13941,"author":{"gitId":"-"},"content":" \"version\": \"4.4.1\",","isFullCredit":false},{"lineNumber":13942,"author":{"gitId":"sopa301"},"content":" \"license\": \"BSD-2-Clause\",","isFullCredit":false},{"lineNumber":13943,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13944,"author":{"gitId":"-"},"content":" \"punycode\": \"^2.1.0\"","isFullCredit":false},{"lineNumber":13945,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13946,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13947,"author":{"gitId":"-"},"content":" \"node_modules/util-deprecate\": {","isFullCredit":false},{"lineNumber":13948,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":13949,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":13950,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13951,"author":{"gitId":"-"},"content":" \"node_modules/utila\": {","isFullCredit":false},{"lineNumber":13952,"author":{"gitId":"-"},"content":" \"version\": \"0.4.0\",","isFullCredit":false},{"lineNumber":13953,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13954,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":13955,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13956,"author":{"gitId":"-"},"content":" \"node_modules/utils-merge\": {","isFullCredit":false},{"lineNumber":13957,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":13958,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13959,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13960,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13961,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4.0\"","isFullCredit":false},{"lineNumber":13962,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13963,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13964,"author":{"gitId":"-"},"content":" \"node_modules/validate-npm-package-license\": {","isFullCredit":false},{"lineNumber":13965,"author":{"gitId":"-"},"content":" \"version\": \"3.0.4\",","isFullCredit":false},{"lineNumber":13966,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13967,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":13968,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13969,"author":{"gitId":"-"},"content":" \"spdx-correct\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":13970,"author":{"gitId":"-"},"content":" \"spdx-expression-parse\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":13971,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13972,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13973,"author":{"gitId":"-"},"content":" \"node_modules/vary\": {","isFullCredit":false},{"lineNumber":13974,"author":{"gitId":"-"},"content":" \"version\": \"1.1.2\",","isFullCredit":false},{"lineNumber":13975,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13976,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13977,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13978,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.8\"","isFullCredit":false},{"lineNumber":13979,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13980,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13981,"author":{"gitId":"-"},"content":" \"node_modules/void-elements\": {","isFullCredit":false},{"lineNumber":13982,"author":{"gitId":"-"},"content":" \"version\": \"3.1.0\",","isFullCredit":false},{"lineNumber":13983,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":13984,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13985,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":13986,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":13987,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":13988,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13989,"author":{"gitId":"-"},"content":" \"node_modules/vue\": {","isFullCredit":false},{"lineNumber":13990,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.21\",","isFullCredit":false},{"lineNumber":13991,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":13992,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":13993,"author":{"gitId":"sopa301"},"content":" \"@vue/compiler-dom\": \"3.4.21\",","isFullCredit":false},{"lineNumber":13994,"author":{"gitId":"sopa301"},"content":" \"@vue/compiler-sfc\": \"3.4.21\",","isFullCredit":false},{"lineNumber":13995,"author":{"gitId":"sopa301"},"content":" \"@vue/runtime-dom\": \"3.4.21\",","isFullCredit":false},{"lineNumber":13996,"author":{"gitId":"sopa301"},"content":" \"@vue/server-renderer\": \"3.4.21\",","isFullCredit":false},{"lineNumber":13997,"author":{"gitId":"sopa301"},"content":" \"@vue/shared\": \"3.4.21\"","isFullCredit":false},{"lineNumber":13998,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":13999,"author":{"gitId":"sopa301"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":14000,"author":{"gitId":"sopa301"},"content":" \"typescript\": \"*\"","isFullCredit":false},{"lineNumber":14001,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14002,"author":{"gitId":"sopa301"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":14003,"author":{"gitId":"sopa301"},"content":" \"typescript\": {","isFullCredit":false},{"lineNumber":14004,"author":{"gitId":"sopa301"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":14005,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14006,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14007,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14008,"author":{"gitId":"-"},"content":" \"node_modules/vue-eslint-parser\": {","isFullCredit":false},{"lineNumber":14009,"author":{"gitId":"sopa301"},"content":" \"version\": \"9.4.2\",","isFullCredit":false},{"lineNumber":14010,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz\",","isFullCredit":false},{"lineNumber":14011,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ\u003d\u003d\",","isFullCredit":false},{"lineNumber":14012,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14013,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14014,"author":{"gitId":"sopa301"},"content":" \"debug\": \"^4.3.4\",","isFullCredit":false},{"lineNumber":14015,"author":{"gitId":"sopa301"},"content":" \"eslint-scope\": \"^7.1.1\",","isFullCredit":false},{"lineNumber":14016,"author":{"gitId":"sopa301"},"content":" \"eslint-visitor-keys\": \"^3.3.0\",","isFullCredit":false},{"lineNumber":14017,"author":{"gitId":"sopa301"},"content":" \"espree\": \"^9.3.1\",","isFullCredit":false},{"lineNumber":14018,"author":{"gitId":"-"},"content":" \"esquery\": \"^1.4.0\",","isFullCredit":false},{"lineNumber":14019,"author":{"gitId":"-"},"content":" \"lodash\": \"^4.17.21\",","isFullCredit":false},{"lineNumber":14020,"author":{"gitId":"sopa301"},"content":" \"semver\": \"^7.3.6\"","isFullCredit":false},{"lineNumber":14021,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14022,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14023,"author":{"gitId":"sopa301"},"content":" \"node\": \"^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":14024,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14025,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14026,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/mysticatea\"","isFullCredit":false},{"lineNumber":14027,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14028,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":14029,"author":{"gitId":"-"},"content":" \"eslint\": \"\u003e\u003d6.0.0\"","isFullCredit":false},{"lineNumber":14030,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14031,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14032,"author":{"gitId":"-"},"content":" \"node_modules/vue-eslint-parser/node_modules/eslint-scope\": {","isFullCredit":false},{"lineNumber":14033,"author":{"gitId":"sopa301"},"content":" \"version\": \"7.2.2\",","isFullCredit":false},{"lineNumber":14034,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz\",","isFullCredit":false},{"lineNumber":14035,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg\u003d\u003d\",","isFullCredit":false},{"lineNumber":14036,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14037,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14038,"author":{"gitId":"-"},"content":" \"esrecurse\": \"^4.3.0\",","isFullCredit":false},{"lineNumber":14039,"author":{"gitId":"-"},"content":" \"estraverse\": \"^5.2.0\"","isFullCredit":false},{"lineNumber":14040,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14041,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14042,"author":{"gitId":"-"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":14043,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":14044,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14045,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":14046,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14047,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14048,"author":{"gitId":"-"},"content":" \"node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys\": {","isFullCredit":false},{"lineNumber":14049,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.4.3\",","isFullCredit":false},{"lineNumber":14050,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz\",","isFullCredit":false},{"lineNumber":14051,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag\u003d\u003d\",","isFullCredit":false},{"lineNumber":14052,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14053,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14054,"author":{"gitId":"-"},"content":" \"node\": \"^12.22.0 || ^14.17.0 || \u003e\u003d16.0.0\"","isFullCredit":false},{"lineNumber":14055,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":14056,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14057,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://opencollective.com/eslint\"","isFullCredit":false},{"lineNumber":14058,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14059,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14060,"author":{"gitId":"-"},"content":" \"node_modules/vue-eslint-parser/node_modules/estraverse\": {","isFullCredit":false},{"lineNumber":14061,"author":{"gitId":"-"},"content":" \"version\": \"5.3.0\",","isFullCredit":false},{"lineNumber":14062,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz\",","isFullCredit":false},{"lineNumber":14063,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA\u003d\u003d\",","isFullCredit":false},{"lineNumber":14064,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14065,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14066,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4.0\"","isFullCredit":false},{"lineNumber":14067,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14068,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14069,"author":{"gitId":"-"},"content":" \"node_modules/vue-eslint-parser/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":14070,"author":{"gitId":"-"},"content":" \"version\": \"6.0.0\",","isFullCredit":false},{"lineNumber":14071,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz\",","isFullCredit":false},{"lineNumber":14072,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA\u003d\u003d\",","isFullCredit":false},{"lineNumber":14073,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14074,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14075,"author":{"gitId":"-"},"content":" \"yallist\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":14076,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14077,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14078,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":14079,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14080,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14081,"author":{"gitId":"-"},"content":" \"node_modules/vue-eslint-parser/node_modules/semver\": {","isFullCredit":false},{"lineNumber":14082,"author":{"gitId":"-"},"content":" \"version\": \"7.6.0\",","isFullCredit":false},{"lineNumber":14083,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/semver/-/semver-7.6.0.tgz\",","isFullCredit":false},{"lineNumber":14084,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg\u003d\u003d\",","isFullCredit":false},{"lineNumber":14085,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14086,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14087,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":14088,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14089,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":14090,"author":{"gitId":"-"},"content":" \"semver\": \"bin/semver.js\"","isFullCredit":false},{"lineNumber":14091,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14092,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14093,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":14094,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14095,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14096,"author":{"gitId":"-"},"content":" \"node_modules/vue-eslint-parser/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":14097,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":14098,"author":{"gitId":"-"},"content":" \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":14099,"author":{"gitId":"-"},"content":" \"integrity\": \"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A\u003d\u003d\",","isFullCredit":false},{"lineNumber":14100,"author":{"gitId":"-"},"content":" \"dev\": true","isFullCredit":false},{"lineNumber":14101,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14102,"author":{"gitId":"-"},"content":" \"node_modules/vue-hot-reload-api\": {","isFullCredit":false},{"lineNumber":14103,"author":{"gitId":"-"},"content":" \"version\": \"2.3.4\",","isFullCredit":false},{"lineNumber":14104,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14105,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":14106,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14107,"author":{"gitId":"-"},"content":" \"node_modules/vue-loader\": {","isFullCredit":false},{"lineNumber":14108,"author":{"gitId":"-"},"content":" \"version\": \"17.4.2\",","isFullCredit":false},{"lineNumber":14109,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14110,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14111,"author":{"gitId":"-"},"content":" \"chalk\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":14112,"author":{"gitId":"-"},"content":" \"hash-sum\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":14113,"author":{"gitId":"-"},"content":" \"watchpack\": \"^2.4.0\"","isFullCredit":false},{"lineNumber":14114,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14115,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":14116,"author":{"gitId":"-"},"content":" \"webpack\": \"^4.1.0 || ^5.0.0-0\"","isFullCredit":false},{"lineNumber":14117,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14118,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":14119,"author":{"gitId":"-"},"content":" \"@vue/compiler-sfc\": {","isFullCredit":false},{"lineNumber":14120,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":14121,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14122,"author":{"gitId":"-"},"content":" \"vue\": {","isFullCredit":false},{"lineNumber":14123,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":14124,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14125,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14126,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14127,"author":{"gitId":"-"},"content":" \"node_modules/vue-loader/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":14128,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":14129,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14130,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14131,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":14132,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14133,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14134,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":14135,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14136,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14137,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":14138,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14139,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14140,"author":{"gitId":"-"},"content":" \"node_modules/vue-loader/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":14141,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":14142,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14143,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14144,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":14145,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":14146,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14147,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14148,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":14149,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14150,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14151,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":14152,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14153,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14154,"author":{"gitId":"-"},"content":" \"node_modules/vue-loader/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":14155,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":14156,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14157,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14158,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":14159,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14160,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14161,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":14162,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14163,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14164,"author":{"gitId":"-"},"content":" \"node_modules/vue-loader/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":14165,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":14166,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":14167,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14168,"author":{"gitId":"-"},"content":" \"node_modules/vue-loader/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":14169,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":14170,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14171,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14172,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":14173,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14174,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14175,"author":{"gitId":"-"},"content":" \"node_modules/vue-loader/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":14176,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":14177,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14178,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14179,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":14180,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14181,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14182,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":14183,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14184,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14185,"author":{"gitId":"-"},"content":" \"node_modules/vue-loading-overlay\": {","isFullCredit":false},{"lineNumber":14186,"author":{"gitId":"sopa301"},"content":" \"version\": \"6.0.4\",","isFullCredit":false},{"lineNumber":14187,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14188,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14189,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d12.13.0\"","isFullCredit":false},{"lineNumber":14190,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14191,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":14192,"author":{"gitId":"sopa301"},"content":" \"vue\": \"^3.2.0\"","isFullCredit":false},{"lineNumber":14193,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14194,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14195,"author":{"gitId":"-"},"content":" \"node_modules/vue-observe-visibility\": {","isFullCredit":false},{"lineNumber":14196,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":14197,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":14198,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14199,"author":{"gitId":"-"},"content":" \"node_modules/vue-router\": {","isFullCredit":false},{"lineNumber":14200,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":14201,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14202,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14203,"author":{"gitId":"sopa301"},"content":" \"@vue/devtools-api\": \"^6.5.1\"","isFullCredit":false},{"lineNumber":14204,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14205,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14206,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/posva\"","isFullCredit":false},{"lineNumber":14207,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14208,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":14209,"author":{"gitId":"-"},"content":" \"vue\": \"^3.2.0\"","isFullCredit":false},{"lineNumber":14210,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14211,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14212,"author":{"gitId":"-"},"content":" \"node_modules/vue-style-loader\": {","isFullCredit":false},{"lineNumber":14213,"author":{"gitId":"-"},"content":" \"version\": \"4.1.3\",","isFullCredit":false},{"lineNumber":14214,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14215,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14216,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14217,"author":{"gitId":"-"},"content":" \"hash-sum\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":14218,"author":{"gitId":"-"},"content":" \"loader-utils\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":14219,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14220,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14221,"author":{"gitId":"-"},"content":" \"node_modules/vue-style-loader/node_modules/hash-sum\": {","isFullCredit":false},{"lineNumber":14222,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":14223,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14224,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":14225,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14226,"author":{"gitId":"-"},"content":" \"node_modules/vue-template-es2015-compiler\": {","isFullCredit":false},{"lineNumber":14227,"author":{"gitId":"-"},"content":" \"version\": \"1.9.1\",","isFullCredit":false},{"lineNumber":14228,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14229,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":14230,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14231,"author":{"gitId":"-"},"content":" \"node_modules/vuex\": {","isFullCredit":false},{"lineNumber":14232,"author":{"gitId":"-"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":14233,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14234,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14235,"author":{"gitId":"-"},"content":" \"@vue/devtools-api\": \"^6.0.0-beta.11\"","isFullCredit":false},{"lineNumber":14236,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14237,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":14238,"author":{"gitId":"-"},"content":" \"vue\": \"^3.2.0\"","isFullCredit":false},{"lineNumber":14239,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14240,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14241,"author":{"gitId":"-"},"content":" \"node_modules/walk\": {","isFullCredit":false},{"lineNumber":14242,"author":{"gitId":"-"},"content":" \"version\": \"2.3.15\",","isFullCredit":false},{"lineNumber":14243,"author":{"gitId":"sopa301"},"content":" \"license\": \"(MIT OR Apache-2.0)\",","isFullCredit":false},{"lineNumber":14244,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14245,"author":{"gitId":"-"},"content":" \"foreachasync\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":14246,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14247,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14248,"author":{"gitId":"-"},"content":" \"node_modules/watchpack\": {","isFullCredit":false},{"lineNumber":14249,"author":{"gitId":"-"},"content":" \"version\": \"2.4.0\",","isFullCredit":false},{"lineNumber":14250,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14251,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14252,"author":{"gitId":"-"},"content":" \"glob-to-regexp\": \"^0.4.1\",","isFullCredit":false},{"lineNumber":14253,"author":{"gitId":"-"},"content":" \"graceful-fs\": \"^4.1.2\"","isFullCredit":false},{"lineNumber":14254,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14255,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14256,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10.13.0\"","isFullCredit":false},{"lineNumber":14257,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14258,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14259,"author":{"gitId":"-"},"content":" \"node_modules/wbuf\": {","isFullCredit":false},{"lineNumber":14260,"author":{"gitId":"-"},"content":" \"version\": \"1.7.3\",","isFullCredit":false},{"lineNumber":14261,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14262,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14263,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14264,"author":{"gitId":"-"},"content":" \"minimalistic-assert\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":14265,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14266,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14267,"author":{"gitId":"-"},"content":" \"node_modules/wcwidth\": {","isFullCredit":false},{"lineNumber":14268,"author":{"gitId":"-"},"content":" \"version\": \"1.0.1\",","isFullCredit":false},{"lineNumber":14269,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14270,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14271,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14272,"author":{"gitId":"-"},"content":" \"defaults\": \"^1.0.3\"","isFullCredit":false},{"lineNumber":14273,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14274,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14275,"author":{"gitId":"-"},"content":" \"node_modules/webidl-conversions\": {","isFullCredit":false},{"lineNumber":14276,"author":{"gitId":"-"},"content":" \"version\": \"3.0.1\",","isFullCredit":false},{"lineNumber":14277,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14278,"author":{"gitId":"-"},"content":" \"license\": \"BSD-2-Clause\"","isFullCredit":false},{"lineNumber":14279,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14280,"author":{"gitId":"-"},"content":" \"node_modules/webpack\": {","isFullCredit":false},{"lineNumber":14281,"author":{"gitId":"-"},"content":" \"version\": \"5.76.2\",","isFullCredit":false},{"lineNumber":14282,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14283,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14284,"author":{"gitId":"-"},"content":" \"@types/eslint-scope\": \"^3.7.3\",","isFullCredit":false},{"lineNumber":14285,"author":{"gitId":"-"},"content":" \"@types/estree\": \"^0.0.51\",","isFullCredit":false},{"lineNumber":14286,"author":{"gitId":"-"},"content":" \"@webassemblyjs/ast\": \"1.11.1\",","isFullCredit":false},{"lineNumber":14287,"author":{"gitId":"-"},"content":" \"@webassemblyjs/wasm-edit\": \"1.11.1\",","isFullCredit":false},{"lineNumber":14288,"author":{"gitId":"-"},"content":" \"@webassemblyjs/wasm-parser\": \"1.11.1\",","isFullCredit":false},{"lineNumber":14289,"author":{"gitId":"-"},"content":" \"acorn\": \"^8.7.1\",","isFullCredit":false},{"lineNumber":14290,"author":{"gitId":"-"},"content":" \"acorn-import-assertions\": \"^1.7.6\",","isFullCredit":false},{"lineNumber":14291,"author":{"gitId":"-"},"content":" \"browserslist\": \"^4.14.5\",","isFullCredit":false},{"lineNumber":14292,"author":{"gitId":"-"},"content":" \"chrome-trace-event\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":14293,"author":{"gitId":"-"},"content":" \"enhanced-resolve\": \"^5.10.0\",","isFullCredit":false},{"lineNumber":14294,"author":{"gitId":"-"},"content":" \"es-module-lexer\": \"^0.9.0\",","isFullCredit":false},{"lineNumber":14295,"author":{"gitId":"-"},"content":" \"eslint-scope\": \"5.1.1\",","isFullCredit":false},{"lineNumber":14296,"author":{"gitId":"-"},"content":" \"events\": \"^3.2.0\",","isFullCredit":false},{"lineNumber":14297,"author":{"gitId":"-"},"content":" \"glob-to-regexp\": \"^0.4.1\",","isFullCredit":false},{"lineNumber":14298,"author":{"gitId":"-"},"content":" \"graceful-fs\": \"^4.2.9\",","isFullCredit":false},{"lineNumber":14299,"author":{"gitId":"-"},"content":" \"json-parse-even-better-errors\": \"^2.3.1\",","isFullCredit":false},{"lineNumber":14300,"author":{"gitId":"-"},"content":" \"loader-runner\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":14301,"author":{"gitId":"-"},"content":" \"mime-types\": \"^2.1.27\",","isFullCredit":false},{"lineNumber":14302,"author":{"gitId":"-"},"content":" \"neo-async\": \"^2.6.2\",","isFullCredit":false},{"lineNumber":14303,"author":{"gitId":"-"},"content":" \"schema-utils\": \"^3.1.0\",","isFullCredit":false},{"lineNumber":14304,"author":{"gitId":"-"},"content":" \"tapable\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":14305,"author":{"gitId":"-"},"content":" \"terser-webpack-plugin\": \"^5.1.3\",","isFullCredit":false},{"lineNumber":14306,"author":{"gitId":"-"},"content":" \"watchpack\": \"^2.4.0\",","isFullCredit":false},{"lineNumber":14307,"author":{"gitId":"-"},"content":" \"webpack-sources\": \"^3.2.3\"","isFullCredit":false},{"lineNumber":14308,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14309,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":14310,"author":{"gitId":"-"},"content":" \"webpack\": \"bin/webpack.js\"","isFullCredit":false},{"lineNumber":14311,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14312,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14313,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10.13.0\"","isFullCredit":false},{"lineNumber":14314,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14315,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14316,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":14317,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":14318,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14319,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":14320,"author":{"gitId":"-"},"content":" \"webpack-cli\": {","isFullCredit":false},{"lineNumber":14321,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":14322,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14323,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14324,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14325,"author":{"gitId":"-"},"content":" \"node_modules/webpack-bundle-analyzer\": {","isFullCredit":false},{"lineNumber":14326,"author":{"gitId":"-"},"content":" \"version\": \"4.7.0\",","isFullCredit":false},{"lineNumber":14327,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14328,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14329,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14330,"author":{"gitId":"-"},"content":" \"acorn\": \"^8.0.4\",","isFullCredit":false},{"lineNumber":14331,"author":{"gitId":"-"},"content":" \"acorn-walk\": \"^8.0.0\",","isFullCredit":false},{"lineNumber":14332,"author":{"gitId":"-"},"content":" \"chalk\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":14333,"author":{"gitId":"-"},"content":" \"commander\": \"^7.2.0\",","isFullCredit":false},{"lineNumber":14334,"author":{"gitId":"-"},"content":" \"gzip-size\": \"^6.0.0\",","isFullCredit":false},{"lineNumber":14335,"author":{"gitId":"-"},"content":" \"lodash\": \"^4.17.20\",","isFullCredit":false},{"lineNumber":14336,"author":{"gitId":"-"},"content":" \"opener\": \"^1.5.2\",","isFullCredit":false},{"lineNumber":14337,"author":{"gitId":"-"},"content":" \"sirv\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":14338,"author":{"gitId":"-"},"content":" \"ws\": \"^7.3.1\"","isFullCredit":false},{"lineNumber":14339,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14340,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":14341,"author":{"gitId":"-"},"content":" \"webpack-bundle-analyzer\": \"lib/bin/analyzer.js\"","isFullCredit":false},{"lineNumber":14342,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14343,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14344,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10.13.0\"","isFullCredit":false},{"lineNumber":14345,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14346,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14347,"author":{"gitId":"-"},"content":" \"node_modules/webpack-bundle-analyzer/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":14348,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":14349,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14350,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14351,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14352,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":14353,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14354,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14355,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":14356,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14357,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14358,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":14359,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14360,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14361,"author":{"gitId":"-"},"content":" \"node_modules/webpack-bundle-analyzer/node_modules/chalk\": {","isFullCredit":false},{"lineNumber":14362,"author":{"gitId":"-"},"content":" \"version\": \"4.1.2\",","isFullCredit":false},{"lineNumber":14363,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14364,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14365,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14366,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":14367,"author":{"gitId":"-"},"content":" \"supports-color\": \"^7.1.0\"","isFullCredit":false},{"lineNumber":14368,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14369,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14370,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":14371,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14372,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14373,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/chalk?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":14374,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14375,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14376,"author":{"gitId":"-"},"content":" \"node_modules/webpack-bundle-analyzer/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":14377,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":14378,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14379,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14380,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14381,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":14382,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14383,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14384,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":14385,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14386,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14387,"author":{"gitId":"-"},"content":" \"node_modules/webpack-bundle-analyzer/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":14388,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":14389,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14390,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":14391,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14392,"author":{"gitId":"-"},"content":" \"node_modules/webpack-bundle-analyzer/node_modules/commander\": {","isFullCredit":false},{"lineNumber":14393,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":14394,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14395,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14396,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14397,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10\"","isFullCredit":false},{"lineNumber":14398,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14399,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14400,"author":{"gitId":"-"},"content":" \"node_modules/webpack-bundle-analyzer/node_modules/has-flag\": {","isFullCredit":false},{"lineNumber":14401,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":14402,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14403,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14404,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14405,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":14406,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14407,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14408,"author":{"gitId":"-"},"content":" \"node_modules/webpack-bundle-analyzer/node_modules/supports-color\": {","isFullCredit":false},{"lineNumber":14409,"author":{"gitId":"-"},"content":" \"version\": \"7.2.0\",","isFullCredit":false},{"lineNumber":14410,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14411,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14412,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14413,"author":{"gitId":"-"},"content":" \"has-flag\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":14414,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14415,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14416,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":14417,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14418,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14419,"author":{"gitId":"-"},"content":" \"node_modules/webpack-chain\": {","isFullCredit":false},{"lineNumber":14420,"author":{"gitId":"-"},"content":" \"version\": \"6.5.1\",","isFullCredit":false},{"lineNumber":14421,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14422,"author":{"gitId":"-"},"content":" \"license\": \"MPL-2.0\",","isFullCredit":false},{"lineNumber":14423,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14424,"author":{"gitId":"-"},"content":" \"deepmerge\": \"^1.5.2\",","isFullCredit":false},{"lineNumber":14425,"author":{"gitId":"-"},"content":" \"javascript-stringify\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":14426,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14427,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14428,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":14429,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14430,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14431,"author":{"gitId":"-"},"content":" \"node_modules/webpack-chain/node_modules/deepmerge\": {","isFullCredit":false},{"lineNumber":14432,"author":{"gitId":"-"},"content":" \"version\": \"1.5.2\",","isFullCredit":false},{"lineNumber":14433,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14434,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14435,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14436,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":14437,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14438,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14439,"author":{"gitId":"-"},"content":" \"node_modules/webpack-dev-middleware\": {","isFullCredit":false},{"lineNumber":14440,"author":{"gitId":"-"},"content":" \"version\": \"5.3.4\",","isFullCredit":false},{"lineNumber":14441,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14442,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14443,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14444,"author":{"gitId":"-"},"content":" \"colorette\": \"^2.0.10\",","isFullCredit":false},{"lineNumber":14445,"author":{"gitId":"-"},"content":" \"memfs\": \"^3.4.3\",","isFullCredit":false},{"lineNumber":14446,"author":{"gitId":"-"},"content":" \"mime-types\": \"^2.1.31\",","isFullCredit":false},{"lineNumber":14447,"author":{"gitId":"-"},"content":" \"range-parser\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":14448,"author":{"gitId":"-"},"content":" \"schema-utils\": \"^4.0.0\"","isFullCredit":false},{"lineNumber":14449,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14450,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14451,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 12.13.0\"","isFullCredit":false},{"lineNumber":14452,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14453,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14454,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":14455,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":14456,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14457,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":14458,"author":{"gitId":"-"},"content":" \"webpack\": \"^4.0.0 || ^5.0.0\"","isFullCredit":false},{"lineNumber":14459,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14460,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14461,"author":{"gitId":"-"},"content":" \"node_modules/webpack-dev-middleware/node_modules/ajv\": {","isFullCredit":false},{"lineNumber":14462,"author":{"gitId":"-"},"content":" \"version\": \"8.12.0\",","isFullCredit":false},{"lineNumber":14463,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14464,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14465,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14466,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":14467,"author":{"gitId":"-"},"content":" \"json-schema-traverse\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":14468,"author":{"gitId":"-"},"content":" \"require-from-string\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":14469,"author":{"gitId":"-"},"content":" \"uri-js\": \"^4.2.2\"","isFullCredit":false},{"lineNumber":14470,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14471,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14472,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":14473,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/epoberezkin\"","isFullCredit":false},{"lineNumber":14474,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14475,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14476,"author":{"gitId":"-"},"content":" \"node_modules/webpack-dev-middleware/node_modules/ajv-keywords\": {","isFullCredit":false},{"lineNumber":14477,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":14478,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14479,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14480,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14481,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.3\"","isFullCredit":false},{"lineNumber":14482,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14483,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":14484,"author":{"gitId":"-"},"content":" \"ajv\": \"^8.8.2\"","isFullCredit":false},{"lineNumber":14485,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14486,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14487,"author":{"gitId":"-"},"content":" \"node_modules/webpack-dev-middleware/node_modules/json-schema-traverse\": {","isFullCredit":false},{"lineNumber":14488,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":14489,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14490,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":14491,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14492,"author":{"gitId":"-"},"content":" \"node_modules/webpack-dev-middleware/node_modules/schema-utils\": {","isFullCredit":false},{"lineNumber":14493,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":14494,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14495,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14496,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14497,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.9\",","isFullCredit":false},{"lineNumber":14498,"author":{"gitId":"-"},"content":" \"ajv\": \"^8.8.0\",","isFullCredit":false},{"lineNumber":14499,"author":{"gitId":"-"},"content":" \"ajv-formats\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":14500,"author":{"gitId":"-"},"content":" \"ajv-keywords\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":14501,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14502,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14503,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 12.13.0\"","isFullCredit":false},{"lineNumber":14504,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14505,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14506,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":14507,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":14508,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14509,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14510,"author":{"gitId":"-"},"content":" \"node_modules/webpack-dev-server\": {","isFullCredit":false},{"lineNumber":14511,"author":{"gitId":"-"},"content":" \"version\": \"4.11.1\",","isFullCredit":false},{"lineNumber":14512,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14513,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14514,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14515,"author":{"gitId":"-"},"content":" \"@types/bonjour\": \"^3.5.9\",","isFullCredit":false},{"lineNumber":14516,"author":{"gitId":"-"},"content":" \"@types/connect-history-api-fallback\": \"^1.3.5\",","isFullCredit":false},{"lineNumber":14517,"author":{"gitId":"-"},"content":" \"@types/express\": \"^4.17.13\",","isFullCredit":false},{"lineNumber":14518,"author":{"gitId":"-"},"content":" \"@types/serve-index\": \"^1.9.1\",","isFullCredit":false},{"lineNumber":14519,"author":{"gitId":"-"},"content":" \"@types/serve-static\": \"^1.13.10\",","isFullCredit":false},{"lineNumber":14520,"author":{"gitId":"-"},"content":" \"@types/sockjs\": \"^0.3.33\",","isFullCredit":false},{"lineNumber":14521,"author":{"gitId":"-"},"content":" \"@types/ws\": \"^8.5.1\",","isFullCredit":false},{"lineNumber":14522,"author":{"gitId":"-"},"content":" \"ansi-html-community\": \"^0.0.8\",","isFullCredit":false},{"lineNumber":14523,"author":{"gitId":"-"},"content":" \"bonjour-service\": \"^1.0.11\",","isFullCredit":false},{"lineNumber":14524,"author":{"gitId":"-"},"content":" \"chokidar\": \"^3.5.3\",","isFullCredit":false},{"lineNumber":14525,"author":{"gitId":"-"},"content":" \"colorette\": \"^2.0.10\",","isFullCredit":false},{"lineNumber":14526,"author":{"gitId":"-"},"content":" \"compression\": \"^1.7.4\",","isFullCredit":false},{"lineNumber":14527,"author":{"gitId":"-"},"content":" \"connect-history-api-fallback\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":14528,"author":{"gitId":"-"},"content":" \"default-gateway\": \"^6.0.3\",","isFullCredit":false},{"lineNumber":14529,"author":{"gitId":"-"},"content":" \"express\": \"^4.17.3\",","isFullCredit":false},{"lineNumber":14530,"author":{"gitId":"-"},"content":" \"graceful-fs\": \"^4.2.6\",","isFullCredit":false},{"lineNumber":14531,"author":{"gitId":"-"},"content":" \"html-entities\": \"^2.3.2\",","isFullCredit":false},{"lineNumber":14532,"author":{"gitId":"-"},"content":" \"http-proxy-middleware\": \"^2.0.3\",","isFullCredit":false},{"lineNumber":14533,"author":{"gitId":"-"},"content":" \"ipaddr.js\": \"^2.0.1\",","isFullCredit":false},{"lineNumber":14534,"author":{"gitId":"-"},"content":" \"open\": \"^8.0.9\",","isFullCredit":false},{"lineNumber":14535,"author":{"gitId":"-"},"content":" \"p-retry\": \"^4.5.0\",","isFullCredit":false},{"lineNumber":14536,"author":{"gitId":"-"},"content":" \"rimraf\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":14537,"author":{"gitId":"-"},"content":" \"schema-utils\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":14538,"author":{"gitId":"-"},"content":" \"selfsigned\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":14539,"author":{"gitId":"-"},"content":" \"serve-index\": \"^1.9.1\",","isFullCredit":false},{"lineNumber":14540,"author":{"gitId":"-"},"content":" \"sockjs\": \"^0.3.24\",","isFullCredit":false},{"lineNumber":14541,"author":{"gitId":"-"},"content":" \"spdy\": \"^4.0.2\",","isFullCredit":false},{"lineNumber":14542,"author":{"gitId":"-"},"content":" \"webpack-dev-middleware\": \"^5.3.1\",","isFullCredit":false},{"lineNumber":14543,"author":{"gitId":"-"},"content":" \"ws\": \"^8.4.2\"","isFullCredit":false},{"lineNumber":14544,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14545,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":14546,"author":{"gitId":"-"},"content":" \"webpack-dev-server\": \"bin/webpack-dev-server.js\"","isFullCredit":false},{"lineNumber":14547,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14548,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14549,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 12.13.0\"","isFullCredit":false},{"lineNumber":14550,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14551,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14552,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":14553,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":14554,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14555,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":14556,"author":{"gitId":"-"},"content":" \"webpack\": \"^4.37.0 || ^5.0.0\"","isFullCredit":false},{"lineNumber":14557,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14558,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":14559,"author":{"gitId":"-"},"content":" \"webpack-cli\": {","isFullCredit":false},{"lineNumber":14560,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":14561,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14562,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14563,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14564,"author":{"gitId":"-"},"content":" \"node_modules/webpack-dev-server/node_modules/ajv\": {","isFullCredit":false},{"lineNumber":14565,"author":{"gitId":"-"},"content":" \"version\": \"8.12.0\",","isFullCredit":false},{"lineNumber":14566,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14567,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14568,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14569,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":14570,"author":{"gitId":"-"},"content":" \"json-schema-traverse\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":14571,"author":{"gitId":"-"},"content":" \"require-from-string\": \"^2.0.2\",","isFullCredit":false},{"lineNumber":14572,"author":{"gitId":"-"},"content":" \"uri-js\": \"^4.2.2\"","isFullCredit":false},{"lineNumber":14573,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14574,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14575,"author":{"gitId":"-"},"content":" \"type\": \"github\",","isFullCredit":false},{"lineNumber":14576,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/epoberezkin\"","isFullCredit":false},{"lineNumber":14577,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14578,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14579,"author":{"gitId":"-"},"content":" \"node_modules/webpack-dev-server/node_modules/ajv-keywords\": {","isFullCredit":false},{"lineNumber":14580,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":14581,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14582,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14583,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14584,"author":{"gitId":"-"},"content":" \"fast-deep-equal\": \"^3.1.3\"","isFullCredit":false},{"lineNumber":14585,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14586,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":14587,"author":{"gitId":"-"},"content":" \"ajv\": \"^8.8.2\"","isFullCredit":false},{"lineNumber":14588,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14589,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14590,"author":{"gitId":"-"},"content":" \"node_modules/webpack-dev-server/node_modules/json-schema-traverse\": {","isFullCredit":false},{"lineNumber":14591,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":14592,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14593,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":14594,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14595,"author":{"gitId":"-"},"content":" \"node_modules/webpack-dev-server/node_modules/schema-utils\": {","isFullCredit":false},{"lineNumber":14596,"author":{"gitId":"-"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":14597,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14598,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14599,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14600,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.9\",","isFullCredit":false},{"lineNumber":14601,"author":{"gitId":"-"},"content":" \"ajv\": \"^8.8.0\",","isFullCredit":false},{"lineNumber":14602,"author":{"gitId":"-"},"content":" \"ajv-formats\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":14603,"author":{"gitId":"-"},"content":" \"ajv-keywords\": \"^5.0.0\"","isFullCredit":false},{"lineNumber":14604,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14605,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14606,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 12.13.0\"","isFullCredit":false},{"lineNumber":14607,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14608,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14609,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":14610,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":14611,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14612,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14613,"author":{"gitId":"-"},"content":" \"node_modules/webpack-dev-server/node_modules/ws\": {","isFullCredit":false},{"lineNumber":14614,"author":{"gitId":"-"},"content":" \"version\": \"8.12.0\",","isFullCredit":false},{"lineNumber":14615,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14616,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14617,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14618,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10.0.0\"","isFullCredit":false},{"lineNumber":14619,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14620,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":14621,"author":{"gitId":"-"},"content":" \"bufferutil\": \"^4.0.1\",","isFullCredit":false},{"lineNumber":14622,"author":{"gitId":"-"},"content":" \"utf-8-validate\": \"\u003e\u003d5.0.2\"","isFullCredit":false},{"lineNumber":14623,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14624,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":14625,"author":{"gitId":"-"},"content":" \"bufferutil\": {","isFullCredit":false},{"lineNumber":14626,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":14627,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14628,"author":{"gitId":"-"},"content":" \"utf-8-validate\": {","isFullCredit":false},{"lineNumber":14629,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":14630,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14631,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14632,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14633,"author":{"gitId":"-"},"content":" \"node_modules/webpack-merge\": {","isFullCredit":false},{"lineNumber":14634,"author":{"gitId":"-"},"content":" \"version\": \"5.8.0\",","isFullCredit":false},{"lineNumber":14635,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14636,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14637,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14638,"author":{"gitId":"-"},"content":" \"clone-deep\": \"^4.0.1\",","isFullCredit":false},{"lineNumber":14639,"author":{"gitId":"-"},"content":" \"wildcard\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":14640,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14641,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14642,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10.0.0\"","isFullCredit":false},{"lineNumber":14643,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14644,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14645,"author":{"gitId":"-"},"content":" \"node_modules/webpack-sources\": {","isFullCredit":false},{"lineNumber":14646,"author":{"gitId":"-"},"content":" \"version\": \"3.2.3\",","isFullCredit":false},{"lineNumber":14647,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14648,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14649,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10.13.0\"","isFullCredit":false},{"lineNumber":14650,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14651,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14652,"author":{"gitId":"-"},"content":" \"node_modules/webpack-virtual-modules\": {","isFullCredit":false},{"lineNumber":14653,"author":{"gitId":"-"},"content":" \"version\": \"0.4.6\",","isFullCredit":false},{"lineNumber":14654,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14655,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":14656,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14657,"author":{"gitId":"-"},"content":" \"node_modules/webpack/node_modules/@types/estree\": {","isFullCredit":false},{"lineNumber":14658,"author":{"gitId":"-"},"content":" \"version\": \"0.0.51\",","isFullCredit":false},{"lineNumber":14659,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":14660,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14661,"author":{"gitId":"-"},"content":" \"node_modules/webpack/node_modules/schema-utils\": {","isFullCredit":false},{"lineNumber":14662,"author":{"gitId":"-"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":14663,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14664,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14665,"author":{"gitId":"-"},"content":" \"@types/json-schema\": \"^7.0.8\",","isFullCredit":false},{"lineNumber":14666,"author":{"gitId":"-"},"content":" \"ajv\": \"^6.12.5\",","isFullCredit":false},{"lineNumber":14667,"author":{"gitId":"-"},"content":" \"ajv-keywords\": \"^3.5.2\"","isFullCredit":false},{"lineNumber":14668,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14669,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14670,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10.13.0\"","isFullCredit":false},{"lineNumber":14671,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14672,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14673,"author":{"gitId":"-"},"content":" \"type\": \"opencollective\",","isFullCredit":false},{"lineNumber":14674,"author":{"gitId":"-"},"content":" \"url\": \"https://opencollective.com/webpack\"","isFullCredit":false},{"lineNumber":14675,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14676,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14677,"author":{"gitId":"-"},"content":" \"node_modules/webpack/node_modules/tapable\": {","isFullCredit":false},{"lineNumber":14678,"author":{"gitId":"-"},"content":" \"version\": \"2.2.1\",","isFullCredit":false},{"lineNumber":14679,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14680,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14681,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d6\"","isFullCredit":false},{"lineNumber":14682,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14683,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14684,"author":{"gitId":"-"},"content":" \"node_modules/websocket-driver\": {","isFullCredit":false},{"lineNumber":14685,"author":{"gitId":"-"},"content":" \"version\": \"0.7.4\",","isFullCredit":false},{"lineNumber":14686,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14687,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":14688,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14689,"author":{"gitId":"-"},"content":" \"http-parser-js\": \"\u003e\u003d0.5.1\",","isFullCredit":false},{"lineNumber":14690,"author":{"gitId":"-"},"content":" \"safe-buffer\": \"\u003e\u003d5.1.0\",","isFullCredit":false},{"lineNumber":14691,"author":{"gitId":"-"},"content":" \"websocket-extensions\": \"\u003e\u003d0.1.1\"","isFullCredit":false},{"lineNumber":14692,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14693,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14694,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.8.0\"","isFullCredit":false},{"lineNumber":14695,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14696,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14697,"author":{"gitId":"-"},"content":" \"node_modules/websocket-extensions\": {","isFullCredit":false},{"lineNumber":14698,"author":{"gitId":"-"},"content":" \"version\": \"0.1.4\",","isFullCredit":false},{"lineNumber":14699,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14700,"author":{"gitId":"-"},"content":" \"license\": \"Apache-2.0\",","isFullCredit":false},{"lineNumber":14701,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14702,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.8.0\"","isFullCredit":false},{"lineNumber":14703,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14704,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14705,"author":{"gitId":"-"},"content":" \"node_modules/whatwg-fetch\": {","isFullCredit":false},{"lineNumber":14706,"author":{"gitId":"-"},"content":" \"version\": \"3.6.2\",","isFullCredit":false},{"lineNumber":14707,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14708,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":14709,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14710,"author":{"gitId":"-"},"content":" \"node_modules/whatwg-url\": {","isFullCredit":false},{"lineNumber":14711,"author":{"gitId":"-"},"content":" \"version\": \"5.0.0\",","isFullCredit":false},{"lineNumber":14712,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14713,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14714,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14715,"author":{"gitId":"-"},"content":" \"tr46\": \"~0.0.3\",","isFullCredit":false},{"lineNumber":14716,"author":{"gitId":"-"},"content":" \"webidl-conversions\": \"^3.0.0\"","isFullCredit":false},{"lineNumber":14717,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14718,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14719,"author":{"gitId":"-"},"content":" \"node_modules/which\": {","isFullCredit":false},{"lineNumber":14720,"author":{"gitId":"-"},"content":" \"version\": \"2.0.2\",","isFullCredit":false},{"lineNumber":14721,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14722,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":14723,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14724,"author":{"gitId":"-"},"content":" \"isexe\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":14725,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14726,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":14727,"author":{"gitId":"-"},"content":" \"node-which\": \"bin/node-which\"","isFullCredit":false},{"lineNumber":14728,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14729,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14730,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 8\"","isFullCredit":false},{"lineNumber":14731,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14732,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14733,"author":{"gitId":"-"},"content":" \"node_modules/which-boxed-primitive\": {","isFullCredit":false},{"lineNumber":14734,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":14735,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14736,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14737,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14738,"author":{"gitId":"-"},"content":" \"is-bigint\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":14739,"author":{"gitId":"-"},"content":" \"is-boolean-object\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":14740,"author":{"gitId":"-"},"content":" \"is-number-object\": \"^1.0.4\",","isFullCredit":false},{"lineNumber":14741,"author":{"gitId":"-"},"content":" \"is-string\": \"^1.0.5\",","isFullCredit":false},{"lineNumber":14742,"author":{"gitId":"-"},"content":" \"is-symbol\": \"^1.0.3\"","isFullCredit":false},{"lineNumber":14743,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14744,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14745,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":14746,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14747,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14748,"author":{"gitId":"-"},"content":" \"node_modules/which-typed-array\": {","isFullCredit":false},{"lineNumber":14749,"author":{"gitId":"sopa301"},"content":" \"version\": \"1.1.15\",","isFullCredit":false},{"lineNumber":14750,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14751,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14752,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14753,"author":{"gitId":"sopa301"},"content":" \"available-typed-arrays\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":14754,"author":{"gitId":"sopa301"},"content":" \"call-bind\": \"^1.0.7\",","isFullCredit":false},{"lineNumber":14755,"author":{"gitId":"-"},"content":" \"for-each\": \"^0.3.3\",","isFullCredit":false},{"lineNumber":14756,"author":{"gitId":"-"},"content":" \"gopd\": \"^1.0.1\",","isFullCredit":false},{"lineNumber":14757,"author":{"gitId":"sopa301"},"content":" \"has-tostringtag\": \"^1.0.2\"","isFullCredit":false},{"lineNumber":14758,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14759,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14760,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 0.4\"","isFullCredit":false},{"lineNumber":14761,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14762,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14763,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/ljharb\"","isFullCredit":false},{"lineNumber":14764,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14765,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14766,"author":{"gitId":"-"},"content":" \"node_modules/wildcard\": {","isFullCredit":false},{"lineNumber":14767,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":14768,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14769,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":14770,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14771,"author":{"gitId":"-"},"content":" \"node_modules/with\": {","isFullCredit":false},{"lineNumber":14772,"author":{"gitId":"-"},"content":" \"version\": \"7.0.2\",","isFullCredit":false},{"lineNumber":14773,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14774,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14775,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14776,"author":{"gitId":"-"},"content":" \"@babel/parser\": \"^7.9.6\",","isFullCredit":false},{"lineNumber":14777,"author":{"gitId":"-"},"content":" \"@babel/types\": \"^7.9.6\",","isFullCredit":false},{"lineNumber":14778,"author":{"gitId":"-"},"content":" \"assert-never\": \"^1.2.1\",","isFullCredit":false},{"lineNumber":14779,"author":{"gitId":"-"},"content":" \"babel-walk\": \"3.0.0-canary-5\"","isFullCredit":false},{"lineNumber":14780,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14781,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14782,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 10.0.0\"","isFullCredit":false},{"lineNumber":14783,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14784,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14785,"author":{"gitId":"-"},"content":" \"node_modules/wrap-ansi\": {","isFullCredit":false},{"lineNumber":14786,"author":{"gitId":"-"},"content":" \"version\": \"7.0.0\",","isFullCredit":false},{"lineNumber":14787,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14788,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14789,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14790,"author":{"gitId":"-"},"content":" \"ansi-styles\": \"^4.0.0\",","isFullCredit":false},{"lineNumber":14791,"author":{"gitId":"-"},"content":" \"string-width\": \"^4.1.0\",","isFullCredit":false},{"lineNumber":14792,"author":{"gitId":"-"},"content":" \"strip-ansi\": \"^6.0.0\"","isFullCredit":false},{"lineNumber":14793,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14794,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14795,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":14796,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14797,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14798,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/wrap-ansi?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":14799,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14800,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14801,"author":{"gitId":"-"},"content":" \"node_modules/wrap-ansi/node_modules/ansi-styles\": {","isFullCredit":false},{"lineNumber":14802,"author":{"gitId":"-"},"content":" \"version\": \"4.3.0\",","isFullCredit":false},{"lineNumber":14803,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14804,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14805,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14806,"author":{"gitId":"-"},"content":" \"color-convert\": \"^2.0.1\"","isFullCredit":false},{"lineNumber":14807,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14808,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14809,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8\"","isFullCredit":false},{"lineNumber":14810,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14811,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14812,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/chalk/ansi-styles?sponsor\u003d1\"","isFullCredit":false},{"lineNumber":14813,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14814,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14815,"author":{"gitId":"-"},"content":" \"node_modules/wrap-ansi/node_modules/color-convert\": {","isFullCredit":false},{"lineNumber":14816,"author":{"gitId":"-"},"content":" \"version\": \"2.0.1\",","isFullCredit":false},{"lineNumber":14817,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14818,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14819,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14820,"author":{"gitId":"-"},"content":" \"color-name\": \"~1.1.4\"","isFullCredit":false},{"lineNumber":14821,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14822,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14823,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d7.0.0\"","isFullCredit":false},{"lineNumber":14824,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14825,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14826,"author":{"gitId":"-"},"content":" \"node_modules/wrap-ansi/node_modules/color-name\": {","isFullCredit":false},{"lineNumber":14827,"author":{"gitId":"-"},"content":" \"version\": \"1.1.4\",","isFullCredit":false},{"lineNumber":14828,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14829,"author":{"gitId":"-"},"content":" \"license\": \"MIT\"","isFullCredit":false},{"lineNumber":14830,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14831,"author":{"gitId":"-"},"content":" \"node_modules/wrappy\": {","isFullCredit":false},{"lineNumber":14832,"author":{"gitId":"-"},"content":" \"version\": \"1.0.2\",","isFullCredit":false},{"lineNumber":14833,"author":{"gitId":"sopa301"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":14834,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14835,"author":{"gitId":"-"},"content":" \"node_modules/write-file-atomic\": {","isFullCredit":false},{"lineNumber":14836,"author":{"gitId":"sopa301"},"content":" \"version\": \"5.0.1\",","isFullCredit":false},{"lineNumber":14837,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz\",","isFullCredit":false},{"lineNumber":14838,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw\u003d\u003d\",","isFullCredit":false},{"lineNumber":14839,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14840,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14841,"author":{"gitId":"-"},"content":" \"imurmurhash\": \"^0.1.4\",","isFullCredit":false},{"lineNumber":14842,"author":{"gitId":"sopa301"},"content":" \"signal-exit\": \"^4.0.1\"","isFullCredit":false},{"lineNumber":14843,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14844,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14845,"author":{"gitId":"sopa301"},"content":" \"node\": \"^14.17.0 || ^16.13.0 || \u003e\u003d18.0.0\"","isFullCredit":false},{"lineNumber":14846,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":14847,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":14848,"author":{"gitId":"sopa301"},"content":" \"node_modules/write-file-atomic/node_modules/signal-exit\": {","isFullCredit":false},{"lineNumber":14849,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.1.0\",","isFullCredit":false},{"lineNumber":14850,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz\",","isFullCredit":false},{"lineNumber":14851,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw\u003d\u003d\",","isFullCredit":false},{"lineNumber":14852,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14853,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14854,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d14\"","isFullCredit":false},{"lineNumber":14855,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":14856,"author":{"gitId":"sopa301"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14857,"author":{"gitId":"sopa301"},"content":" \"url\": \"https://github.com/sponsors/isaacs\"","isFullCredit":false},{"lineNumber":14858,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14859,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14860,"author":{"gitId":"-"},"content":" \"node_modules/ws\": {","isFullCredit":false},{"lineNumber":14861,"author":{"gitId":"-"},"content":" \"version\": \"7.5.9\",","isFullCredit":false},{"lineNumber":14862,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14863,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14864,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14865,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d8.3.0\"","isFullCredit":false},{"lineNumber":14866,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14867,"author":{"gitId":"-"},"content":" \"peerDependencies\": {","isFullCredit":false},{"lineNumber":14868,"author":{"gitId":"-"},"content":" \"bufferutil\": \"^4.0.1\",","isFullCredit":false},{"lineNumber":14869,"author":{"gitId":"-"},"content":" \"utf-8-validate\": \"^5.0.2\"","isFullCredit":false},{"lineNumber":14870,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14871,"author":{"gitId":"-"},"content":" \"peerDependenciesMeta\": {","isFullCredit":false},{"lineNumber":14872,"author":{"gitId":"-"},"content":" \"bufferutil\": {","isFullCredit":false},{"lineNumber":14873,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":14874,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14875,"author":{"gitId":"-"},"content":" \"utf-8-validate\": {","isFullCredit":false},{"lineNumber":14876,"author":{"gitId":"-"},"content":" \"optional\": true","isFullCredit":false},{"lineNumber":14877,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14878,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14879,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14880,"author":{"gitId":"sopa301"},"content":" \"node_modules/xml-name-validator\": {","isFullCredit":false},{"lineNumber":14881,"author":{"gitId":"sopa301"},"content":" \"version\": \"4.0.0\",","isFullCredit":false},{"lineNumber":14882,"author":{"gitId":"sopa301"},"content":" \"resolved\": \"https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz\",","isFullCredit":false},{"lineNumber":14883,"author":{"gitId":"sopa301"},"content":" \"integrity\": \"sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw\u003d\u003d\",","isFullCredit":false},{"lineNumber":14884,"author":{"gitId":"sopa301"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14885,"author":{"gitId":"sopa301"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14886,"author":{"gitId":"sopa301"},"content":" \"node\": \"\u003e\u003d12\"","isFullCredit":false},{"lineNumber":14887,"author":{"gitId":"sopa301"},"content":" }","isFullCredit":false},{"lineNumber":14888,"author":{"gitId":"sopa301"},"content":" },","isFullCredit":false},{"lineNumber":14889,"author":{"gitId":"-"},"content":" \"node_modules/y18n\": {","isFullCredit":false},{"lineNumber":14890,"author":{"gitId":"-"},"content":" \"version\": \"5.0.8\",","isFullCredit":false},{"lineNumber":14891,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14892,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":14893,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14894,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":14895,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14896,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14897,"author":{"gitId":"-"},"content":" \"node_modules/yallist\": {","isFullCredit":false},{"lineNumber":14898,"author":{"gitId":"-"},"content":" \"version\": \"3.1.1\",","isFullCredit":false},{"lineNumber":14899,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14900,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":14901,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14902,"author":{"gitId":"-"},"content":" \"node_modules/yaml\": {","isFullCredit":false},{"lineNumber":14903,"author":{"gitId":"-"},"content":" \"version\": \"1.10.2\",","isFullCredit":false},{"lineNumber":14904,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14905,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":14906,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14907,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d 6\"","isFullCredit":false},{"lineNumber":14908,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14909,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14910,"author":{"gitId":"-"},"content":" \"node_modules/yargs\": {","isFullCredit":false},{"lineNumber":14911,"author":{"gitId":"-"},"content":" \"version\": \"16.2.0\",","isFullCredit":false},{"lineNumber":14912,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14913,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14914,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14915,"author":{"gitId":"-"},"content":" \"cliui\": \"^7.0.2\",","isFullCredit":false},{"lineNumber":14916,"author":{"gitId":"-"},"content":" \"escalade\": \"^3.1.1\",","isFullCredit":false},{"lineNumber":14917,"author":{"gitId":"-"},"content":" \"get-caller-file\": \"^2.0.5\",","isFullCredit":false},{"lineNumber":14918,"author":{"gitId":"-"},"content":" \"require-directory\": \"^2.1.1\",","isFullCredit":false},{"lineNumber":14919,"author":{"gitId":"-"},"content":" \"string-width\": \"^4.2.0\",","isFullCredit":false},{"lineNumber":14920,"author":{"gitId":"-"},"content":" \"y18n\": \"^5.0.5\",","isFullCredit":false},{"lineNumber":14921,"author":{"gitId":"-"},"content":" \"yargs-parser\": \"^20.2.2\"","isFullCredit":false},{"lineNumber":14922,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14923,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14924,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":14925,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14926,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14927,"author":{"gitId":"-"},"content":" \"node_modules/yargs-parser\": {","isFullCredit":false},{"lineNumber":14928,"author":{"gitId":"-"},"content":" \"version\": \"20.2.9\",","isFullCredit":false},{"lineNumber":14929,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14930,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":14931,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14932,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":14933,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14934,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14935,"author":{"gitId":"-"},"content":" \"node_modules/yocto-queue\": {","isFullCredit":false},{"lineNumber":14936,"author":{"gitId":"-"},"content":" \"version\": \"0.1.0\",","isFullCredit":false},{"lineNumber":14937,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14938,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14939,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14940,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d10\"","isFullCredit":false},{"lineNumber":14941,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14942,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":14943,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/sindresorhus\"","isFullCredit":false},{"lineNumber":14944,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14945,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14946,"author":{"gitId":"-"},"content":" \"node_modules/yorkie\": {","isFullCredit":false},{"lineNumber":14947,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":14948,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14949,"author":{"gitId":"-"},"content":" \"hasInstallScript\": true,","isFullCredit":false},{"lineNumber":14950,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14951,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14952,"author":{"gitId":"-"},"content":" \"execa\": \"^0.8.0\",","isFullCredit":false},{"lineNumber":14953,"author":{"gitId":"-"},"content":" \"is-ci\": \"^1.0.10\",","isFullCredit":false},{"lineNumber":14954,"author":{"gitId":"-"},"content":" \"normalize-path\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":14955,"author":{"gitId":"-"},"content":" \"strip-indent\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":14956,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14957,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14958,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":14959,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14960,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14961,"author":{"gitId":"-"},"content":" \"node_modules/yorkie/node_modules/cross-spawn\": {","isFullCredit":false},{"lineNumber":14962,"author":{"gitId":"-"},"content":" \"version\": \"5.1.0\",","isFullCredit":false},{"lineNumber":14963,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14964,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14965,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14966,"author":{"gitId":"-"},"content":" \"lru-cache\": \"^4.0.1\",","isFullCredit":false},{"lineNumber":14967,"author":{"gitId":"-"},"content":" \"shebang-command\": \"^1.2.0\",","isFullCredit":false},{"lineNumber":14968,"author":{"gitId":"-"},"content":" \"which\": \"^1.2.9\"","isFullCredit":false},{"lineNumber":14969,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14970,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14971,"author":{"gitId":"-"},"content":" \"node_modules/yorkie/node_modules/execa\": {","isFullCredit":false},{"lineNumber":14972,"author":{"gitId":"-"},"content":" \"version\": \"0.8.0\",","isFullCredit":false},{"lineNumber":14973,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14974,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14975,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":14976,"author":{"gitId":"-"},"content":" \"cross-spawn\": \"^5.0.1\",","isFullCredit":false},{"lineNumber":14977,"author":{"gitId":"-"},"content":" \"get-stream\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":14978,"author":{"gitId":"-"},"content":" \"is-stream\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":14979,"author":{"gitId":"-"},"content":" \"npm-run-path\": \"^2.0.0\",","isFullCredit":false},{"lineNumber":14980,"author":{"gitId":"-"},"content":" \"p-finally\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":14981,"author":{"gitId":"-"},"content":" \"signal-exit\": \"^3.0.0\",","isFullCredit":false},{"lineNumber":14982,"author":{"gitId":"-"},"content":" \"strip-eof\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":14983,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14984,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14985,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":14986,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14987,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14988,"author":{"gitId":"-"},"content":" \"node_modules/yorkie/node_modules/get-stream\": {","isFullCredit":false},{"lineNumber":14989,"author":{"gitId":"-"},"content":" \"version\": \"3.0.0\",","isFullCredit":false},{"lineNumber":14990,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14991,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":14992,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":14993,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":14994,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":14995,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":14996,"author":{"gitId":"-"},"content":" \"node_modules/yorkie/node_modules/lru-cache\": {","isFullCredit":false},{"lineNumber":14997,"author":{"gitId":"-"},"content":" \"version\": \"4.1.5\",","isFullCredit":false},{"lineNumber":14998,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":14999,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":15000,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":15001,"author":{"gitId":"-"},"content":" \"pseudomap\": \"^1.0.2\",","isFullCredit":false},{"lineNumber":15002,"author":{"gitId":"-"},"content":" \"yallist\": \"^2.1.2\"","isFullCredit":false},{"lineNumber":15003,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":15004,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":15005,"author":{"gitId":"-"},"content":" \"node_modules/yorkie/node_modules/normalize-path\": {","isFullCredit":false},{"lineNumber":15006,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":15007,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":15008,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":15009,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":15010,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":15011,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":15012,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":15013,"author":{"gitId":"-"},"content":" \"node_modules/yorkie/node_modules/shebang-command\": {","isFullCredit":false},{"lineNumber":15014,"author":{"gitId":"-"},"content":" \"version\": \"1.2.0\",","isFullCredit":false},{"lineNumber":15015,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":15016,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":15017,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":15018,"author":{"gitId":"-"},"content":" \"shebang-regex\": \"^1.0.0\"","isFullCredit":false},{"lineNumber":15019,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":15020,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":15021,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":15022,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":15023,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":15024,"author":{"gitId":"-"},"content":" \"node_modules/yorkie/node_modules/shebang-regex\": {","isFullCredit":false},{"lineNumber":15025,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":15026,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":15027,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":15028,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":15029,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d0.10.0\"","isFullCredit":false},{"lineNumber":15030,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":15031,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":15032,"author":{"gitId":"-"},"content":" \"node_modules/yorkie/node_modules/strip-indent\": {","isFullCredit":false},{"lineNumber":15033,"author":{"gitId":"-"},"content":" \"version\": \"2.0.0\",","isFullCredit":false},{"lineNumber":15034,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":15035,"author":{"gitId":"-"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":15036,"author":{"gitId":"-"},"content":" \"engines\": {","isFullCredit":false},{"lineNumber":15037,"author":{"gitId":"-"},"content":" \"node\": \"\u003e\u003d4\"","isFullCredit":false},{"lineNumber":15038,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":15039,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":15040,"author":{"gitId":"-"},"content":" \"node_modules/yorkie/node_modules/which\": {","isFullCredit":false},{"lineNumber":15041,"author":{"gitId":"-"},"content":" \"version\": \"1.3.1\",","isFullCredit":false},{"lineNumber":15042,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":15043,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":15044,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":15045,"author":{"gitId":"-"},"content":" \"isexe\": \"^2.0.0\"","isFullCredit":false},{"lineNumber":15046,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":15047,"author":{"gitId":"-"},"content":" \"bin\": {","isFullCredit":false},{"lineNumber":15048,"author":{"gitId":"-"},"content":" \"which\": \"bin/which\"","isFullCredit":false},{"lineNumber":15049,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":15050,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":15051,"author":{"gitId":"-"},"content":" \"node_modules/yorkie/node_modules/yallist\": {","isFullCredit":false},{"lineNumber":15052,"author":{"gitId":"-"},"content":" \"version\": \"2.1.2\",","isFullCredit":false},{"lineNumber":15053,"author":{"gitId":"-"},"content":" \"dev\": true,","isFullCredit":false},{"lineNumber":15054,"author":{"gitId":"-"},"content":" \"license\": \"ISC\"","isFullCredit":false},{"lineNumber":15055,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":15056,"author":{"gitId":"-"},"content":" \"node_modules/zod\": {","isFullCredit":false},{"lineNumber":15057,"author":{"gitId":"sopa301"},"content":" \"version\": \"3.22.4\",","isFullCredit":false},{"lineNumber":15058,"author":{"gitId":"sopa301"},"content":" \"license\": \"MIT\",","isFullCredit":false},{"lineNumber":15059,"author":{"gitId":"-"},"content":" \"funding\": {","isFullCredit":false},{"lineNumber":15060,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/sponsors/colinhacks\"","isFullCredit":false},{"lineNumber":15061,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":15062,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":15063,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":15064,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"sopa301":934,"-":14130}},{"path":"frontend/package.json","fileType":"json","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"{","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":" \"name\": \"reposense\",","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":" \"version\": \"1.0.0\",","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" \"description\": \"[![Build Status](https://travis-ci.org/reposense/RepoSense.svg?branch\u003dmaster)](https://travis-ci.org/reposense/RepoSense) [![Build status](https://ci.appveyor.com/api/projects/status/gsbkj5qby3pjd6nw/branch/master?svg\u003dtrue)](https://ci.appveyor.com/project/eugenepeh/reposense/branch/master)\",","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" \"author\": \"\",","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" \"scripts\": {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" \"serve\": \"vue-cli-service serve\",","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" \"build\": \"vue-cli-service build\",","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" \"lint\": \"eslint src/**/*.{ts,vue} cypress/tests/**/*.js cypress/support.js \u0026\u0026 stylelint ./src/**/*.{vue,scss} \u0026\u0026 npm run puglint\",","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" \"devbuild\": \"vue-cli-service build --mode development\",","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" \"lintfix\": \"eslint --fix src/**/*.{ts,vue} cypress/tests/**/*.js cypress/support.js \u0026\u0026 stylelint --fix ./src/**/*.{vue,scss}\",","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" \"puglint\": \"pug-lint-vue src\",","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" \"serveOpen\": \"vue-cli-service serve --open\"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" \"main\": \"index.js\",","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" \"dependencies\": {","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"sopa301"},"content":" \"@fontsource/titillium-web\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/fontawesome-svg-core\": \"^6.5.1\",","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/free-brands-svg-icons\": \"^6.5.1\",","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/free-solid-svg-icons\": \"^6.5.1\",","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"sopa301"},"content":" \"@fortawesome/vue-fontawesome\": \"^3.0.6\",","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"sopa301"},"content":" \"@types/markdown-it\": \"^13.0.7\",","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" \"@types/minimatch\": \"^5.1.2\",","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"sopa301"},"content":" \"@types/seedrandom\": \"^3.0.8\",","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" \"core-js\": \"^3.36.1\",","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" \"highlight.js\": \"^10.5.0\",","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" \"jszip\": \"^3.5.0\",","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"sopa301"},"content":" \"markdown-it\": \"^14.1.0\",","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"sopa301"},"content":" \"minimatch\": \"^9.0.0\",","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" \"muicss\": \"^0.10.3\",","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" \"normalize.css\": \"^8.0.1\",","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"sopa301"},"content":" \"postcss\": \"^8.4.38\",","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" \"pug-lint-vue\": \"^0.4.0\",","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" \"seedrandom\": \"^3.0.5\",","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"sopa301"},"content":" \"vue\": \"~3.4.0\",","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" \"vue-loader\": \"^17.4.2\",","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"sopa301"},"content":" \"vue-loading-overlay\": \"^6.0.4\",","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" \"vue-observe-visibility\": \"^1.0.0\",","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"sopa301"},"content":" \"vue-router\": \"^4.3.0\",","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" \"vuex\": \"^4.0.2\",","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"sopa301"},"content":" \"zod\": \"^3.22.4\"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" \"devDependencies\": {","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" \"@babel/eslint-parser\": \"^7.24.1\",","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"sopa301"},"content":" \"@stylistic/stylelint-plugin\": \"^2.1.0\",","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"sopa301"},"content":" \"@stylistic/eslint-plugin\": \"^1.7.0\",","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" \"@vue/cli-plugin-babel\": \"^5.0.4\",","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" \"@vue/cli-plugin-eslint\": \"^5.0.4\",","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" \"@vue/cli-plugin-typescript\": \"^5.0.4\",","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" \"@vue/cli-service\": \"^5.0.8\",","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" \"@vue/compiler-sfc\": \"^3.4.21\",","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"sopa301"},"content":" \"@vue/eslint-config-typescript\": \"^13.0.0\",","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"sopa301"},"content":" \"eslint\": \"^8.57.0\",","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" \"eslint-config-airbnb-base\": \"^15.0.0\",","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"sopa301"},"content":" \"eslint-config-airbnb-typescript\": \"^18.0.0\",","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"sopa301"},"content":" \"eslint-plugin-import\": \"^2.29.1\",","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"sopa301"},"content":" \"eslint-plugin-vue\": \"^9.0.0\",","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"sopa301"},"content":" \"postcss-html\": \"^1.6.0\",","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" \"pug\": \"^3.0.2\",","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" \"pug-plain-loader\": \"^1.1.0\",","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"sopa301"},"content":" \"sass\": \"^1.71.0\",","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" \"sass-loader\": \"^14.0.0\",","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"sopa301"},"content":" \"stylelint\": \"^16.1.0\",","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-recommended-vue\": \"^1.5.0\",","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-standard\": \"^36.0.0\",","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"sopa301"},"content":" \"stylelint-config-standard-scss\": \"^13.0.0\",","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"sopa301"},"content":" \"stylelint-order\": \"^6.0.4\",","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"sopa301"},"content":" \"stylelint-webpack-plugin\": \"^5.0.0\",","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"sopa301"},"content":" \"typescript\": \"~4.9.5\",","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" \"typescript-eslint\": \"^7.3.1\"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" \"bugs\": {","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" \"url\": \"https://github.com/reposense/RepoSense/issues\"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" \"directories\": {","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" \"doc\": \"docs\"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" },","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" \"homepage\": \"https://github.com/reposense/RepoSense#readme\",","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" \"license\": \"ISC\",","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" \"repository\": {","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" \"type\": \"git\",","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" \"url\": \"git+https://github.com/reposense/RepoSense.git\"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"sopa301":30,"-":54}},{"path":"frontend/src/styles/summary-chart.scss","fileType":"scss","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"@import \u0027colors\u0027;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"@import \u0027z-indices\u0027;","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"/* Summary */","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"#summary {","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" .summary-status {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" text-align: center;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" @mixin icon-button-config {","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" color: mui-color(\u0027grey\u0027);","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" padding: 0 1.2px 0 1.2px;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" text-decoration: none;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" .icon-button {","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" @include icon-button-config;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" cursor: pointer;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .broken-link {","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .icon-button {","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" cursor: default;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .summary-picker {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" align-items: center;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" display: flex;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" flex-flow: row wrap;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" justify-content: center;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" margin-bottom: 2rem;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" \u0026__section {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" align-items: inherit;","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" display: flex;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" flex: 0 1 auto;","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" flex-flow: inherit;","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" justify-content: inherit;","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" \u0026__checkboxes {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" label {","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" margin-left: .5rem;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" span {","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" margin-left: .25rem;","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" .mui-textfield,","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" .mui-select {","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" @include small-font;","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" margin: .5rem;","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" padding-right: 10px;","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" .mui-btn {","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" @include small-font;","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" background: transparent;","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" box-shadow: none;","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" color: mui-color(\u0027grey\u0027);","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" font-weight: bold;","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" left: -8px;","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" margin: 0;","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" padding: 0;","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" vertical-align: middle;","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" .search_box {","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" align-items: center;","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" display: flex;","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" input {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" @include small-font;","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" padding-right: 10px;","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" label {","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" @include small-font;","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" overflow-y: hidden;","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" text-align: left;","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" width: fit-content;","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" input,","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" select {","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" @include small-font;","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" .summary-charts {","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" margin-bottom: 1.4rem;","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" \u0026__title {","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" align-items: center;","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" display: flex;","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"jonasongg"},"content":" flex-wrap: wrap;","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" font-weight: bold;","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" text-align: left;","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" \u0026 \u003e * {","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" padding-right: .5rem;","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" \u0026--index {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" background: mui-color(\u0027black\u0027);","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" color: mui-color(\u0027white\u0027);","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" overflow: hidden;","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" padding: .1em .25em;","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" vertical-align: middle;","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"sopa301"},"content":" @include medium-font;","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" \u0026--groupname {","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" @include medium-font;","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" padding: .5rem;","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" \u0026--percentile {","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" @include mini-font;","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" color: mui-color(\u0027grey\u0027);","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" margin-left: auto;","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" \u0026--contribution {","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" @include mini-font;","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" display: inline;","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"jonasongg"},"content":" \u0026--tags {","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"jonasongg"},"content":" margin: .25rem 0;","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"jonasongg"},"content":" }","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" \u0026__fileType--breakdown {","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" overflow-y: hidden;","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" \u0026__legend {","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" @include small-font;","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" display: inline;","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" float: left;","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" .summary-chart {","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" display: inline-block;","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" margin-bottom: 1rem;","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" position: relative;","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" text-align: left;","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" width: 100%;","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" \u0026__title {","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" align-items: center;","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" clear: left;","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" display: flex;","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" \u0026 \u003e * {","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" padding-right: .5rem;","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" \u0026--index {","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" margin-left: 3px;","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" \u0026--repo {","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" font-weight: bold;","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" \u0026--index::after {","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" content: \u0027.\u0027;","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" \u0026--repo {","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" padding-right: .25rem;","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" \u0026--contribution {","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" @include mini-font;","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" \u0026--percentile {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" @include mini-font;","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" color: mui-color(\u0027grey\u0027);","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" margin-left: auto;","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" padding-right: 0;","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" \u0026__ramp {","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" position: relative;","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" .overlay {","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" height: 100%;","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" position: absolute;","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" top: 0;","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" \u0026.show {","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" background-color: rgba(mui-color(\u0027white\u0027), .5);","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" border: 1px dashed mui-color(\u0027black\u0027);","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" \u0026.edge {","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" border-right: 1px dashed mui-color(\u0027black\u0027);","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" .active-icon {","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" background-color: mui-color(\u0027green\u0027);","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" border-radius: 2px;","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" color: mui-color(\u0027white\u0027);","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" .active-background {","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" background-color: mui-color(\u0027yellow\u0027, \u0027200\u0027);","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"sopa301":1,"-":216,"jonasongg":5}},{"path":"frontend/src/styles/tags.scss","fileType":"scss","lines":[{"lineNumber":1,"author":{"gitId":"jonasongg"},"content":"@import \u0027colors\u0027;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"jonasongg"},"content":"/* Tags in commits */","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"jonasongg"},"content":".tag {","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"jonasongg"},"content":" @include mini-font;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"jonasongg"},"content":" background: mui-color(\u0027grey\u0027, \u0027600\u0027);","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"jonasongg"},"content":" border-radius: 5px;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"jonasongg"},"content":" color: mui-color(\u0027white\u0027);","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"jonasongg"},"content":" display: inline-block;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"jonasongg"},"content":" margin: .2rem .2rem .2rem 0;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"jonasongg"},"content":" padding: 0 3px 0 3px;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"jonasongg"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"jonasongg"},"content":" .fa-tags {","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"jonasongg"},"content":" width: .65rem;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"jonasongg"},"content":" }","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"jonasongg"},"content":"}","isFullCredit":false}],"authorContributionMap":{"jonasongg":16}},{"path":"src/main/java/reposense/RepoSense.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.time.ZonedDateTime;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.time.format.DateTimeFormatter;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.logging.Level;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.helper.HelpScreenException;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.git.GitConfig;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.model.BlurbMap;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.model.CliArguments;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import reposense.model.ReportConfiguration;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.model.RunConfigurationDecider;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.parser.ArgsParser;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidCsvException;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidHeaderException;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidMarkdownException;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.ParseException;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import reposense.report.ReportGenerator;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import reposense.system.ReportServer;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"import reposense.util.TimeUtil;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" * The main RepoSense class.","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"public class RepoSense {","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(RepoSense.class);","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private static final int SERVER_PORT_NUMBER \u003d 9000;","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private static final DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(\"E MMM d HH:mm:ss yyyy z\");","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final String VERSION_UNSPECIFIED \u003d \"unspecified\";","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" * The entry point of the program.","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" * Additional flags are provided by the user in {@code args}.","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" public static void main(String[] args) {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" TimeUtil.startTimer();","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(args);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d null;","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" ReportConfiguration reportConfig \u003d new ReportConfiguration();","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap blurbMap \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" if (cliArguments.isViewModeOnly()) {","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" ReportServer.startServer(SERVER_PORT_NUMBER, cliArguments.getReportDirectoryPath().toAbsolutePath());","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" return;","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" configs \u003d RunConfigurationDecider.getRunConfiguration(cliArguments).getRepoConfigurations();","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" reportConfig \u003d cliArguments.getReportConfiguration();","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"asdfghjkxd"},"content":" blurbMap \u003d cliArguments.getBlurbMap();","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" RepoConfiguration.setFormatsToRepoConfigs(configs, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" RepoConfiguration.setDatesToRepoConfigs(configs, cliArguments.getSinceDate(), cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" RepoConfiguration.setZoneIdToRepoConfigs(configs, cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(configs,","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" cliArguments.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" RepoConfiguration.setFileSizeLimitIgnoredToRepoConfigs(configs,","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" cliArguments.isFileSizeLimitIgnored());","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsLastModifiedDateIncludedToRepoConfigs(configs,","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" cliArguments.isLastModifiedDateIncluded());","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsShallowCloningPerformedToRepoConfigs(configs,","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" cliArguments.isShallowCloningPerformed());","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsFindingPreviousAuthorsPerformedToRepoConfigs(configs,","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" cliArguments.isFindingPreviousAuthorsPerformed());","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" List\u003cString[]\u003e globalGitConfig \u003d GitConfig.getGlobalGitLfsConfig();","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" if (globalGitConfig.size() !\u003d 0) {","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" GitConfig.setGlobalGitLfsConfig(GitConfig.SKIP_SMUDGE_CONFIG_SETTINGS);","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" ReportGenerator reportGenerator \u003d new ReportGenerator();","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" List\u003cPath\u003e reportFoldersAndFiles \u003d reportGenerator.generateReposReport(configs,","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" cliArguments.getOutputFilePath().toAbsolutePath().toString(),","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" cliArguments.getAssetsFilePath().toAbsolutePath().toString(), reportConfig,","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" formatter.format(ZonedDateTime.now(cliArguments.getZoneId())),","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" cliArguments.getSinceDate(), cliArguments.getUntilDate(),","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" cliArguments.isSinceDateProvided(), cliArguments.isUntilDateProvided(),","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" cliArguments.getNumCloningThreads(), cliArguments.getNumAnalysisThreads(),","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" TimeUtil::getElapsedTime, cliArguments.getZoneId(), cliArguments.isFreshClonePerformed(),","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"asdfghjkxd"},"content":" cliArguments.isAuthorshipAnalyzed(), cliArguments.getOriginalityThreshold(),","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"asdfghjkxd"},"content":" blurbMap","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" FileUtil.zipFoldersAndFiles(reportFoldersAndFiles, cliArguments.getOutputFilePath().toAbsolutePath(),","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" \".json\");","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" // Set back to user\u0027s initial global git lfs config","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" GitConfig.setGlobalGitLfsConfig(globalGitConfig);","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" logger.info(TimeUtil.getElapsedTimeMessage());","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" if (cliArguments.isAutomaticallyLaunching()) {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" ReportServer.startServer(SERVER_PORT_NUMBER, cliArguments.getOutputFilePath().toAbsolutePath());","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" } catch (IOException | ParseException | InvalidCsvException | InvalidHeaderException e) {","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, e.getMessage(), e);","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" } catch (HelpScreenException e) {","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" // help message was printed by the ArgumentParser; it is safe to exit.","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"asdfghjkxd"},"content":" } catch (InvalidMarkdownException ex) {","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"asdfghjkxd"},"content":" logger.log(Level.SEVERE, ex.getMessage(), ex);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" LogsManager.moveLogFileToOutputFolder();","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" public static String getVersion() {","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" String version \u003d RepoSense.class.getPackage().getImplementationVersion();","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" if (version \u003d\u003d null || version.equals(VERSION_UNSPECIFIED)) {","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" version \u003d System.getProperty(\"version\");","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" return version;","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":12,"-":110}},{"path":"src/main/java/reposense/authorship/FileInfoAnalyzer.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.authorship;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.time.Instant;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.HashMap;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.HashSet;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.Set;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.authorship.analyzer.AnnotatorAnalyzer;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.authorship.analyzer.AuthorshipAnalyzer;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import reposense.authorship.model.FileInfo;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.authorship.model.FileResult;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.authorship.model.LineInfo;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.git.GitBlame;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import reposense.git.GitLog;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import reposense.model.CommitHash;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" * Analyzes the target and information given in the {@link FileInfo}.","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"public class FileInfoAnalyzer {","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(FileInfoAnalyzer.class);","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private static final int AUTHOR_NAME_OFFSET \u003d \"author \".length();","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private static final int AUTHOR_EMAIL_OFFSET \u003d \"author-mail \".length();","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final int AUTHOR_TIME_OFFSET \u003d \"author-time \".length();","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private static final int AUTHOR_TIMEZONE_OFFSET \u003d \"author-tz \".length();","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private static final int FULL_COMMIT_HASH_LENGTH \u003d 40;","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private static final String MESSAGE_FILE_MISSING \u003d \"Unable to analyze the file located at \\\"%s\\\" \"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" + \"as the file is missing from your system. Skipping this file.\";","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" private static final String MESSAGE_SHALLOW_CLONING_LAST_MODIFIED_DATE_CONFLICT \u003d \"Repo %s was cloned using \"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" + \"shallow cloning. As such, the \\\"last modified date\\\" values may be incorrect.\";","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" * Analyzes the lines of the file, given in the {@code fileInfo}, that has changed in the time period provided","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" * by {@code config}.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" * Further analyzes the authorship of each line in the commit if {@code shouldAnalyzeAuthorship} is true, based on","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" * {@code originalityThreshold}.","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" * Returns null if the file is missing from the local system, or none of the","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" * {@link Author} specified in {@code config} contributed to the file in {@code fileInfo}.","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" public FileResult analyzeTextFile(RepoConfiguration config, FileInfo fileInfo, boolean shouldAnalyzeAuthorship,","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" double originalityThreshold) {","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" String relativePath \u003d fileInfo.getPath();","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" if (Files.notExists(Paths.get(config.getRepoRoot(), relativePath))) {","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" logger.severe(String.format(MESSAGE_FILE_MISSING, relativePath));","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" return null;","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" if (FileUtil.isEmptyFile(config.getRepoRoot(), relativePath)) {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" return null;","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" aggregateBlameAuthorModifiedAndDateInfo(config, fileInfo, shouldAnalyzeAuthorship, originalityThreshold);","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" fileInfo.setFileType(config.getFileType(fileInfo.getPath()));","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" AnnotatorAnalyzer.aggregateAnnotationAuthorInfo(fileInfo, config.getAuthorConfig(), shouldAnalyzeAuthorship);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" if (!config.getAuthorList().isEmpty() \u0026\u0026 fileInfo.isAllAuthorsIgnored(config.getAuthorList())) {","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" return null;","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" return generateTextFileResult(fileInfo);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" * Analyzes the binary file, given in the {@code fileInfo}, that has changed in the time period provided","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" * by {@code config}.","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" * Returns null if the file is missing from the local system, or none of the","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" * {@link Author} specified in {@code config} contributed to the file in {@code fileInfo}.","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" public FileResult analyzeBinaryFile(RepoConfiguration config, FileInfo fileInfo) {","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" String relativePath \u003d fileInfo.getPath();","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" if (Files.notExists(Paths.get(config.getRepoRoot(), relativePath))) {","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" logger.severe(String.format(MESSAGE_FILE_MISSING, relativePath));","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" return null;","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" fileInfo.setFileType(config.getFileType(fileInfo.getPath()));","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" return generateBinaryFileResult(config, fileInfo);","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" * Generates and returns a {@link FileResult} with the authorship results from {@code fileInfo} consolidated.","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" private FileResult generateTextFileResult(FileInfo fileInfo) {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" HashMap\u003cAuthor, Integer\u003e authorContributionMap \u003d new HashMap\u003c\u003e();","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" for (LineInfo line : fileInfo.getLines()) {","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" Author author \u003d line.getAuthor();","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" authorContributionMap.put(author, authorContributionMap.getOrDefault(author, 0) + 1);","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" return FileResult.createTextFileResult(fileInfo.getPath(), fileInfo.getFileType(), fileInfo.getLines(),","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" authorContributionMap, fileInfo.exceedsFileLimit());","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" * Generates and returns a {@link FileResult} with the authorship results from binary {@code fileInfo} consolidated.","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" * Authorship results are indicated in the {@code authorContributionMap} as contributions with zero line counts.","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" * Returns {@code null} if none of the {@link Author} specified in {@code config} contributed to the file in","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" * {@code fileInfo}.","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" private FileResult generateBinaryFileResult(RepoConfiguration config, FileInfo fileInfo) {","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" List\u003cString[]\u003e authorsString \u003d GitLog.getFileAuthors(config, fileInfo.getPath());","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" if (authorsString.size() \u003d\u003d 0) {","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" return null;","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" Set\u003cAuthor\u003e authors \u003d new HashSet\u003c\u003e();","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" HashMap\u003cAuthor, Integer\u003e authorContributionMap \u003d new HashMap\u003c\u003e();","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" for (String[] lineDetails : authorsString) {","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" String authorName \u003d lineDetails[0];","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" String authorEmail \u003d lineDetails[1];","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" authors.add(config.getAuthor(authorName, authorEmail));","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" for (Author author : authors) {","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" authorContributionMap.put(author, 0);","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" return FileResult.createBinaryFileResult(fileInfo.getPath(), fileInfo.getFileType(), authorContributionMap);","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" * Sets the {@link Author} and {@link LocalDateTime} for each line in {@code fileInfo} based on the git blame","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" * analysis of the file.","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" * The {@code config} is used to obtain the root directory for running git blame as well as other parameters used","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" * in determining which author to assign to each line and whether to set the last modified date for a","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" * {@code lineInfo}.","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" * Further analyzes the authorship of each line in the commit if {@code shouldAnalyzeAuthorship} is true, based on","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" * {@code originalityThreshold}.","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" private void aggregateBlameAuthorModifiedAndDateInfo(RepoConfiguration config, FileInfo fileInfo,","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" boolean shouldAnalyzeAuthorship, double originalityThreshold) {","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" String blameResults;","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" if (!config.isFindingPreviousAuthorsPerformed()) {","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" blameResults \u003d getGitBlameResult(config, fileInfo.getPath());","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" blameResults \u003d getGitBlameWithPreviousAuthorsResult(config, fileInfo.getPath());","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"asdfghjkxd"},"content":" String[] blameResultLines \u003d StringsUtil.NEWLINE.split(blameResults);","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" Path filePath \u003d Paths.get(fileInfo.getPath());","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" LocalDateTime sinceDate \u003d config.getSinceDate();","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" LocalDateTime untilDate \u003d config.getUntilDate();","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" for (int lineCount \u003d 0; lineCount \u003c blameResultLines.length; lineCount +\u003d 5) {","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" String commitHash \u003d blameResultLines[lineCount].substring(0, FULL_COMMIT_HASH_LENGTH);","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" String authorName \u003d blameResultLines[lineCount + 1].substring(AUTHOR_NAME_OFFSET);","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" String authorEmail \u003d blameResultLines[lineCount + 2]","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" .substring(AUTHOR_EMAIL_OFFSET).replaceAll(\"\u003c|\u003e\", \"\");","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" long commitDateInMs \u003d Long.parseLong(blameResultLines[lineCount + 3].substring(AUTHOR_TIME_OFFSET)) * 1000;","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" LocalDateTime commitDate \u003d LocalDateTime.ofInstant(Instant.ofEpochMilli(commitDateInMs),","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" config.getZoneId());","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" Author author \u003d config.getAuthor(authorName, authorEmail);","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" int lineNumber \u003d lineCount / 5;","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" if (!fileInfo.isFileLineTracked(lineNumber) || author.isIgnoringFile(filePath)","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" || CommitHash.isInsideCommitList(commitHash, config.getIgnoreCommitList())","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" || commitDate.isBefore(sinceDate) || commitDate.isAfter(untilDate)) {","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" author \u003d Author.UNKNOWN_AUTHOR;","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" if (config.isLastModifiedDateIncluded()) {","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" if (config.isShallowCloningPerformed()) {","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" logger.warning(String.format(","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" MESSAGE_SHALLOW_CLONING_LAST_MODIFIED_DATE_CONFLICT, config.getRepoName()));","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" fileInfo.setLineLastModifiedDate(lineNumber, commitDate);","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" fileInfo.setLineAuthor(lineNumber, author);","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" if (shouldAnalyzeAuthorship \u0026\u0026 !author.equals(Author.UNKNOWN_AUTHOR)) {","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" String lineContent \u003d fileInfo.getLine(lineNumber + 1).getContent();","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" boolean isFullCredit \u003d AuthorshipAnalyzer.analyzeAuthorship(config, fileInfo.getPath(), lineContent,","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" commitHash, author, originalityThreshold);","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" fileInfo.setIsFullCredit(lineNumber, isFullCredit);","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" * Returns the analysis result from running git blame on {@code filePath} with reference to the root directory","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" * given in {@code config}.","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" private String getGitBlameResult(RepoConfiguration config, String filePath) {","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" return GitBlame.blame(config.getRepoRoot(), filePath);","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" * Returns the analysis result from running git blame with finding previous authors enabled on {@code filePath}","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" * with reference to the root directory given in {@code config}.","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" private String getGitBlameWithPreviousAuthorsResult(RepoConfiguration config, String filePath) {","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" return GitBlame.blameWithPreviousAuthors(config.getRepoRoot(), filePath);","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":213}},{"path":"src/main/java/reposense/authorship/FileInfoExtractor.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.authorship;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.BufferedReader;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.io.FileReader;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.InvalidPathException;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.Comparator;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.HashSet;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import java.util.Set;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import java.util.logging.Level;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import java.util.regex.Matcher;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import reposense.authorship.model.FileInfo;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import reposense.authorship.model.LineInfo;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import reposense.git.GitCheckout;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import reposense.git.GitDiff;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import reposense.git.GitRevList;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"import reposense.git.exception.CommitNotFoundException;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" * Extracts out all the relevant {@code FileInfo} from the repository.","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"public class FileInfoExtractor {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(FileInfoExtractor.class);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private static final String MESSAGE_START_EXTRACTING_FILE_INFO \u003d \"Extracting relevant file info from %s (%s)...\";","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private static final String MESSAGE_INVALID_FILE_PATH \u003d \"\\\"%s\\\" is an invalid file path for current OS or \"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" + \"indicates a possible regex match issue. Skipping this directory.\";","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private static final String MESSAGE_FILE_SIZE_LIMIT_EXCEEDED \u003d \"File \\\"%s\\\" has %dB size. The file size \"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" + \"limit is set at %dB. %s\";","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" private static final String MESSAGE_FILE_ANALYSIS_SKIPPED \u003d \"Skipping analysis of this file...\";","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" private static final String MESSAGE_FILE_EXCLUDED_FROM_REPORT \u003d \"Exact line diffs will be excluded from report...\";","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" private static final String DIFF_FILE_CHUNK_SEPARATOR \u003d \"\\ndiff --git \\\"?\\\u0027?a/.*\\n\";","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" private static final String LINE_CHUNKS_SEPARATOR \u003d \"\\n@@ \";","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" private static final String LINE_INSERTED_SYMBOL \u003d \"+\";","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" private static final String STARTING_LINE_NUMBER_GROUP_NAME \u003d \"startingLineNumber\";","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" private static final String FILE_CHANGED_GROUP_NAME \u003d \"filePath\";","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" private static final String FILE_DELETED_SYMBOL \u003d \"dev/null\";","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" private static final String MATCH_GROUP_FAIL_MESSAGE_FORMAT \u003d \"Failed to match the %s group for:\\n%s\";","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" private static final String BINARY_FILE_LINE_DIFF_RESULT \u003d \"-\\t-\\t\";","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" private static final int LINE_CHANGED_HEADER_INDEX \u003d 0;","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" private static final Pattern STARTING_LINE_NUMBER_PATTERN \u003d Pattern.compile(","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" \"-(\\\\d)+(,)?(\\\\d)* \\\\+(?\u003cstartingLineNumber\u003e\\\\d+)(,)?(\\\\d)* @@\");","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" private static final Pattern FILE_CHANGED_PATTERN \u003d Pattern.compile(\"\\n(\\\\+){3} b?/(?\u003cfilePath\u003e.*?)\\t?\\n\");","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" * Extracts a list of relevant non-binary files given in {@code config}.","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" public List\u003cFileInfo\u003e extractTextFileInfos(RepoConfiguration config) {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" logger.info(String.format(MESSAGE_START_EXTRACTING_FILE_INFO, config.getLocation(), config.getBranch()));","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" List\u003cFileInfo\u003e fileInfos \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" // checks out to the latest commit of the date range to ensure the FileInfo generated correspond to the","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" // git blame file analyze output","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" GitCheckout.checkoutDate(config.getRepoRoot(), config.getBranch(), config.getUntilDate(),","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" config.getZoneId());","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" } catch (CommitNotFoundException cnfe) {","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" return fileInfos;","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" String lastCommitHash \u003d GitRevList.getCommitHashUntilDate(","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" config.getRepoRoot(), config.getBranch(), config.getSinceDate(), config.getZoneId());","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" fileInfos \u003d (lastCommitHash.isEmpty())","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" ? getAllFileInfo(config, false)","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" : getEditedFileInfos(config, lastCommitHash);","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" fileInfos.sort(Comparator.comparing(FileInfo::getPath));","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" return fileInfos;","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" * Extracts a list of relevant binary files given in {@code config}.","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" public List\u003cFileInfo\u003e extractBinaryFileInfos(RepoConfiguration config) {","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" List\u003cFileInfo\u003e binaryFileInfos \u003d getAllFileInfo(config, true);","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" binaryFileInfos.sort(Comparator.comparing(FileInfo::getPath));","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" return binaryFileInfos;","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" * Returns a list of {@link FileInfo}s for all files in the repo with lines marked indicating if they were edited","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" * in between the current commit and the commit given by {@code lastCommitHash}.","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" * The repo is given by {@code config}.","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" public List\u003cFileInfo\u003e getEditedFileInfos(RepoConfiguration config, String lastCommitHash) {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" List\u003cFileInfo\u003e fileInfos \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" String fullDiffResult \u003d GitDiff.diffCommit(config.getRepoRoot(), lastCommitHash);","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" // no diff between the 2 commits, return an empty list","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" if (fullDiffResult.isEmpty()) {","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" return fileInfos;","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" String[] fileDiffResultList \u003d fullDiffResult.split(DIFF_FILE_CHUNK_SEPARATOR);","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" Set\u003cPath\u003e textFilesSet \u003d getFiles(config, false);","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" for (String fileDiffResult : fileDiffResultList) {","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" Matcher filePathMatcher \u003d FILE_CHANGED_PATTERN.matcher(fileDiffResult);","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" // diff result does not have the markers to indicate that file has any line changes, skip it","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" if (!filePathMatcher.find()) {","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" String filePath \u003d filePathMatcher.group(FILE_CHANGED_GROUP_NAME);","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" if (filePath.equals(FILE_DELETED_SYMBOL) // file is deleted, skip it as well","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" || !isValidTextFile(filePath, textFilesSet)","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" || !config.getFileTypeManager().isInsideWhitelistedFormats(filePath)","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" || FileUtil.isFileIgnoredByGlob(config, Paths.get(filePath))) {","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" FileInfo currentFileInfo \u003d generateFileInfo(config, filePath);","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" setLinesToTrack(currentFileInfo, fileDiffResult);","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" if (currentFileInfo.isFileAnalyzed()) {","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" fileInfos.add(currentFileInfo);","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" return fileInfos;","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" * Returns a {@link Set} of non-binary files for the repo {@code repoConfig}","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" * if {@code isBinaryFiles} is set to `false`.","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" * Otherwise, returns a {@link Set} of binary files for the repo {@code repoConfig}.","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" public Set\u003cPath\u003e getFiles(RepoConfiguration repoConfig, boolean isBinaryFile) {","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" List\u003cString\u003e modifiedFileList \u003d GitDiff.getModifiedFilesList(Paths.get(repoConfig.getRepoRoot()));","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" // Gets rid of files with invalid directory name and filters by the {@code isBinaryFile} flag","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" return modifiedFileList.stream()","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" .filter(file -\u003e isBinaryFile \u003d\u003d file.startsWith(BINARY_FILE_LINE_DIFF_RESULT))","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"asdfghjkxd"},"content":" .map(file -\u003e StringsUtil.TAB.split(file)[2])","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" .filter(FileUtil::isValidPathWithLogging)","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"asdfghjkxd"},"content":" .map(Paths::get)","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" .collect(Collectors.toCollection(HashSet::new));","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" * Analyzes the {@code fileDiffResult} and marks each {@link LineInfo} in {@code fileInfo} on whether they were","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" * inserted in between the commit range.","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" private void setLinesToTrack(FileInfo fileInfo, String fileDiffResult) {","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" String[] linesChangedChunk \u003d fileDiffResult.split(LINE_CHUNKS_SEPARATOR);","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" List\u003cLineInfo\u003e lineInfos \u003d fileInfo.getLines();","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" int fileLinePointer \u003d 0;","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" // skips the header, index starts from 1","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" for (int sectionIndex \u003d 1; sectionIndex \u003c linesChangedChunk.length; sectionIndex++) {","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" String linesChangedInSection \u003d linesChangedChunk[sectionIndex];","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"asdfghjkxd"},"content":" String[] linesChanged \u003d StringsUtil.NEWLINE.split(linesChangedInSection);","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" int startingLineNumber \u003d getStartingLineNumber(linesChanged[LINE_CHANGED_HEADER_INDEX]);","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" // mark all untouched lines between sections as untracked","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" while (fileLinePointer \u003c startingLineNumber - 1) {","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" lineInfos.get(fileLinePointer++).setTracked(false);","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" // skips the header, index starts from 1","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" for (int lineIndex \u003d 1; lineIndex \u003c linesChanged.length; lineIndex++) {","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" String lineChanged \u003d linesChanged[lineIndex];","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" // set line added to be tracked","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" if (lineChanged.startsWith(LINE_INSERTED_SYMBOL)) {","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" lineInfos.get(fileLinePointer++).setTracked(true);","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" // set all remaining lines in file that were untouched to be untracked","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" while (fileLinePointer \u003c lineInfos.size()) {","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" lineInfos.get(fileLinePointer++).setTracked(false);","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" * Traverses each file from the repo root directory, generates the {@link FileInfo} for each relevant file found","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" * based on {@code config} and inserts it into {@code fileInfos}.","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" * Adds binary files to {@link List} if {@code isBinaryFiles} is true. Otherwise, adds non-binary files","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" * to {@link List}.","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" private List\u003cFileInfo\u003e getAllFileInfo(RepoConfiguration config, boolean isBinaryFiles) {","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" List\u003cFileInfo\u003e fileInfos \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" Set\u003cPath\u003e files \u003d getFiles(config, isBinaryFiles);","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" for (Path relativePath : files) {","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" if (!config.getFileTypeManager().isInsideWhitelistedFormats(relativePath.toString())","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" || FileUtil.isFileIgnoredByGlob(config, relativePath)) {","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" FileInfo fileInfo \u003d (isBinaryFiles)","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" ? new FileInfo(relativePath.toString())","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" : generateFileInfo(config, relativePath.toString());","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" if (fileInfo.isFileAnalyzed()) {","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" fileInfos.add(fileInfo);","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" return fileInfos;","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" * Returns a {@link FileInfo} with a list of {@link LineInfo} for each line content in the","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" * file located in the repository given by {@code config}/{@code relativePath}.","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" public FileInfo generateFileInfo(RepoConfiguration config, String relativePath) {","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" return generateFileInfo(config.getRepoRoot(), relativePath, config.getFileSizeLimit(),","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" config.isFileSizeLimitIgnored(), config.isIgnoredFileAnalysisSkipped());","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" * Returns a {@link FileInfo} with a list of {@link LineInfo} for each line content in the","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" * file located at the {@link Path} given by {@code repoRoot}/{@code relativePath}. {@code fileSizeLimit} and","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" * {@code ignoreFileSizeLimit} are used to set whether the file size limit is exceeding. {@link LineInfo}s are","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" * not included in {@link FileInfo} if {@code skipIgnoredFileAnalysis} is true and file size limit is exceeding.","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" public FileInfo generateFileInfo(String repoRoot, String relativePath, long fileSizeLimit,","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" boolean ignoreFileSizeLimit, boolean skipIgnoredFileAnalysis) {","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" FileInfo fileInfo \u003d new FileInfo(relativePath);","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" Path path \u003d Paths.get(repoRoot, fileInfo.getPath());","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" try (BufferedReader br \u003d new BufferedReader(new FileReader(path.toFile()))) {","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" long fileSize \u003d Files.size(path);","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" fileInfo.setFileSize(fileSize);","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" if (!ignoreFileSizeLimit \u0026\u0026 fileSize \u003e fileSizeLimit) {","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" fileInfo.setExceedsSizeLimit(true);","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" if (skipIgnoredFileAnalysis) {","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, String.format(MESSAGE_FILE_SIZE_LIMIT_EXCEEDED,","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" fileInfo.getPath(), fileSize, fileSizeLimit, MESSAGE_FILE_ANALYSIS_SKIPPED));","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" fileInfo.setFileAnalyzed(false);","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" return fileInfo;","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, String.format(MESSAGE_FILE_SIZE_LIMIT_EXCEEDED,","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" fileInfo.getPath(), fileSize, fileSizeLimit, MESSAGE_FILE_EXCLUDED_FROM_REPORT));","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" String line;","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" int lineNum \u003d 1;","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" while ((line \u003d br.readLine()) !\u003d null) {","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" fileInfo.addLine(new LineInfo(lineNum++, line));","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" } catch (IOException ioe) {","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" logger.log(Level.SEVERE, ioe.getMessage(), ioe);","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" return fileInfo;","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" * Returns the starting line changed number, within the file diff result, by matching the pattern inside","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" * {@code linesChanged}.","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" * @throws AssertionError if matching line number pattern in chunk header fails.","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" private int getStartingLineNumber(String linesChanged) throws AssertionError {","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" Matcher chunkHeaderMatcher \u003d STARTING_LINE_NUMBER_PATTERN.matcher(linesChanged);","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" if (!chunkHeaderMatcher.find()) {","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" logger.severe(String.format(MATCH_GROUP_FAIL_MESSAGE_FORMAT, \"line changed\", linesChanged));","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" throw new AssertionError(\"Should not have error matching line number pattern inside chunk header!\");","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" return Integer.parseInt(chunkHeaderMatcher.group(STARTING_LINE_NUMBER_GROUP_NAME));","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" * Returns true if {@code filePath} is valid and the file is not in binary (i.e. part of {@code textFilesSet}).","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" private boolean isValidTextFile(String filePath, Set\u003cPath\u003e textFilesSet) {","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" boolean isValidFilePath;","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" isValidFilePath \u003d FileUtil.isValidPathWithLogging(filePath);","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" } catch (InvalidPathException ipe) {","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, String.format(MESSAGE_INVALID_FILE_PATH, filePath));","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":" isValidFilePath \u003d false;","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" return isValidFilePath \u0026\u0026 textFilesSet.contains(Paths.get(filePath));","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":4,"-":291}},{"path":"src/main/java/reposense/git/GitCatFile.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.system.CommandRunner.runCommand;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.git.exception.CommitNotFoundException;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" * Contains git cat file related functionalities.","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Git cat file provides content or type and size information for repository objects.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"public class GitCatFile {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(GitCatFile.class);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" * Returns parent commits for the commit associated with the input {@code commitHash}.","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" * The {@link Path} given by {@code root} is the working directory.","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" * @throws CommitNotFoundException if there is no commit associated with {@code commitHash}.","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" public static List\u003cString\u003e getParentCommits(String root, String commitHash) throws CommitNotFoundException {","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" String catFileCommand \u003d \"git cat-file -p \" + commitHash;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" String output \u003d runCommand(rootPath, catFileCommand);","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" List\u003cString\u003e parentCommits \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":" for (String line : StringsUtil.NEWLINE.split(output)) {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" if (line.startsWith(\"parent\")) {","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" parentCommits.add(line.substring(7).trim());","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" return parentCommits;","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" } catch (RuntimeException e) {","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" throw new CommitNotFoundException(\"Commit not found: \" + commitHash);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" * Given the input list of {@code commitHashes}, return a list of commit hashes for the parent","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" * commits of all the commits.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" * The {@link Path} given by {@code root} is the working directory.","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" public static List\u003cString\u003e getParentsOfCommits(String root, List\u003cString\u003e commitHashes) {","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" List\u003cString\u003e parentCommits \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" for (String commitHash : commitHashes) {","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" parentCommits.addAll(getParentCommits(root, commitHash));","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" } catch (CommitNotFoundException e) {","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" logger.warning(\"Invalid commit hash ignored: \" + commitHash);","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" return parentCommits;","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":60}},{"path":"src/main/java/reposense/git/GitConfig.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.logging.Level;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.system.CommandRunner;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Contains git config related functionalities.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" * Git config is used to set Git configuration values on a global or local","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" * project level.","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"public class GitConfig {","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" public static final String FILTER_LFS_SMUDGE_KEY \u003d \"filter.lfs.smudge\";","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" public static final String FILTER_LFS_SMUDGE_VALUE \u003d \"git-lfs smudge --skip -- %f\";","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" public static final String FILTER_LFS_PROCESS_KEY \u003d \"filter.lfs.process\";","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" public static final String FILTER_LFS_PROCESS_VALUE \u003d \"git-lfs filter-process --skip\";","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final String LIST_GLOBAL_CONFIG_COMMAND \u003d \"git config --global --list\";","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" public static final List\u003cString[]\u003e SKIP_SMUDGE_CONFIG_SETTINGS \u003d Arrays.asList(","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" new String[] {FILTER_LFS_SMUDGE_KEY, FILTER_LFS_SMUDGE_VALUE},","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" new String[] {FILTER_LFS_PROCESS_KEY, FILTER_LFS_PROCESS_VALUE});","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(GitConfig.class);","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" * Returns the configuration values for lfs smudge and process within global git config.","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" * @return a list of string arrays where 0-index is key and 1-index is value.","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" public static List\u003cString[]\u003e getGlobalGitLfsConfig() {","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"asdfghjkxd"},"content":" Pattern equals \u003d Pattern.compile(\"\u003d\");","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" String gitConfig \u003d getGitGlobalConfig();","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"asdfghjkxd"},"content":" return Arrays.stream(StringsUtil.NEWLINE.split(gitConfig))","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"asdfghjkxd"},"content":" .map(equals::split)","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" .filter(line -\u003e line[0].equals(FILTER_LFS_SMUDGE_KEY) || line[0].equals((FILTER_LFS_PROCESS_KEY)))","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" } catch (RuntimeException re) {","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, \"Could not get global git lfs config\", re);","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" return new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" * Set the global git lfs configuration values. Does not run command if the configuration","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" * values are already set to skip.","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" * @param lfsConfigs a list of string arrays where 0-index is key and 1-index is value.","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" public static void setGlobalGitLfsConfig(List\u003cString[]\u003e lfsConfigs) {","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" String command \u003d setGitLfsConfigCommand(lfsConfigs);","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" if (!command.equals(\"\")) {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" CommandRunner.runCommand(Paths.get(\".\"), command);","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" * Delete the global git lfs configuration values.","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" public static void deleteGlobalGitLfsConfig() {","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" String command \u003d String.format(\"git config --global --unset %s \u0026\u0026 git config --global --unset %s\",","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" FILTER_LFS_SMUDGE_KEY, FILTER_LFS_PROCESS_KEY);","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" CommandRunner.runCommand(Paths.get(\".\"), command);","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" private static String setGitLfsConfigCommand(List\u003cString[]\u003e lfsConfigs) {","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" List\u003cString\u003e commands \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" for (String[] config : lfsConfigs) {","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" String key \u003d config[0];","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" String value \u003d config.length \u003e 1 ? config[1] : \"\";","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" commands.add(String.format(\"git config --global %s \\\"%s\\\"\", key, value));","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" return String.join(\" \u0026\u0026 \", commands);","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" private static String getGitGlobalConfig() {","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" return CommandRunner.runCommand(Paths.get(\".\"), LIST_GLOBAL_CONFIG_COMMAND);","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":6,"-":86}},{"path":"src/main/java/reposense/git/GitDiff.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.system.CommandRunner.runCommand;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" * Contains git diff related functionalities.","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" * Git diff is responsible for obtaining the changes between commits, commit and working tree, etc.","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"public class GitDiff {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" private static final String EMPTY_TREE_HASH \u003d \"4b825dc642cb6eb9a060e54bf8d69288fbee4904\";","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" private static final String CHECKED_OUT_COMMIT_REFERENCE \u003d \"HEAD\";","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" * Returns the git diff result of the current commit compared to {@code lastCommitHash}, without any context.","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" * The {@link Path} given by {@code root} is the working directory.","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" public static String diffCommit(String root, String lastCommitHash) {","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" return runCommand(rootPath, \"git diff -U0 --ignore-submodules\u003dall \" + lastCommitHash);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" * Returns a list of committed files with the corresponding number of lines added and deleted in the repo","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" * {@code repoRoot}.","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" public static List\u003cString\u003e getModifiedFilesList(Path repoRoot) {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" String diffCommand \u003d String.format(\"git diff --ignore-submodules\u003dall --numstat %s %s\",","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" EMPTY_TREE_HASH, CHECKED_OUT_COMMIT_REFERENCE);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" String diffResult \u003d runCommand(repoRoot.toAbsolutePath(), diffCommand);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":" return Arrays.asList(StringsUtil.NEWLINE.split(diffResult));","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" * Returns the git diff result of {@code currentCommitHash} compared to {@code baseCommitHash}.","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" public static String diffCommits(String root, String baseCommitHash, String currentCommitHash) {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" return runCommand(rootPath, String.format(\"git diff %s...%s\", baseCommitHash, currentCommitHash));","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":4,"-":44}},{"path":"src/main/java/reposense/git/GitLog.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.system.CommandRunner.runCommand;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import static reposense.util.StringsUtil.addQuotesForFilePath;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Contains git log related functionalities.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" * Git log is responsible to obtain the commit logs and the authors\u0027 info.","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"public class GitLog {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" public static final String COMMIT_INFO_DELIMITER \u003d \"(?m)^\u003e\u003e\u003eCOMMIT INFO\u003c\u003c\u003c\\\\n\";","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private static final String PRETTY_FORMAT_STRING \u003d","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" \"\\\"\u003e\u003e\u003eCOMMIT INFO\u003c\u003c\u003c%n%H|%n|%p|%n|%aN|%n|%aE|%n|%cI|%n|%s|%n|%w(0,4,4)%b%w(0,0,0)|%n|%D|\\\"\";","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final String DEFAULT_EMAIL_IF_MISSING \u003d \"\";","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" * Returns the git commit log info of {@code author}, in the repository specified in {@code config}.","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" public static String get(RepoConfiguration config, Author author) {","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(config.getRepoRoot());","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" String command \u003d \"git log --full-history -i --extended-regexp \";","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToGitDateRangeArgs(config.getSinceDate(), config.getUntilDate(), config.getZoneId());","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" command +\u003d \" --pretty\u003dformat:\" + PRETTY_FORMAT_STRING + \" --shortstat\";","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToFilterAuthorArgs(author);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToGitFormatsArgs(config.getFileTypeManager().getFormats());","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToGitExcludeGlobArgs(rootPath.toFile(), author.getIgnoreGlobList());","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" return runCommand(rootPath, command);","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" * Returns the git commit log info of {@code author}, with the files changed, in the repository specified in","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" * {@code config}. Merge commits are included.","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" public static String getWithFiles(RepoConfiguration config, Author author) {","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(config.getRepoRoot());","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" String command \u003d \"git log --full-history -i --extended-regexp \";","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToGitDateRangeArgs(config.getSinceDate(), config.getUntilDate(), config.getZoneId());","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" command +\u003d \" --pretty\u003dformat:\" + PRETTY_FORMAT_STRING + \" --numstat --shortstat\";","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToFilterAuthorArgs(author);","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToGitFormatsArgs(config.getFileTypeManager().getFormats());","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToGitExcludeGlobArgs(rootPath.toFile(), author.getIgnoreGlobList());","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" return runCommand(rootPath, command);","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" * Returns the authors who modified the file at {@code filePath}, in the repository specified in {@code config}.","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" * The output is a list of length-2 arrays containing the author\u0027s name and email.","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" public static List\u003cString[]\u003e getFileAuthors(RepoConfiguration config, String filePath) {","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(config.getRepoRoot());","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" String command \u003d \"git log --pretty\u003dformat:\\\"%an\\t%ae\\\" \";","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToGitDateRangeArgs(config.getSinceDate(), config.getUntilDate(), config.getZoneId());","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" command +\u003d \" \" + addQuotesForFilePath(filePath);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" String result \u003d runCommand(rootPath, command);","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"asdfghjkxd"},"content":" return Arrays.stream(StringsUtil.NEWLINE.split(result))","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"asdfghjkxd"},"content":" .map(StringsUtil.TAB::split)","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" .map(authorAndEmailArray -\u003e authorAndEmailArray.length \u003d\u003d 1","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" ? new String[] {authorAndEmailArray[0], DEFAULT_EMAIL_IF_MISSING}","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" : authorAndEmailArray)","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" * Returns the git log result containing the parents of {@code commitHash}.","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" public static String getParentCommits(String root, String commitHash) {","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" String command \u003d \"git log --pretty\u003d%P -1 \";","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" command +\u003d commitHash;","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" return runCommand(rootPath, command).trim();","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":3,"-":89}},{"path":"src/main/java/reposense/git/GitRemote.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.util.HashMap;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.system.CommandRunner;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" * Contains git remote related functionality.","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Git remote is responsible for getting remote repository information.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"public class GitRemote {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" public static final String DEFAULT_FETCH_REMOTE \u003d \"origin(fetch)\";","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" public static final String DEFAULT_PUSH_REMOTE \u003d \"origin(push)\";","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(GitRemote.class);","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" * Extracts remote repository information at {@code repoRoot}.","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" * @return Map of keys of the form REMOTE_NAME(fetch) or REMOTE_NAME(push) to their corresponding remote URLs.","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" public static Map\u003cString, String\u003e getRemotes(String repoRoot) {","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":" Pattern anyTabPattern \u003d Pattern.compile(\"[ \\\\t]+\");","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" Map\u003cString, String\u003e remotes \u003d new HashMap\u003c\u003e();","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" String result;","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" result \u003d CommandRunner.runCommand(Paths.get(repoRoot), \"git remote -v\");","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" } catch (RuntimeException re) {","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" logger.warning(String.format(\"Unable to run git remote command in directory: %s\", repoRoot));","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" return remotes;","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"asdfghjkxd"},"content":" Arrays.stream(StringsUtil.NEWLINE.split(result))","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":" .map(anyTabPattern::split)","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" .forEach(l -\u003e {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" if (l.length \u003d\u003d 3) {","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" // l[0]: remote name","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" // l[1]: remote URL","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" // l[2]: \u0027(fetch)\u0027 | \u0027(push)\u0027","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" remotes.put(l[0] + l[2], l[1]);","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" return remotes;","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" * Finds an available fetch remote location in a given {@code remoteMap}, checking first for the default fetch","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" * remote (origin).","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" * @return an {@code Optional} of an available remote location.","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" public static Optional\u003cString\u003e getAvailableRemoteLocation(Map\u003cString, String\u003e remoteMap) {","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" if (remoteMap.size() \u003d\u003d 0) {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" return Optional.empty();","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" String remoteLocation \u003d remoteMap.containsKey(DEFAULT_FETCH_REMOTE)","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" // Get default fetch remote if possible","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" ? remoteMap.get(DEFAULT_FETCH_REMOTE)","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" // Get any available remote otherwise","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" : remoteMap.values().iterator().next();","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" return Optional.of(remoteLocation);","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":5,"-":70}},{"path":"src/main/java/reposense/git/GitRevList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.system.CommandRunner.runCommand;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.time.ZonedDateTime;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Contains git rev list related functionalities.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" * Git rev list is responsible for showing commit objects in reverse chronological order.","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"public class GitRevList {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" private static final String REVISION_PATH_SEPARATOR \u003d \" -- \";","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" * Returns the latest commit hash at {@code branchName} before {@code date}.","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" * Returns an empty {@code String} if {@code date} is null, or there is no such commit.","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" * @param root The name of the working directory.","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" * @param branchName The name of the branch to find the commit hash in.","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" * @param date The cut-off date before which the commit hash must be found.","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" * @param zoneId The timezone of the date.","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" public static String getCommitHashUntilDate(String root, String branchName, LocalDateTime date, ZoneId zoneId) {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" if (date \u003d\u003d null) {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" return \"\";","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" String revListCommand \u003d \"git rev-list -1 --until\u003d\"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" + GitUtil.GIT_LOG_UNTIL_DATE_FORMAT.format(ZonedDateTime.of(date, zoneId))","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" + \" \" + branchName + REVISION_PATH_SEPARATOR;","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" return runCommand(rootPath, revListCommand);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" * Returns a list of commit hashes at the branch given by {@code branchName}, separated by newlines,","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" * that are within the range of {@code startHash} and {@code endHash}.","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" * The {@code root} is the name of the working directory.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" * Both the {@code startHash} and {@code endHash} are guaranteed to be in the list.","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" public static String getCommitHashInRange(String root, String branchName, String startHash, String endHash) {","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" if (startHash \u003d\u003d null \u0026\u0026 endHash \u003d\u003d null) {","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" return \"\";","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" } else if (startHash \u003d\u003d null) {","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" return endHash;","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" } else if (endHash \u003d\u003d null) {","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" return startHash;","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" String fromStartHash \u003d getAllCommitHashSince(root, branchName, startHash);","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" String fromEndHash \u003d getAllCommitHashSince(root, branchName, endHash);","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" StringBuilder output \u003d new StringBuilder();","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" // If invalid hashes were given, do not use the results obtained from rev-list","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" if (fromStartHash.equals(\"\") \u0026\u0026 fromEndHash.equals(\"\")) {","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" return \"\";","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" } else if (fromStartHash.equals(\"\")) {","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" return endHash;","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" } else if (fromEndHash.equals(\"\")) {","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" return startHash;","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" // Perform a set difference in the list of commits to get the commits within the given range, since both lists","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" // will have the list of commits starting from the given commit to HEAD, hence this removes the overlap part.","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" // Also ensure that both hashes are present in the final output","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" if (fromStartHash.length() \u003e fromEndHash.length()) {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" output.append(endHash);","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" output.append(fromStartHash.substring(fromEndHash.length()));","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" output.append(startHash);","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" output.append(fromEndHash.substring(fromStartHash.length()));","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" return output.toString();","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" * Returns a list of commit hashes at the branch given by {@code branchName} separated by newlines that exist","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" * since {@code hash} until HEAD.","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" * The {@code root} is the name of the working directory.","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" private static String getAllCommitHashSince(String root, String branchName, String hash) {","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" String revListCommand \u003d \"git rev-list \" + hash + \"..HEAD \" + branchName + REVISION_PATH_SEPARATOR;","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" return runCommand(rootPath, revListCommand) + hash;","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" } catch (RuntimeException rte) {","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" // An invalid commit hash was provided","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" return \"\";","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" * Returns a list of commit hashes for the root commits in the tree, with the {@link Path} given by {@code root}","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" * as working directory.","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" public static List\u003cString\u003e getRootCommits(String root) {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" String revListCommand \u003d \"git rev-list --max-parents\u003d0 HEAD\";","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" String output \u003d runCommand(rootPath, revListCommand);","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"asdfghjkxd"},"content":" return Arrays.asList(StringsUtil.NEWLINE.split(output));","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" * Returns true if the repository is empty, with the {@link Path} given by {@code root} as working directory.","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" public static boolean checkIsEmptyRepo(String root) {","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" String revListCommand \u003d \"git rev-list -n 1 --all\";","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" String output \u003d runCommand(rootPath, revListCommand);","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" return output \u003d\u003d null || output.trim().isEmpty();","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":4,"-":120}},{"path":"src/main/java/reposense/git/GitShortlog.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.system.CommandRunner.runCommand;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" * Contains git shortlog related functionalities.","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" * Git shortlog provides a summary of git log output.","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"public class GitShortlog {","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" * Extracts all the author identities from the repository and date range given in {@code config},","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" * with the timezone taken into account.","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" public static List\u003cAuthor\u003e getAuthors(RepoConfiguration config) {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" String summary \u003d getShortlogSummary(","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" config.getRepoRoot(), config.getSinceDate(), config.getUntilDate(), config.getZoneId());","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" if (summary.isEmpty()) {","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" return Collections.emptyList();","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":" String[] lines \u003d StringsUtil.NEWLINE.split(summary);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" return Arrays.stream(lines)","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":" .map(line -\u003e new Author(StringsUtil.TAB.split(line)[1]))","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" * Obtains summarized version of git log from the repository at {@code root} for the date range","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" * given by {@code sinceDate} and {@code untilDate}, with {@code zoneId} taken into account for both dates.","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" private static String getShortlogSummary(String root, LocalDateTime sinceDate, LocalDateTime untilDate,","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" ZoneId zoneId) {","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" String command \u003d \"git log --pretty\u003dshort\";","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" command +\u003d GitUtil.convertToGitDateRangeArgs(sinceDate, untilDate, zoneId);","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" command +\u003d \" | git shortlog --summary\";","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" return runCommand(rootPath, command);","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":3,"-":52}},{"path":"src/main/java/reposense/git/GitShow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.system.CommandRunner.runCommand;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.text.ParseException;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.time.format.DateTimeFormatter;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.git.exception.CommitNotFoundException;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import reposense.model.CommitHash;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" * Contains git show related functionalities.","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" * Git show shows various types of objects.","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"public class GitShow {","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(GitShow.class);","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" * Returns expanded form of the {@link CommitHash} associated with the {@code shortCommitHash}, with","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" * the {@link Path} given by {@code root} as the working directory.","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" * @throws CommitNotFoundException if there is no commit associated with {@code shortCommitHash}.","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" public static CommitHash getExpandedCommitHash(String root, String shortCommitHash) throws CommitNotFoundException {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" String showCommand \u003d \"git show -s --format\u003d%H \" + shortCommitHash;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" String output \u003d runCommand(rootPath, showCommand);","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"asdfghjkxd"},"content":" List\u003cCommitHash\u003e commitHashes \u003d Arrays.stream(StringsUtil.NEWLINE.split(output))","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" .map(CommitHash::new).collect(Collectors.toList());","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" if (commitHashes.size() \u003e 1) {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" logger.warning(String.format(\"%s can be expanded to %d different commits, \"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" + \"assuming %s refers to commit hash %s\",","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" shortCommitHash, commitHashes.size(), shortCommitHash, commitHashes.get(0)));","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" return commitHashes.get(0);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" } catch (RuntimeException re) {","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" throw new CommitNotFoundException(\"Commit not found: \" + shortCommitHash);","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" * Returns {@link LocalDateTime} of the commit associated with commit hash, with {@link Path} given by {@code root}","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" * as the working directory.","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" * @throws CommitNotFoundException if no commit exists for the given {@code commitHash}.","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" * @throws ParseException if the date string for the given {@code commitHash} could not be parsed into","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" * a {@link LocalDateTime} object.","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" public static LocalDateTime getCommitDate(String root, String commitHash)","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" throws CommitNotFoundException, ParseException {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" Path rootPath \u003d Paths.get(root);","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" String showCommand \u003d \"git show -s --format\u003d%ci \" + commitHash;","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" String output \u003d runCommand(rootPath, showCommand);","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" DateTimeFormatter format \u003d DateTimeFormatter.ofPattern(\"yyyy-MM-dd HH:mm:ss Z\u0027\\n\u0027\");","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" return LocalDateTime.parse(output, format);","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" } catch (RuntimeException re) {","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" throw new CommitNotFoundException(\"Commit not found: \" + commitHash);","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" * Returns {@link LocalDateTime} of the earliest commit out of the input list of commits in {@code commitHashes},","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" * with the {@code root} string denoting the working directory.","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" * @throws CommitNotFoundException if no commit exists for a given hash in {@code commitHashes}","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" * or if no date string was successfully parsed to a {@link LocalDateTime} for earliest date.","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" public static LocalDateTime getEarliestCommitDate(String root, List\u003cString\u003e commitHashes)","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" throws CommitNotFoundException {","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" LocalDateTime earliest \u003d null;","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" for (String hash : commitHashes) {","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" LocalDateTime date \u003d getCommitDate(root, hash);","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" if (earliest \u003d\u003d null || date.compareTo(earliest) \u003c 0) {","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" earliest \u003d date;","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" } catch (CommitNotFoundException e) {","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" logger.warning(\"Commit not found: \" + hash);","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" } catch (ParseException pe) {","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" logger.warning(\"Could not parse date for commit: \" + hash);","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" if (earliest \u003d\u003d null) {","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" throw new CommitNotFoundException(\"Date could not be retrieved for all input commits\");","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" return earliest;","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":101}},{"path":"src/main/java/reposense/model/Author.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.FileSystems;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.PathMatcher;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" * Represents a Git Author.","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"public class Author {","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" public static final String NAME_NO_AUTHOR_WITH_COMMITS_FOUND \u003d","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" \"NO AUTHOR WITH COMMITS FOUND WITHIN THIS PERIOD OF TIME\";","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" private static final String UNKNOWN_AUTHOR_GIT_ID \u003d \"-\";","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" private static final String STANDARD_GITHUB_EMAIL_DOMAIN \u003d \"@users.noreply.github.com\";","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" private static final String STANDARD_GITLAB_EMAIL_DOMAIN \u003d \"@users.noreply.gitlab.com\";","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" private static final String MESSAGE_UNCOMMON_EMAIL_PATTERN \u003d \"The provided email, %s, uses uncommon pattern.\";","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" private static final String MESSAGE_UNCOMMON_GLOB_PATTERN \u003d \"The provided ignore glob, %s, uses uncommon pattern.\";","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private static final String COMMON_EMAIL_REGEX \u003d","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" \"^([a-zA-Z0-9_\\\\-\\\\.\\\\+]+)@([a-zA-Z0-9_\\\\-\\\\.]+)\\\\.([a-zA-Z]{2,5})$\";","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private static final String COMMON_GLOB_REGEX \u003d \"^[-a-zA-Z0-9 _/\\\\\\\\*!{}\\\\[\\\\]!(),:.]*$\";","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" public static final Author UNKNOWN_AUTHOR \u003d new Author(UNKNOWN_AUTHOR_GIT_ID);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private final String gitId;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private transient List\u003cString\u003e emails;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private transient String displayName;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" private transient List\u003cString\u003e authorAliases;","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private transient List\u003cString\u003e ignoreGlobList;","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private transient PathMatcher ignoreGlobMatcher;","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" public Author(String gitId) {","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" this.gitId \u003d gitId;","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" this.emails \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" this.displayName \u003d gitId;","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" this.authorAliases \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" this.ignoreGlobList \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" addStandardGitHostEmails(this.emails);","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" updateIgnoreGlobMatcher();","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" public Author(StandaloneAuthor sa) {","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" String gitId \u003d sa.getGitId();","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" List\u003cString\u003e emails \u003d new ArrayList\u003c\u003e(sa.getEmails());","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" String displayName \u003d !sa.getDisplayName().isEmpty() ? sa.getDisplayName() : sa.getGitId();","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" List\u003cString\u003e authorAliases \u003d sa.getAuthorNames();","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" List\u003cString\u003e ignoreGlobList \u003d sa.getIgnoreGlobList();","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" this.gitId \u003d gitId;","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" this.displayName \u003d displayName;","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" this.authorAliases \u003d authorAliases;","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" setEmails(emails);","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" setIgnoreGlobList(ignoreGlobList);","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" public Author(Author another) {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" this.gitId \u003d another.gitId;","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" this.emails \u003d another.emails;","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" this.displayName \u003d another.gitId;","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" this.authorAliases \u003d another.authorAliases;","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" this.ignoreGlobList \u003d another.ignoreGlobList;","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" this.ignoreGlobMatcher \u003d another.ignoreGlobMatcher;","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" * Checks that all the strings in the {@code emails} only contains commonly used email patterns.","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" * @throws IllegalArgumentException if any of the values do not meet the criteria.","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" private static void validateEmails(List\u003cString\u003e emails) throws IllegalArgumentException {","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"asdfghjkxd"},"content":" Pattern emailPattern \u003d Pattern.compile(COMMON_EMAIL_REGEX);","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" for (String email : emails) {","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"asdfghjkxd"},"content":" if (!emailPattern.matcher(email).matches()) {","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" throw new IllegalArgumentException(String.format(MESSAGE_UNCOMMON_EMAIL_PATTERN, email));","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" * Checks that all the strings in the {@code ignoreGlobList} only contains commonly used glob patterns.","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" * @throws IllegalArgumentException if any of the values do not meet the criteria.","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" private static void validateIgnoreGlobs(List\u003cString\u003e ignoreGlobList) throws IllegalArgumentException {","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"asdfghjkxd"},"content":" Pattern globPattern \u003d Pattern.compile(COMMON_GLOB_REGEX);","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" for (String glob : ignoreGlobList) {","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"asdfghjkxd"},"content":" if (!globPattern.matcher(glob).matches()) {","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" throw new IllegalArgumentException(String.format(MESSAGE_UNCOMMON_GLOB_PATTERN, glob));","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" public String getGitId() {","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" return gitId;","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" public List\u003cString\u003e getEmails() {","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" return emails;","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" public void setEmails(List\u003cString\u003e emails) {","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" validateEmails(emails);","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" this.emails \u003d new ArrayList\u003c\u003e(emails);","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" addStandardGitHostEmails(this.emails);","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" public String getDisplayName() {","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" return displayName;","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" public void setDisplayName(String displayName) {","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" this.displayName \u003d displayName;","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" public List\u003cString\u003e getAuthorAliases() {","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" return authorAliases;","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" public void setAuthorAliases(List\u003cString\u003e authorAliases) {","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" this.authorAliases \u003d authorAliases;","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" public List\u003cString\u003e getIgnoreGlobList() {","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" return ignoreGlobList;","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" public void setIgnoreGlobList(List\u003cString\u003e ignoreGlobList) {","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" validateIgnoreGlobs(ignoreGlobList);","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" this.ignoreGlobList \u003d new ArrayList\u003c\u003e(ignoreGlobList);","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" updateIgnoreGlobMatcher();","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" * Validates and adds {@code ignoreGlobList} into the {@link Author} class instance variable without duplicates","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" * and updates the ignore glob matcher.","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" public void importIgnoreGlobList(List\u003cString\u003e ignoreGlobList) {","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" validateIgnoreGlobs(ignoreGlobList);","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" ignoreGlobList.forEach(ignoreGlob -\u003e {","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" if (!this.ignoreGlobList.contains(ignoreGlob)) {","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" this.ignoreGlobList.add(ignoreGlob);","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" updateIgnoreGlobMatcher();","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" * Returns true if this author is ignoring the {@code filePath} based on its ignore glob matcher.","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" public boolean isIgnoringFile(Path filePath) {","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" return ignoreGlobMatcher.matches(filePath);","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" public boolean equals(Object other) {","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" // short circuit if same object","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" if (this \u003d\u003d other) {","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" // instanceof handles null","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" if (!(other instanceof Author)) {","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" Author otherAuthor \u003d (Author) other;","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" return this.gitId.equalsIgnoreCase(otherAuthor.gitId);","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" public int hashCode() {","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" return gitId !\u003d null ? gitId.toLowerCase().hashCode() : 0;","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" public String toString() {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" return gitId;","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" * Updates the {@link PathMatcher} to the new ignore glob list set.","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" * Called after a new ignore glob list is set.","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" private void updateIgnoreGlobMatcher() {","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" String globString \u003d \"glob:{\" + String.join(\",\", ignoreGlobList) + \"}\";","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" ignoreGlobMatcher \u003d FileSystems.getDefault().getPathMatcher(globString);","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" * Adds the standard github and gitlab emails to {@code emails} if not present.","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" private void addStandardGitHostEmails(List\u003cString\u003e emails) {","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" String standardGitHubEmail \u003d getGitId() + STANDARD_GITHUB_EMAIL_DOMAIN;","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" String standardGitLabEmail \u003d getGitId() + STANDARD_GITLAB_EMAIL_DOMAIN;","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" if (!emails.contains(standardGitHubEmail)) {","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" emails.add(standardGitHubEmail);","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" if (!emails.contains(standardGitLabEmail)) {","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" emails.add(standardGitLabEmail);","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":"","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":7,"-":205}},{"path":"src/main/java/reposense/model/BlurbMap.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.HashMap;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"import com.fasterxml.jackson.annotation.JsonProperty;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"/**","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":" * Represents the mapping between the repo URL to the associated blurb.","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"public class BlurbMap {","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":" @JsonProperty(\"urlBlurbMap\")","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":" private final Map\u003cString, String\u003e urlBlurbMap;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":" public BlurbMap() {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":" this.urlBlurbMap \u003d new HashMap\u003c\u003e();","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"asdfghjkxd"},"content":" public Map\u003cString, String\u003e getAllMappings() {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":" return new HashMap\u003c\u003e(this.urlBlurbMap);","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":" * Adds a key-value record into the {@code BlurbMap}.","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":" * @param key Key value.","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":" * @param value Blurb value.","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":" public void withRecord(String key, String value) {","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":" this.urlBlurbMap.put(key, value);","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":" @Override","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":" public boolean equals(Object obj) {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":" if (obj \u003d\u003d this) {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":" return true;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"asdfghjkxd"},"content":" if (obj instanceof BlurbMap) {","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap bm \u003d (BlurbMap) obj;","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"asdfghjkxd"},"content":" return bm.urlBlurbMap.equals(this.urlBlurbMap);","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":" return false;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"asdfghjkxd"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":46}},{"path":"src/main/java/reposense/model/CliArguments.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.Objects;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.parser.ArgsParser;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.parser.AuthorConfigCsvParser;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.parser.GroupConfigCsvParser;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import reposense.parser.RepoConfigCsvParser;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.parser.ReportConfigJsonParser;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Represents command line arguments user supplied when running the program.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"public class CliArguments {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" private static final Path EMPTY_PATH \u003d Paths.get(\"\");","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":" private Path outputFilePath;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":" private Path assetsFilePath;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":" private LocalDateTime sinceDate;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":" private LocalDateTime untilDate;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":" private boolean isSinceDateProvided;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":" private boolean isUntilDateProvided;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":" private List\u003cFileType\u003e formats;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":" private boolean isLastModifiedDateIncluded;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":" private boolean isShallowCloningPerformed;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":" private boolean isAutomaticallyLaunching;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":" private boolean isStandaloneConfigIgnored;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":" private boolean isFileSizeLimitIgnored;","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":" private int numCloningThreads;","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":" private int numAnalysisThreads;","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":" private ZoneId zoneId;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":" private boolean isFindingPreviousAuthorsPerformed;","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private boolean isAuthorshipAnalyzed;","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" private double originalityThreshold;","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private boolean isTestMode \u003d ArgsParser.DEFAULT_IS_TEST_MODE;","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" private boolean isFreshClonePerformed \u003d ArgsParser.DEFAULT_SHOULD_FRESH_CLONE;","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" private List\u003cString\u003e locations;","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" private boolean isViewModeOnly;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" private Path reportDirectoryPath;","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" private Path configFolderPath;","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" private Path repoConfigFilePath;","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" private Path authorConfigFilePath;","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" private Path groupConfigFilePath;","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" private Path reportConfigFilePath;","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" private ReportConfiguration reportConfiguration;","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"asdfghjkxd"},"content":" private BlurbMap blurbMap;","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"asdfghjkxd"},"content":" * Constructs a {@code CliArguments} object without any parameters.","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"asdfghjkxd"},"content":" private CliArguments() {}","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" public ZoneId getZoneId() {","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" return zoneId;","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" public Path getOutputFilePath() {","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" return outputFilePath;","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" public Path getAssetsFilePath() {","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" return assetsFilePath;","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" public LocalDateTime getSinceDate() {","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" return sinceDate;","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" public LocalDateTime getUntilDate() {","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" return untilDate;","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" public boolean isSinceDateProvided() {","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" return isSinceDateProvided;","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" public boolean isUntilDateProvided() {","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" return isUntilDateProvided;","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" public boolean isLastModifiedDateIncluded() {","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" return isLastModifiedDateIncluded;","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" public boolean isShallowCloningPerformed() {","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" return isShallowCloningPerformed;","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" public List\u003cFileType\u003e getFormats() {","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" return formats;","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" public boolean isAutomaticallyLaunching() {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" return isAutomaticallyLaunching;","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" public boolean isStandaloneConfigIgnored() {","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" return isStandaloneConfigIgnored;","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" public boolean isFileSizeLimitIgnored() {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" return isFileSizeLimitIgnored;","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" public int getNumCloningThreads() {","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" return numCloningThreads;","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" public int getNumAnalysisThreads() {","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" return numAnalysisThreads;","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" public boolean isFindingPreviousAuthorsPerformed() {","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" return isFindingPreviousAuthorsPerformed;","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" public boolean isTestMode() {","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" return isTestMode;","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" public boolean isFreshClonePerformed() {","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" return isFreshClonePerformed;","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" public List\u003cString\u003e getLocations() {","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" return locations;","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" public Path getReportDirectoryPath() {","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" return reportDirectoryPath;","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" public Path getConfigFolderPath() {","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" return configFolderPath;","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" public Path getRepoConfigFilePath() {","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" return repoConfigFilePath;","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" public Path getAuthorConfigFilePath() {","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" return authorConfigFilePath;","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" public Path getGroupConfigFilePath() {","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" return groupConfigFilePath;","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" public Path getReportConfigFilePath() {","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" return reportConfigFilePath;","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" public ReportConfiguration getReportConfiguration() {","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" return reportConfiguration;","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"asdfghjkxd"},"content":" public BlurbMap getBlurbMap() {","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"asdfghjkxd"},"content":" return blurbMap;","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" public boolean isViewModeOnly() {","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" return isViewModeOnly;","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" public boolean isAuthorshipAnalyzed() {","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" return isAuthorshipAnalyzed;","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" public double getOriginalityThreshold() {","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" return originalityThreshold;","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" public boolean equals(Object other) {","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" // short circuit if same object","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" if (this \u003d\u003d other) {","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" // instanceof handles null","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" if (!(other instanceof CliArguments)) {","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" CliArguments otherCliArguments \u003d (CliArguments) other;","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" return Objects.equals(this.outputFilePath, otherCliArguments.outputFilePath)","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.sinceDate, otherCliArguments.sinceDate)","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.untilDate, otherCliArguments.untilDate)","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isSinceDateProvided \u003d\u003d otherCliArguments.isSinceDateProvided","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isUntilDateProvided \u003d\u003d otherCliArguments.isUntilDateProvided","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.formats, otherCliArguments.formats)","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isLastModifiedDateIncluded \u003d\u003d otherCliArguments.isLastModifiedDateIncluded","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isShallowCloningPerformed \u003d\u003d otherCliArguments.isShallowCloningPerformed","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isAutomaticallyLaunching \u003d\u003d otherCliArguments.isAutomaticallyLaunching","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isStandaloneConfigIgnored \u003d\u003d otherCliArguments.isStandaloneConfigIgnored","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" \u0026\u0026 this.numCloningThreads \u003d\u003d otherCliArguments.numCloningThreads","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" \u0026\u0026 this.numAnalysisThreads \u003d\u003d otherCliArguments.numAnalysisThreads","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.zoneId, otherCliArguments.zoneId)","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isFindingPreviousAuthorsPerformed \u003d\u003d otherCliArguments.isFindingPreviousAuthorsPerformed","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isFileSizeLimitIgnored \u003d\u003d otherCliArguments.isFileSizeLimitIgnored","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isTestMode \u003d\u003d otherCliArguments.isTestMode","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isFreshClonePerformed \u003d\u003d otherCliArguments.isFreshClonePerformed","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.locations, otherCliArguments.locations)","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isViewModeOnly \u003d\u003d otherCliArguments.isViewModeOnly","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.reportDirectoryPath, otherCliArguments.reportDirectoryPath)","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.repoConfigFilePath, otherCliArguments.repoConfigFilePath)","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.authorConfigFilePath, otherCliArguments.authorConfigFilePath)","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.groupConfigFilePath, otherCliArguments.groupConfigFilePath)","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.reportConfigFilePath, otherCliArguments.reportConfigFilePath)","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"asdfghjkxd"},"content":" \u0026\u0026 Objects.equals(this.blurbMap, otherCliArguments.blurbMap)","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" \u0026\u0026 this.isAuthorshipAnalyzed \u003d\u003d otherCliArguments.isAuthorshipAnalyzed","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" \u0026\u0026 Objects.equals(this.originalityThreshold, otherCliArguments.originalityThreshold);","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" * Builder used to build CliArguments.","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" public static final class Builder {","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"asdfghjkxd"},"content":" private CliArguments cliArguments;","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" public Builder() {","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments \u003d new CliArguments();","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" * Adds the {@code outputFilePath} to CliArguments.","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" * @param outputFilePath The output file path.","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" public Builder outputFilePath(Path outputFilePath) {","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.outputFilePath \u003d outputFilePath;","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" * Adds the {@code assetsFilePath} to CliArguments.","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" * @param assetsFilePath The assets file path.","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" public Builder assetsFilePath(Path assetsFilePath) {","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.assetsFilePath \u003d assetsFilePath;","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" * Adds the {@code sinceDate} to CliArguments.","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" * @param sinceDate The since date.","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" public Builder sinceDate(LocalDateTime sinceDate) {","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.sinceDate \u003d sinceDate;","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" * Adds the {@code untilDate} to CliArguments.","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" * @param untilDate The until date.","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" public Builder untilDate(LocalDateTime untilDate) {","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.untilDate \u003d untilDate;","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" * Adds the {@code isSinceDateProvided} to CliArguments.","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" * @param isSinceDateProvided Is the since date provided.","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" public Builder isSinceDateProvided(boolean isSinceDateProvided) {","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isSinceDateProvided \u003d isSinceDateProvided;","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" * Adds the {@code isUntilDateProvided} to CliArguments.","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" * @param isUntilDateProvided Is the until date provided.","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" public Builder isUntilDateProvided(boolean isUntilDateProvided) {","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isUntilDateProvided \u003d isUntilDateProvided;","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" * Adds the {@code formats} to CliArguments.","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" * @param formats The list of {@link FileType}.","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" public Builder formats(List\u003cFileType\u003e formats) {","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.formats \u003d formats;","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" * Adds the {@code isLastModifiedDateIncluded} to CliArguments.","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" * @param isLastModifiedDateIncluded Is the last modified date included.","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":" public Builder isLastModifiedDateIncluded(boolean isLastModifiedDateIncluded) {","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isLastModifiedDateIncluded \u003d isLastModifiedDateIncluded;","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" * Adds the {@code isShallowCloningPerformed} to CliArguments.","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":" * @param isShallowCloningPerformed Is shallow cloning performed.","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":" public Builder isShallowCloningPerformed(boolean isShallowCloningPerformed) {","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isShallowCloningPerformed \u003d isShallowCloningPerformed;","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":" * Adds the {@code isAutomaticallyLaunching} to CliArguments.","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" * @param isAutomaticallyLaunching Is automatically launching.","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":" public Builder isAutomaticallyLaunching(boolean isAutomaticallyLaunching) {","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isAutomaticallyLaunching \u003d isAutomaticallyLaunching;","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" * Adds the {@code isStandaloneConfigIgnored} to CliArguments.","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" * @param isStandaloneConfigIgnored Is standalone config ignored.","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" public Builder isStandaloneConfigIgnored(boolean isStandaloneConfigIgnored) {","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isStandaloneConfigIgnored \u003d isStandaloneConfigIgnored;","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" * Adds the {@code isFileSizeLimitIgnored} to CliArguments.","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":" * @param isFileSizeLimitIgnored Is file size limit ignored.","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":" public Builder isFileSizeLimitIgnored(boolean isFileSizeLimitIgnored) {","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isFileSizeLimitIgnored \u003d isFileSizeLimitIgnored;","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" * Adds the {@code numCloningThreads} to CliArguments.","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":" * @param numCloningThreads The number of cloning threads.","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":" public Builder numCloningThreads(int numCloningThreads) {","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.numCloningThreads \u003d numCloningThreads;","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":" * Adds the {@code numAnalysisThreads} to CliArguments.","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"-"},"content":" * @param numAnalysisThreads The number of analysis threads.","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" public Builder numAnalysisThreads(int numAnalysisThreads) {","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.numAnalysisThreads \u003d numAnalysisThreads;","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":" * Adds the {@code zoneId} to CliArguments.","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":" * @param zoneId The timezone Id.","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":" public Builder zoneId(ZoneId zoneId) {","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.zoneId \u003d zoneId;","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":" * Adds the {@code isFindingPreviousAuthorsPerformed} to CliArguments.","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"-"},"content":" * @param isFindingPreviousAuthorsPerformed Is finding previous authors performed.","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"-"},"content":" public Builder isFindingPreviousAuthorsPerformed(boolean isFindingPreviousAuthorsPerformed) {","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isFindingPreviousAuthorsPerformed \u003d isFindingPreviousAuthorsPerformed;","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"-"},"content":" * Adds the {@code isTestMode} to CliArguments.","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"-"},"content":" * @param isTestMode Is test mode.","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"-"},"content":" public Builder isTestMode(boolean isTestMode) {","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isTestMode \u003d isTestMode;","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"-"},"content":" * Adds the {@code isFreshClonePerformed} to CliArguments.","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"-"},"content":" * @param isFreshClonePerformed Is fresh clone performed.","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"-"},"content":" public Builder isFreshClonePerformed(boolean isFreshClonePerformed) {","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isFreshClonePerformed \u003d isFreshClonePerformed;","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"-"},"content":" * Adds the {@code locations} to CliArguments.","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"-"},"content":" * @param locations The list of locations.","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"-"},"content":" public Builder locations(List\u003cString\u003e locations) {","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.locations \u003d locations;","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"-"},"content":" * Adds the {@code isViewModeOnly} to CliArguments.","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"-"},"content":" * @param isViewModeOnly Is view mode only.","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"-"},"content":" public Builder isViewModeOnly(boolean isViewModeOnly) {","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.isViewModeOnly \u003d isViewModeOnly;","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"-"},"content":" * Adds the {@code reportDirectoryPath} to CliArguments.","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"-"},"content":" * @param reportDirectoryPath The report directory path.","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"-"},"content":" public Builder reportDirectoryPath(Path reportDirectoryPath) {","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.reportDirectoryPath \u003d reportDirectoryPath;","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"-"},"content":" * Adds the {@code configFolderPath} to CliArguments. {@code configFolderPath} is utilised to configure the","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"-"},"content":" * {@code repoConfigFilePath}, {@code authorConfigFilePath}, {@code groupConfigFilePath} and","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"-"},"content":" * {@code reportConfigFilePath}.","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"-"},"content":" * @param configFolderPath The config folder path.","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"-"},"content":" public Builder configFolderPath(Path configFolderPath) {","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.configFolderPath \u003d configFolderPath.equals(EMPTY_PATH)","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"-"},"content":" ? configFolderPath.toAbsolutePath()","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"-"},"content":" : configFolderPath;","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.repoConfigFilePath \u003d configFolderPath.resolve(","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfigCsvParser.REPO_CONFIG_FILENAME);","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.authorConfigFilePath \u003d configFolderPath.resolve(","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"asdfghjkxd"},"content":" AuthorConfigCsvParser.AUTHOR_CONFIG_FILENAME);","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.groupConfigFilePath \u003d configFolderPath.resolve(","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"asdfghjkxd"},"content":" GroupConfigCsvParser.GROUP_CONFIG_FILENAME);","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.reportConfigFilePath \u003d configFolderPath.resolve(","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"asdfghjkxd"},"content":" ReportConfigJsonParser.REPORT_CONFIG_FILENAME);","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"-"},"content":" * Adds the {@code reportConfiguration} to CliArguments.","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"-"},"content":" * @param reportConfiguration The report configuration.","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"-"},"content":" public Builder reportConfiguration(ReportConfiguration reportConfiguration) {","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.reportConfiguration \u003d reportConfiguration;","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"-"},"content":" * Adds the {@code isAuthorshipAnalyzed} to CliArguments.","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"-"},"content":" * @param isAuthorshipAnalyzed Is authorship analyzed.","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"-"},"content":" public Builder isAuthorshipAnalyzed(boolean isAuthorshipAnalyzed) {","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"-"},"content":" this.cliArguments.isAuthorshipAnalyzed \u003d isAuthorshipAnalyzed;","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"-"},"content":" * Adds the {@code originalityThreshold} to CliArguments.","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"-"},"content":" * @param originalityThreshold the originality threshold.","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"-"},"content":" public Builder originalityThreshold(double originalityThreshold) {","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"-"},"content":" this.cliArguments.originalityThreshold \u003d originalityThreshold;","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"asdfghjkxd"},"content":" * Adds the {@code blurbMap} to CliArguments.","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"asdfghjkxd"},"content":" * @param blurbMap The blurb map.","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"asdfghjkxd"},"content":" public Builder blurbMap(BlurbMap blurbMap) {","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments.blurbMap \u003d blurbMap;","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"-"},"content":" return this;","isFullCredit":false},{"lineNumber":504,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":505,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":506,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":507,"author":{"gitId":"-"},"content":" * Builds CliArguments.","isFullCredit":false},{"lineNumber":508,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":509,"author":{"gitId":"-"},"content":" * @return CliArguments","isFullCredit":false},{"lineNumber":510,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":511,"author":{"gitId":"-"},"content":" public CliArguments build() {","isFullCredit":false},{"lineNumber":512,"author":{"gitId":"asdfghjkxd"},"content":" CliArguments built \u003d this.cliArguments;","isFullCredit":false},{"lineNumber":513,"author":{"gitId":"asdfghjkxd"},"content":" this.cliArguments \u003d new CliArguments();","isFullCredit":false},{"lineNumber":514,"author":{"gitId":"asdfghjkxd"},"content":" return built;","isFullCredit":false},{"lineNumber":515,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":516,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":517,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":69,"-":448}},{"path":"src/main/java/reposense/model/CliRunConfiguration.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.util.logging.Level;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidLocationException;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.ParseException;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" * Represents RepoSense run configured by CLI.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"public class CliRunConfiguration implements RunConfiguration {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(CliRunConfiguration.class);","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" private final CliArguments cliArguments;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" public CliRunConfiguration(CliArguments cliArguments) {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" this.cliArguments \u003d cliArguments;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" * Constructs a list of {@link RepoConfiguration}.","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" * @throws ParseException if all repo locations are invalid.","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" public List\u003cRepoConfiguration\u003e getRepoConfigurations() throws ParseException {","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" for (String locationString : cliArguments.getLocations()) {","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":" configs.add(","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(locationString))","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":" .build()","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" } catch (InvalidLocationException ile) {","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, ile.getMessage(), ile);","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" if (configs.isEmpty()) {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" throw new ParseException(\"All repository locations are invalid.\");","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" return configs;","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":7,"-":43}},{"path":"src/main/java/reposense/model/CommitHash.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.stream.Stream;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import reposense.git.GitRevList;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" * Represents a git commit hash in {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"public class CommitHash {","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" private static final String COMMIT_HASH_REGEX \u003d \"^[0-9a-f]+$\";","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" private static final String COMMIT_RANGED_HASH_REGEX \u003d \"^[0-9a-f]+\\\\.\\\\.[0-9a-f]+$\";","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" private static final String INVALID_COMMIT_HASH_MESSAGE \u003d","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" \"The provided commit hash, %s, contains illegal characters.\";","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" private String commit;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" public CommitHash(String commit) {","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" validateCommit(commit);","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" this.commit \u003d commit;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" public String toString() {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" return commit;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" public boolean equals(Object other) {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" // short circuit if same object","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" if (this \u003d\u003d other) {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" // instanceof handles null","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" if (!(other instanceof CommitHash)) {","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" CommitHash otherCommit \u003d (CommitHash) other;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" return this.commit.equals(otherCommit.commit);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" public int hashCode() {","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" return commit.hashCode();","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" * Converts all the strings in {@code commits} into {@link CommitHash} objects.","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" * Returns null if {@code commits} is null.","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" * @throws IllegalArgumentException if any of the strings are in invalid formats.","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" public static List\u003cCommitHash\u003e convertStringsToCommits(List\u003cString\u003e commits) throws IllegalArgumentException {","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" if (commits \u003d\u003d null) {","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" return null;","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" return commits.stream()","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" .map(CommitHash::new)","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" * Converts a commit {@code entry} into either itself, or a stream of {@link CommitHash} objects if a range was","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" * provided.","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" * Uses {@code root} as the working directory and {@code branchName} as the branch from which to obtain the hashes.","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" public static Stream\u003cCommitHash\u003e getHashes(String root, String branchName, CommitHash entry) {","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" if (entry.toString().matches(COMMIT_HASH_REGEX)) {","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" return Stream.of(entry);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" String[] startAndEnd \u003d entry.toString().split(\"\\\\.\\\\.\");","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" String revList \u003d GitRevList.getCommitHashInRange(root, branchName, startAndEnd[0], startAndEnd[1]);","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"asdfghjkxd"},"content":" return Arrays.stream(StringsUtil.NEWLINE.split(revList))","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" .map(CommitHash::new);","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" * Checks if {@code commitList} contains {@code commitHash}.","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" public static boolean isInsideCommitList(String commitHash, List\u003cCommitHash\u003e commitList) {","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" return commitList.stream().map(CommitHash::toString).anyMatch(commitHash::startsWith);","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" * Checks that all the strings in the {@code ignoreCommitList} are in valid formats.","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" * @throws IllegalArgumentException if any of the values do not meet the criteria.","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" public static void validateCommits(List\u003cString\u003e commits) throws IllegalArgumentException {","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" for (String commitHash : commits) {","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" validateCommit(commitHash);","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" * Checks that {@code commitHash} is in a valid format.","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" * @throws IllegalArgumentException if {@code commitHash} does not meet the criteria.","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" private static void validateCommit(String commitHash) throws IllegalArgumentException {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" if (!commitHash.matches(COMMIT_HASH_REGEX) \u0026\u0026 !commitHash.matches(COMMIT_RANGED_HASH_REGEX)) {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" throw new IllegalArgumentException(String.format(INVALID_COMMIT_HASH_MESSAGE, commitHash));","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"}","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":112}},{"path":"src/main/java/reposense/model/ConfigRunConfiguration.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.logging.Level;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.parser.AuthorConfigCsvParser;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.parser.GroupConfigCsvParser;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.parser.RepoConfigCsvParser;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidCsvException;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidHeaderException;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" * Represents RepoSense run configured by config files.","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"public class ConfigRunConfiguration implements RunConfiguration {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(ConfigRunConfiguration.class);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private final CliArguments cliArguments;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" public ConfigRunConfiguration(CliArguments cliArguments) {","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" this.cliArguments \u003d cliArguments;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" * Constructs a list of {@link RepoConfiguration}.","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" * @throws IOException if user-supplied csv file does not exist or is not readable.","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" * @throws InvalidCsvException if user-supplied repo-config csv is malformed.","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" * @throws InvalidHeaderException if user-supplied csv file has header that cannot be parsed.","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" public List\u003cRepoConfiguration\u003e getRepoConfigurations()","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" throws IOException, InvalidCsvException, InvalidHeaderException {","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e repoConfigs \u003d new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e authorConfigs;","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" List\u003cGroupConfiguration\u003e groupConfigs;","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" Path authorConfigFilePath \u003d cliArguments.getAuthorConfigFilePath();","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" Path groupConfigFilePath \u003d cliArguments.getGroupConfigFilePath();","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" if (authorConfigFilePath !\u003d null \u0026\u0026 Files.exists(authorConfigFilePath)) {","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" authorConfigs \u003d new AuthorConfigCsvParser(cliArguments.getAuthorConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" RepoConfiguration.merge(repoConfigs, authorConfigs);","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" RepoConfiguration.setHasAuthorConfigFileToRepoConfigs(repoConfigs, true);","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" } catch (IOException | InvalidCsvException e) {","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" // for all IO and invalid csv exceptions, log the error and continue","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, e.getMessage(), e);","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" if (groupConfigFilePath !\u003d null \u0026\u0026 Files.exists(groupConfigFilePath)) {","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" groupConfigs \u003d new GroupConfigCsvParser(cliArguments.getGroupConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" RepoConfiguration.setGroupConfigsToRepos(repoConfigs, groupConfigs);","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" } catch (IOException | InvalidCsvException e) {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" // for all IO and invalid csv exceptions, log the error and continue","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, e.getMessage(), e);","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" return repoConfigs;","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":69}},{"path":"src/main/java/reposense/model/RepoConfiguration.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.File;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.git.GitBranch;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.git.exception.GitBranchException;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.ConfigurationBuildException;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" * Represents configuration information from CSV config file for a single repository.","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"public class RepoConfiguration {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" public static final String DEFAULT_BRANCH \u003d \"HEAD\";","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" public static final String DEFAULT_EXTRA_OUTPUT_FOLDER_NAME \u003d \"\";","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" public static final long DEFAULT_FILE_SIZE_LIMIT \u003d 500000;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(RepoConfiguration.class);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private RepoLocation location;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":" private String branch \u003d DEFAULT_BRANCH;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private String displayName;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private String outputFolderName;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":" private transient String extraOutputFolderName \u003d DEFAULT_EXTRA_OUTPUT_FOLDER_NAME;","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private transient ZoneId zoneId;","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private transient LocalDateTime sinceDate;","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private transient LocalDateTime untilDate;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private transient String repoFolderName;","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"asdfghjkxd"},"content":" private transient FileTypeManager fileTypeManager \u003d new FileTypeManager(Collections.emptyList());","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private transient List\u003cString\u003e ignoreGlobList \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" private transient List\u003cString\u003e ignoredAuthorsList \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" private transient AuthorConfiguration authorConfig;","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":" private transient boolean isStandaloneConfigIgnored \u003d false;","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":" private transient boolean isFileSizeLimitIgnored \u003d false;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"asdfghjkxd"},"content":" private transient List\u003cCommitHash\u003e ignoreCommitList \u003d Collections.emptyList();","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" private transient boolean isLastModifiedDateIncluded;","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"asdfghjkxd"},"content":" private transient boolean isShallowCloningPerformed \u003d false;","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"asdfghjkxd"},"content":" private transient boolean isFindingPreviousAuthorsPerformed \u003d false;","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"asdfghjkxd"},"content":" private transient boolean isFormatsOverriding \u003d false;","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" private transient boolean isIgnoreGlobListOverriding;","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"asdfghjkxd"},"content":" private transient boolean isIgnoreCommitListOverriding \u003d false;","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" private transient boolean isIgnoredAuthorsListOverriding;","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"asdfghjkxd"},"content":" private transient long fileSizeLimit \u003d DEFAULT_FILE_SIZE_LIMIT;","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"asdfghjkxd"},"content":" private transient boolean isFileSizeLimitOverriding \u003d false;","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"asdfghjkxd"},"content":" private transient boolean isIgnoredFileAnalysisSkipped \u003d false;","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"asdfghjkxd"},"content":" * Constructs an empty instance of {@code RepoConfiguration}, which is used by the {@code Builder}","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"asdfghjkxd"},"content":" * to construct new {@code RepoConfiguration} instances.","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"asdfghjkxd"},"content":" private RepoConfiguration() {}","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"asdfghjkxd"},"content":" * Builds the necessary configurations for RepoConfiguration.","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"asdfghjkxd"},"content":" * Obeys the Builder pattern as described in {@link CliArguments}.","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"asdfghjkxd"},"content":" public static class Builder {","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"asdfghjkxd"},"content":" private String displayName;","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"asdfghjkxd"},"content":" private String outputFolderName;","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"asdfghjkxd"},"content":" private String repoFolderName;","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"asdfghjkxd"},"content":" private RepoConfiguration repoConfiguration;","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"asdfghjkxd"},"content":" * Returns an empty instance of the RepoConfiguration Builder.","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"asdfghjkxd"},"content":" public Builder() {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration \u003d new RepoConfiguration();","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"asdfghjkxd"},"content":" * Processes the author configuration of the repository.","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"asdfghjkxd"},"content":" private void processAuthor() {","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.authorConfig \u003d new AuthorConfiguration(","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.location,","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.branch);","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"asdfghjkxd"},"content":" * Processes the branch of the repository.","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"asdfghjkxd"},"content":" private void processBranch() {","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.branch \u003d this.repoConfiguration.location.isEmpty()","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"asdfghjkxd"},"content":" ? DEFAULT_BRANCH","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"asdfghjkxd"},"content":" : this.repoConfiguration.branch;","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"asdfghjkxd"},"content":" * Processes the relevant names of the repository configs.","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"asdfghjkxd"},"content":" private void processNames() {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"asdfghjkxd"},"content":" String repoName \u003d this.repoConfiguration.location.getRepoName();","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"asdfghjkxd"},"content":" String org \u003d this.repoConfiguration.location.getOrganization();","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"asdfghjkxd"},"content":" String defaultDisplayName \u003d repoName + \"[\" + this.repoConfiguration.branch + \"]\";","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"asdfghjkxd"},"content":" String defaultOutputFolderName \u003d repoName + \"_\" + this.repoConfiguration.branch;","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"asdfghjkxd"},"content":" String defaultRepoFolderName \u003d repoName;","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"asdfghjkxd"},"content":" if (!org.isEmpty()) {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"asdfghjkxd"},"content":" defaultDisplayName \u003d org + \"/\" + defaultDisplayName;","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"asdfghjkxd"},"content":" defaultRepoFolderName \u003d org + \"_\" + defaultRepoFolderName;","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"asdfghjkxd"},"content":" defaultOutputFolderName \u003d org + \"_\" + defaultOutputFolderName;","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.displayName \u003d Optional.ofNullable(this.displayName)","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"asdfghjkxd"},"content":" .orElse(defaultDisplayName);","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.outputFolderName \u003d Optional.ofNullable(this.outputFolderName)","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"asdfghjkxd"},"content":" .orElse(defaultOutputFolderName);","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.repoFolderName \u003d Optional.ofNullable(this.repoFolderName)","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"asdfghjkxd"},"content":" .orElse(defaultRepoFolderName);","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code location} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"asdfghjkxd"},"content":" * @param location A repository location.","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"asdfghjkxd"},"content":" public Builder location(RepoLocation location) {","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.location \u003d location;","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code branch} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"asdfghjkxd"},"content":" * @param branch Branch of the repository of interest.","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"asdfghjkxd"},"content":" public Builder branch(String branch) {","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.branch \u003d branch;","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code displayName} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"asdfghjkxd"},"content":" * @param displayName Display name of the repository.","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"asdfghjkxd"},"content":" public Builder displayName(String displayName) {","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"asdfghjkxd"},"content":" this.displayName \u003d displayName;","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.displayName \u003d displayName;","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code outputFolderName} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"asdfghjkxd"},"content":" * @param outputFolderName Output folder name of the repository.","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"asdfghjkxd"},"content":" public Builder outputFolderName(String outputFolderName) {","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"asdfghjkxd"},"content":" this.outputFolderName \u003d outputFolderName;","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.outputFolderName \u003d outputFolderName;","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code extraOutputFolderName} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"asdfghjkxd"},"content":" * @param extraOutputFolderName Extra output folder name of the repository.","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"asdfghjkxd"},"content":" public Builder extraOutputFolderName(String extraOutputFolderName) {","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.extraOutputFolderName \u003d extraOutputFolderName;","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code zoneId} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"asdfghjkxd"},"content":" * @param zoneId Time-zone of the repository.","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"asdfghjkxd"},"content":" public Builder zoneId(ZoneId zoneId) {","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.zoneId \u003d zoneId;","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code sinceDate} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"asdfghjkxd"},"content":" * @param sinceDate Starting date of analysis.","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"asdfghjkxd"},"content":" public Builder sinceDate(LocalDateTime sinceDate) {","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.sinceDate \u003d sinceDate;","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code untilDate} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"asdfghjkxd"},"content":" * @param untilDate Ending date of analysis.","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"asdfghjkxd"},"content":" public Builder untilDate(LocalDateTime untilDate) {","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.untilDate \u003d untilDate;","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code repoFolderName} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"asdfghjkxd"},"content":" * @param repoFolderName Folder name of the repository.","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"asdfghjkxd"},"content":" public Builder repoFolderName(String repoFolderName) {","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"asdfghjkxd"},"content":" this.repoFolderName \u003d repoFolderName;","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.repoFolderName \u003d repoFolderName;","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code fileTypeManager} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"asdfghjkxd"},"content":" * @param fileTypes List of file types and groupings permitted.","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"asdfghjkxd"},"content":" public Builder fileTypeManager(List\u003cFileType\u003e fileTypes) {","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.fileTypeManager \u003d new FileTypeManager(fileTypes);","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code ignoreGlobList} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"asdfghjkxd"},"content":" * @param ignoredGlobList List of glob patterns to ignore.","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"asdfghjkxd"},"content":" public Builder ignoreGlobList(List\u003cString\u003e ignoredGlobList) {","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.ignoreGlobList \u003d ignoredGlobList;","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code ignoredAuthorsList} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"asdfghjkxd"},"content":" * @param ignoredAuthorsList List of authors to ignore.","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"asdfghjkxd"},"content":" public Builder ignoredAuthorsList(List\u003cString\u003e ignoredAuthorsList) {","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.ignoredAuthorsList \u003d ignoredAuthorsList;","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code authorConfig} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"asdfghjkxd"},"content":" * @param authorConfig Author configuration information of the repository.","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"asdfghjkxd"},"content":" public Builder authorConfig(AuthorConfiguration authorConfig) {","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.authorConfig \u003d authorConfig;","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isStandaloneConfigIgnored} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"asdfghjkxd"},"content":" * @param isStandaloneConfigIgnored Checks if standalone config is ignored.","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isStandaloneConfigIgnored(boolean isStandaloneConfigIgnored) {","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isStandaloneConfigIgnored \u003d isStandaloneConfigIgnored;","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isFileSizeLimitIgnored} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"asdfghjkxd"},"content":" * @param isFileSizeLimitIgnored Checks if file size limit is ignored.","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isFileSizeLimitIgnored(boolean isFileSizeLimitIgnored) {","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isFileSizeLimitIgnored \u003d isFileSizeLimitIgnored;","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code ignoreCommitList} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"asdfghjkxd"},"content":" * @param ignoreCommitList List of commits to ignore.","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"asdfghjkxd"},"content":" public Builder ignoreCommitList(List\u003cCommitHash\u003e ignoreCommitList) {","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.ignoreCommitList \u003d ignoreCommitList;","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isLastModifiedDateIncluded} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"asdfghjkxd"},"content":" * @param isLastModifiedDateIncluded Checks if last modified date is included.","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isLastModifiedDateIncluded(boolean isLastModifiedDateIncluded) {","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isLastModifiedDateIncluded \u003d isLastModifiedDateIncluded;","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isShallowCloningPerformed} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"asdfghjkxd"},"content":" * @param isShallowCloningPerformed Checks if shallow cloning is performed.","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isShallowCloningPerformed(boolean isShallowCloningPerformed) {","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isShallowCloningPerformed \u003d isShallowCloningPerformed;","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isFindingPreviousAuthorsPerformed} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"asdfghjkxd"},"content":" * @param isFindingPreviousAuthorsPerformed Checks if finding previous authors is performed.","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isFindingPreviousAuthorsPerformed(boolean isFindingPreviousAuthorsPerformed) {","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isFindingPreviousAuthorsPerformed \u003d isFindingPreviousAuthorsPerformed;","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isFormatsOverriding} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"asdfghjkxd"},"content":" * @param isFormatsOverriding Checks if file formats are overridden.","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isFormatsOverriding(boolean isFormatsOverriding) {","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isFormatsOverriding \u003d isFormatsOverriding;","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isIgnoreGlobListOverriding} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"asdfghjkxd"},"content":" * @param isIgnoreGlobListOverriding Checks if the list of ignored glob is overridden.","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isIgnoreGlobListOverriding(boolean isIgnoreGlobListOverriding) {","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isIgnoreGlobListOverriding \u003d isIgnoreGlobListOverriding;","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isIgnoreCommitListOverriding} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"asdfghjkxd"},"content":" * @param isIgnoreCommitListOverriding Checks if the list of ignored commits is overridden.","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isIgnoreCommitListOverriding(boolean isIgnoreCommitListOverriding) {","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isIgnoreCommitListOverriding \u003d isIgnoreCommitListOverriding;","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isFileSizeLimitOverriding} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"asdfghjkxd"},"content":" * @param isIgnoredAuthorsListOverriding Checks if the list of ignored authors is overridden.","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isIgnoredAuthorsListOverriding(boolean isIgnoredAuthorsListOverriding) {","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isIgnoredAuthorsListOverriding \u003d isIgnoredAuthorsListOverriding;","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code fileSizeLimit} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"asdfghjkxd"},"content":" * @param fileSizeLimit File size limit of the repository.","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"asdfghjkxd"},"content":" public Builder fileSizeLimit(long fileSizeLimit) {","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.fileSizeLimit \u003d fileSizeLimit;","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isFileSizeLimitOverriding} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"asdfghjkxd"},"content":" * @param isFileSizeLimitOverriding Checks if the file size limit is overridden.","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isFileSizeLimitOverriding(boolean isFileSizeLimitOverriding) {","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isFileSizeLimitOverriding \u003d isFileSizeLimitOverriding;","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"asdfghjkxd"},"content":" * Updates the {@code isIgnoredFileAnalysisSkipped} for {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"asdfghjkxd"},"content":" * @param isIgnoredFileAnalysisSkipped Checks if the analysis of ignored files is skipped.","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"asdfghjkxd"},"content":" * @return This builder object.","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"asdfghjkxd"},"content":" public Builder isIgnoredFileAnalysisSkipped(boolean isIgnoredFileAnalysisSkipped) {","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration.isIgnoredFileAnalysisSkipped \u003d isIgnoredFileAnalysisSkipped;","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"asdfghjkxd"},"content":" return this;","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"asdfghjkxd"},"content":" * Builds the {@code RepoConfiguration} object with the necessary configurations.","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"asdfghjkxd"},"content":" * @return {@code RepoConfiguration}.","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"asdfghjkxd"},"content":" * @throws ConfigurationBuildException if there was an issue building the {@code RepoConfiguration}","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"asdfghjkxd"},"content":" * object.","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"asdfghjkxd"},"content":" public RepoConfiguration build() {","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"asdfghjkxd"},"content":" if (!validate()) {","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"asdfghjkxd"},"content":" throw new ConfigurationBuildException();","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"asdfghjkxd"},"content":" this.processAuthor();","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"asdfghjkxd"},"content":" this.processBranch();","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"asdfghjkxd"},"content":" this.processNames();","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"asdfghjkxd"},"content":" // save a reference to the current built object","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration toReturn \u003d this.repoConfiguration;","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"asdfghjkxd"},"content":" // reset the internal reference to avoid aliasing","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"asdfghjkxd"},"content":" this.repoConfiguration \u003d new RepoConfiguration();","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"asdfghjkxd"},"content":" // return the reference to the built RepoConfiguration object","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"asdfghjkxd"},"content":" return toReturn;","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"asdfghjkxd"},"content":" * Checks if the current {@code RepoConfiguration} object contains all the necessary parameters","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"asdfghjkxd"},"content":" * needed to build successfully.","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"asdfghjkxd"},"content":" * @return true if the {@code RepoConfiguration} object contains all the necessary parameters else false","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"asdfghjkxd"},"content":" private boolean validate() {","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"asdfghjkxd"},"content":" return Optional.ofNullable(this.repoConfiguration.location).isPresent();","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"-"},"content":" public static void setDatesToRepoConfigs(List\u003cRepoConfiguration\u003e configs,","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"-"},"content":" LocalDateTime sinceDate, LocalDateTime untilDate) {","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"-"},"content":" for (RepoConfiguration config : configs) {","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"-"},"content":" config.setSinceDate(sinceDate);","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"-"},"content":" config.setUntilDate(untilDate);","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"-"},"content":" public static void setZoneIdToRepoConfigs(List\u003cRepoConfiguration\u003e configs, ZoneId zoneId) {","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"-"},"content":" for (RepoConfiguration config : configs) {","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"-"},"content":" config.setZoneId(zoneId);","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"-"},"content":" public static void setIsLastModifiedDateIncludedToRepoConfigs(List\u003cRepoConfiguration\u003e configs,","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"-"},"content":" boolean isLastModifiedDateIncluded) {","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"-"},"content":" for (RepoConfiguration config : configs) {","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"-"},"content":" config.setIsLastModifiedDateIncluded(isLastModifiedDateIncluded);","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"-"},"content":" public static void setIsShallowCloningPerformedToRepoConfigs(List\u003cRepoConfiguration\u003e configs,","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"-"},"content":" boolean isShallowCloningPerformed) {","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"-"},"content":" if (isShallowCloningPerformed) {","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"-"},"content":" configs.stream().forEach(config -\u003e config.setIsShallowCloningPerformed(true));","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"-"},"content":" public static void setIsFindingPreviousAuthorsPerformedToRepoConfigs(List\u003cRepoConfiguration\u003e configs,","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"-"},"content":" boolean isFindingPreviousAuthorsPerformed) {","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"-"},"content":" if (isFindingPreviousAuthorsPerformed) {","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"-"},"content":" configs.stream().forEach(config -\u003e config.setIsFindingPreviousAuthorsPerformed(true));","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"-"},"content":" public static void setHasAuthorConfigFileToRepoConfigs(List\u003cRepoConfiguration\u003e configs,","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"-"},"content":" boolean setHasAuthorConfigFile) {","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"-"},"content":" configs.stream().forEach(config -\u003e config.setHasAuthorConfigFile(setHasAuthorConfigFile));","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"-"},"content":" * Merges a {@link RepoConfiguration} from {@code repoConfigs} with an {@link AuthorConfiguration} from","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"-"},"content":" * {@code authorConfigs} if their {@link RepoLocation} and branch matches.","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"-"},"content":" public static void merge(List\u003cRepoConfiguration\u003e repoConfigs, List\u003cAuthorConfiguration\u003e authorConfigs) {","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"-"},"content":" for (AuthorConfiguration authorConfig : authorConfigs) {","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"-"},"content":" if (authorConfig.getLocation().isEmpty()) {","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"-"},"content":" for (RepoConfiguration repoConfig : repoConfigs) {","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"-"},"content":" repoConfig.addAuthors(authorConfig.getAuthorList());","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e locationMatchingRepoConfigs \u003d","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"-"},"content":" getMatchingRepoConfigsByLocation(repoConfigs, authorConfig.getLocation());","isFullCredit":false},{"lineNumber":504,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":505,"author":{"gitId":"-"},"content":" if (locationMatchingRepoConfigs.isEmpty()) {","isFullCredit":false},{"lineNumber":506,"author":{"gitId":"-"},"content":" logger.warning(String.format(","isFullCredit":false},{"lineNumber":507,"author":{"gitId":"-"},"content":" \"Repository %s is not found in repo-config.csv.\",","isFullCredit":false},{"lineNumber":508,"author":{"gitId":"-"},"content":" authorConfig.getLocation()));","isFullCredit":false},{"lineNumber":509,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":510,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":511,"author":{"gitId":"-"},"content":" if (authorConfig.isDefaultBranch()) {","isFullCredit":false},{"lineNumber":512,"author":{"gitId":"-"},"content":" locationMatchingRepoConfigs.forEach(matchingRepoConfig -\u003e {","isFullCredit":false},{"lineNumber":513,"author":{"gitId":"-"},"content":" matchingRepoConfig.addAuthors(authorConfig.getAuthorList());","isFullCredit":false},{"lineNumber":514,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":515,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":516,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":517,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":518,"author":{"gitId":"-"},"content":" RepoConfiguration branchMatchingRepoConfig \u003d getMatchingRepoConfig(repoConfigs, authorConfig);","isFullCredit":false},{"lineNumber":519,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":520,"author":{"gitId":"-"},"content":" if (branchMatchingRepoConfig \u003d\u003d null) {","isFullCredit":false},{"lineNumber":521,"author":{"gitId":"-"},"content":" if (!authorConfig.isDefaultBranch()) {","isFullCredit":false},{"lineNumber":522,"author":{"gitId":"-"},"content":" logger.warning(String.format(","isFullCredit":false},{"lineNumber":523,"author":{"gitId":"-"},"content":" \"Repository %s (branch %s) is not found in repo-config.csv.\",","isFullCredit":false},{"lineNumber":524,"author":{"gitId":"-"},"content":" authorConfig.getLocation(), authorConfig.getBranch()));","isFullCredit":false},{"lineNumber":525,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":526,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":527,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":528,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":529,"author":{"gitId":"-"},"content":" branchMatchingRepoConfig.addAuthors(authorConfig.getAuthorList());","isFullCredit":false},{"lineNumber":530,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":531,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":532,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":533,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":534,"author":{"gitId":"-"},"content":" * Sets the list of groups in {@code groupConfigs} to the respective {@code repoConfigs}.","isFullCredit":false},{"lineNumber":535,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":536,"author":{"gitId":"-"},"content":" public static void setGroupConfigsToRepos(List\u003cRepoConfiguration\u003e repoConfigs,","isFullCredit":false},{"lineNumber":537,"author":{"gitId":"-"},"content":" List\u003cGroupConfiguration\u003e groupConfigs) {","isFullCredit":false},{"lineNumber":538,"author":{"gitId":"-"},"content":" for (GroupConfiguration groupConfig : groupConfigs) {","isFullCredit":false},{"lineNumber":539,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e matchingRepoConfigs;","isFullCredit":false},{"lineNumber":540,"author":{"gitId":"-"},"content":" if (groupConfig.getLocation().isEmpty()) {","isFullCredit":false},{"lineNumber":541,"author":{"gitId":"-"},"content":" matchingRepoConfigs \u003d repoConfigs;","isFullCredit":false},{"lineNumber":542,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":543,"author":{"gitId":"-"},"content":" matchingRepoConfigs \u003d getMatchingRepoConfigsByLocation(repoConfigs,","isFullCredit":false},{"lineNumber":544,"author":{"gitId":"-"},"content":" groupConfig.getLocation());","isFullCredit":false},{"lineNumber":545,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":546,"author":{"gitId":"-"},"content":" if (matchingRepoConfigs.isEmpty()) {","isFullCredit":false},{"lineNumber":547,"author":{"gitId":"-"},"content":" logger.warning(String.format(","isFullCredit":false},{"lineNumber":548,"author":{"gitId":"-"},"content":" \"Repository %s is not found in repo-config.csv.\", groupConfig.getLocation()));","isFullCredit":false},{"lineNumber":549,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":550,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":551,"author":{"gitId":"-"},"content":" matchingRepoConfigs.forEach(matchingRepoConfig -\u003e {","isFullCredit":false},{"lineNumber":552,"author":{"gitId":"-"},"content":" matchingRepoConfig.addGroups(groupConfig.getGroupsList());","isFullCredit":false},{"lineNumber":553,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":554,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":555,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":556,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":557,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":558,"author":{"gitId":"-"},"content":" * Iterates through {@code repoConfigs} to find a {@link RepoConfiguration} with {@link RepoLocation} and branch","isFullCredit":false},{"lineNumber":559,"author":{"gitId":"-"},"content":" * that matches {@code authorConfig}. Returns {@code null} if no match is found.","isFullCredit":false},{"lineNumber":560,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":561,"author":{"gitId":"-"},"content":" private static RepoConfiguration getMatchingRepoConfig(List\u003cRepoConfiguration\u003e repoConfigs,","isFullCredit":false},{"lineNumber":562,"author":{"gitId":"-"},"content":" AuthorConfiguration authorConfig) {","isFullCredit":false},{"lineNumber":563,"author":{"gitId":"-"},"content":" if (authorConfig.isDefaultBranch()) {","isFullCredit":false},{"lineNumber":564,"author":{"gitId":"-"},"content":" return null;","isFullCredit":false},{"lineNumber":565,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":566,"author":{"gitId":"-"},"content":" for (RepoConfiguration repoConfig : repoConfigs) {","isFullCredit":false},{"lineNumber":567,"author":{"gitId":"-"},"content":" if (repoConfig.getLocation().equals(authorConfig.getLocation())","isFullCredit":false},{"lineNumber":568,"author":{"gitId":"-"},"content":" \u0026\u0026 repoConfig.getBranch().equals(authorConfig.getBranch())) {","isFullCredit":false},{"lineNumber":569,"author":{"gitId":"-"},"content":" return repoConfig;","isFullCredit":false},{"lineNumber":570,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":571,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":572,"author":{"gitId":"-"},"content":" return null;","isFullCredit":false},{"lineNumber":573,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":574,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":575,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":576,"author":{"gitId":"-"},"content":" * Returns a list of {@link RepoConfiguration} where the {@link RepoLocation} of a {@link RepoConfiguration}","isFullCredit":false},{"lineNumber":577,"author":{"gitId":"-"},"content":" * in the list of {@code configs} matches {@code targetRepoLocation}.","isFullCredit":false},{"lineNumber":578,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":579,"author":{"gitId":"-"},"content":" private static List\u003cRepoConfiguration\u003e getMatchingRepoConfigsByLocation(List\u003cRepoConfiguration\u003e configs,","isFullCredit":false},{"lineNumber":580,"author":{"gitId":"-"},"content":" RepoLocation targetRepoLocation) {","isFullCredit":false},{"lineNumber":581,"author":{"gitId":"-"},"content":" return configs.stream().filter(config -\u003e config.getLocation().equals(targetRepoLocation))","isFullCredit":false},{"lineNumber":582,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":583,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":584,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":585,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":586,"author":{"gitId":"-"},"content":" * Sets {@code formats} to {@link RepoConfiguration} in {@code configs} if its format list is empty.","isFullCredit":false},{"lineNumber":587,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":588,"author":{"gitId":"-"},"content":" public static void setFormatsToRepoConfigs(List\u003cRepoConfiguration\u003e configs, List\u003cFileType\u003e formats) {","isFullCredit":false},{"lineNumber":589,"author":{"gitId":"-"},"content":" for (RepoConfiguration config : configs) {","isFullCredit":false},{"lineNumber":590,"author":{"gitId":"-"},"content":" if (!config.fileTypeManager.hasSpecifiedFormats()) {","isFullCredit":false},{"lineNumber":591,"author":{"gitId":"-"},"content":" config.fileTypeManager.setFormats(formats);","isFullCredit":false},{"lineNumber":592,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":593,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":594,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":595,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":596,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":597,"author":{"gitId":"-"},"content":" * Sets each {@link RepoConfiguration} in {@code configs} to ignore its standalone config, if","isFullCredit":false},{"lineNumber":598,"author":{"gitId":"-"},"content":" * {@code ignoreAllStandaloneConfigs} is true.","isFullCredit":false},{"lineNumber":599,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":600,"author":{"gitId":"-"},"content":" public static void setStandaloneConfigIgnoredToRepoConfigs(List\u003cRepoConfiguration\u003e configs,","isFullCredit":false},{"lineNumber":601,"author":{"gitId":"-"},"content":" boolean ignoreAllStandaloneConfigs) {","isFullCredit":false},{"lineNumber":602,"author":{"gitId":"-"},"content":" if (ignoreAllStandaloneConfigs) {","isFullCredit":false},{"lineNumber":603,"author":{"gitId":"-"},"content":" configs.forEach(config -\u003e config.setStandaloneConfigIgnored(true));","isFullCredit":false},{"lineNumber":604,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":605,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":606,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":607,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":608,"author":{"gitId":"-"},"content":" * Sets each {@link RepoConfiguration} in {@code configs} to ignore its filesize limit, if","isFullCredit":false},{"lineNumber":609,"author":{"gitId":"-"},"content":" * {@code ignoreFilesizeLimit} is true.","isFullCredit":false},{"lineNumber":610,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":611,"author":{"gitId":"-"},"content":" public static void setFileSizeLimitIgnoredToRepoConfigs(List\u003cRepoConfiguration\u003e configs,","isFullCredit":false},{"lineNumber":612,"author":{"gitId":"-"},"content":" boolean ignoreFileSizeLimit) {","isFullCredit":false},{"lineNumber":613,"author":{"gitId":"-"},"content":" if (ignoreFileSizeLimit) {","isFullCredit":false},{"lineNumber":614,"author":{"gitId":"-"},"content":" configs.forEach(config -\u003e config.setFileSizeLimitIgnored(true));","isFullCredit":false},{"lineNumber":615,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":616,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":617,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":618,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":619,"author":{"gitId":"-"},"content":" * Checks if any of the {@code configs} is finding previous authors for commit analysis.","isFullCredit":false},{"lineNumber":620,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":621,"author":{"gitId":"-"},"content":" public static boolean isAnyRepoFindingPreviousAuthors(List\u003cRepoConfiguration\u003e configs) {","isFullCredit":false},{"lineNumber":622,"author":{"gitId":"-"},"content":" return configs.stream().anyMatch(RepoConfiguration::isFindingPreviousAuthorsPerformed);","isFullCredit":false},{"lineNumber":623,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":624,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":625,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":626,"author":{"gitId":"-"},"content":" * Clears existing information related to this repository and its authors, and replaces it with information from","isFullCredit":false},{"lineNumber":627,"author":{"gitId":"-"},"content":" * {@code standaloneConfig}.","isFullCredit":false},{"lineNumber":628,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":629,"author":{"gitId":"-"},"content":" public void update(StandaloneConfig standaloneConfig) {","isFullCredit":false},{"lineNumber":630,"author":{"gitId":"-"},"content":" // only assign the new values when all the fields in {@code standaloneConfig} pass the validations.","isFullCredit":false},{"lineNumber":631,"author":{"gitId":"-"},"content":" List\u003cFileType\u003e replacementFileTypes \u003d FileType.convertFormatStringsToFileTypes(standaloneConfig.getFormats());","isFullCredit":false},{"lineNumber":632,"author":{"gitId":"-"},"content":" CommitHash.validateCommits(standaloneConfig.getIgnoreCommitList());","isFullCredit":false},{"lineNumber":633,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":634,"author":{"gitId":"-"},"content":" if (!isIgnoreGlobListOverriding) {","isFullCredit":false},{"lineNumber":635,"author":{"gitId":"-"},"content":" ignoreGlobList \u003d standaloneConfig.getIgnoreGlobList();","isFullCredit":false},{"lineNumber":636,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":637,"author":{"gitId":"-"},"content":" if (!isFormatsOverriding) {","isFullCredit":false},{"lineNumber":638,"author":{"gitId":"-"},"content":" fileTypeManager.setFormats(replacementFileTypes);","isFullCredit":false},{"lineNumber":639,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":640,"author":{"gitId":"-"},"content":" if (!isIgnoreCommitListOverriding) {","isFullCredit":false},{"lineNumber":641,"author":{"gitId":"-"},"content":" ignoreCommitList \u003d CommitHash.convertStringsToCommits(standaloneConfig.getIgnoreCommitList());","isFullCredit":false},{"lineNumber":642,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":643,"author":{"gitId":"-"},"content":" if (!isIgnoredAuthorsListOverriding) {","isFullCredit":false},{"lineNumber":644,"author":{"gitId":"-"},"content":" ignoredAuthorsList \u003d standaloneConfig.getIgnoreAuthorList();","isFullCredit":false},{"lineNumber":645,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":646,"author":{"gitId":"-"},"content":" if (!isFileSizeLimitOverriding) {","isFullCredit":false},{"lineNumber":647,"author":{"gitId":"-"},"content":" fileSizeLimit \u003d standaloneConfig.getFileSizeLimit();","isFullCredit":false},{"lineNumber":648,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":649,"author":{"gitId":"-"},"content":" authorConfig.update(standaloneConfig, ignoreGlobList);","isFullCredit":false},{"lineNumber":650,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":651,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":652,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":653,"author":{"gitId":"-"},"content":" * Returns the matching {@link Author} given a {@code name} and an {@code email}.","isFullCredit":false},{"lineNumber":654,"author":{"gitId":"-"},"content":" * If no matching {@link Author} is found, {@link Author#UNKNOWN_AUTHOR} is returned.","isFullCredit":false},{"lineNumber":655,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":656,"author":{"gitId":"-"},"content":" public Author getAuthor(String name, String email) {","isFullCredit":false},{"lineNumber":657,"author":{"gitId":"-"},"content":" return authorConfig.getAuthor(name, email);","isFullCredit":false},{"lineNumber":658,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":659,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":660,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":661,"author":{"gitId":"-"},"content":" * Updates branch with {@code currentBranch} if default branch is specified.","isFullCredit":false},{"lineNumber":662,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":663,"author":{"gitId":"-"},"content":" public void updateBranch(String currentBranch) {","isFullCredit":false},{"lineNumber":664,"author":{"gitId":"-"},"content":" if (branch.equals(DEFAULT_BRANCH)) {","isFullCredit":false},{"lineNumber":665,"author":{"gitId":"-"},"content":" setBranch(currentBranch);","isFullCredit":false},{"lineNumber":666,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":667,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":668,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":669,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":670,"author":{"gitId":"-"},"content":" * Gets the current branch and updates branch with current branch if default branch is specified.","isFullCredit":false},{"lineNumber":671,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":672,"author":{"gitId":"-"},"content":" * @throws GitBranchException if current branch cannot be retrieved.","isFullCredit":false},{"lineNumber":673,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":674,"author":{"gitId":"-"},"content":" public void updateBranch() throws GitBranchException {","isFullCredit":false},{"lineNumber":675,"author":{"gitId":"-"},"content":" if (branch.equals(DEFAULT_BRANCH)) {","isFullCredit":false},{"lineNumber":676,"author":{"gitId":"-"},"content":" String currentBranch \u003d GitBranch.getCurrentBranch(getRepoRoot());","isFullCredit":false},{"lineNumber":677,"author":{"gitId":"-"},"content":" setBranch(currentBranch);","isFullCredit":false},{"lineNumber":678,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":679,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":680,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":681,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":682,"author":{"gitId":"-"},"content":" * Gets the path to the root folder of the repository.","isFullCredit":false},{"lineNumber":683,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":684,"author":{"gitId":"-"},"content":" public String getRepoRoot() {","isFullCredit":false},{"lineNumber":685,"author":{"gitId":"-"},"content":" String path \u003d FileUtil.REPOS_ADDRESS + File.separator + getRepoFolderName() + File.separator;","isFullCredit":false},{"lineNumber":686,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":687,"author":{"gitId":"-"},"content":" if (!getRepoName().isEmpty()) {","isFullCredit":false},{"lineNumber":688,"author":{"gitId":"-"},"content":" if (!extraOutputFolderName.isEmpty()) {","isFullCredit":false},{"lineNumber":689,"author":{"gitId":"-"},"content":" path +\u003d extraOutputFolderName + File.separator;","isFullCredit":false},{"lineNumber":690,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":691,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":692,"author":{"gitId":"-"},"content":" path +\u003d getRepoName() + File.separator;","isFullCredit":false},{"lineNumber":693,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":694,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":695,"author":{"gitId":"-"},"content":" return path;","isFullCredit":false},{"lineNumber":696,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":697,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":698,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":699,"author":{"gitId":"-"},"content":" * Gets the name of the folder containing the cloned repository; the parent directory of the repo\u0027s root folder.","isFullCredit":false},{"lineNumber":700,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":701,"author":{"gitId":"-"},"content":" public String getRepoFolderName() {","isFullCredit":false},{"lineNumber":702,"author":{"gitId":"-"},"content":" return repoFolderName;","isFullCredit":false},{"lineNumber":703,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":704,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":705,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":706,"author":{"gitId":"-"},"content":" public boolean equals(Object other) {","isFullCredit":false},{"lineNumber":707,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":708,"author":{"gitId":"-"},"content":" if (other \u003d\u003d this) {","isFullCredit":false},{"lineNumber":709,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":710,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":711,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":712,"author":{"gitId":"-"},"content":" if (!(other instanceof RepoConfiguration)) {","isFullCredit":false},{"lineNumber":713,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":714,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":715,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":716,"author":{"gitId":"-"},"content":" RepoConfiguration otherRepoConfig \u003d (RepoConfiguration) other;","isFullCredit":false},{"lineNumber":717,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":718,"author":{"gitId":"-"},"content":" return location.equals(otherRepoConfig.location)","isFullCredit":false},{"lineNumber":719,"author":{"gitId":"-"},"content":" \u0026\u0026 branch.equals(otherRepoConfig.branch)","isFullCredit":false},{"lineNumber":720,"author":{"gitId":"-"},"content":" \u0026\u0026 authorConfig.equals(otherRepoConfig.authorConfig)","isFullCredit":false},{"lineNumber":721,"author":{"gitId":"-"},"content":" \u0026\u0026 ignoreGlobList.equals(otherRepoConfig.ignoreGlobList)","isFullCredit":false},{"lineNumber":722,"author":{"gitId":"-"},"content":" \u0026\u0026 ignoredAuthorsList.equals(otherRepoConfig.ignoredAuthorsList)","isFullCredit":false},{"lineNumber":723,"author":{"gitId":"-"},"content":" \u0026\u0026 fileSizeLimit \u003d\u003d otherRepoConfig.fileSizeLimit","isFullCredit":false},{"lineNumber":724,"author":{"gitId":"-"},"content":" \u0026\u0026 isStandaloneConfigIgnored \u003d\u003d otherRepoConfig.isStandaloneConfigIgnored","isFullCredit":false},{"lineNumber":725,"author":{"gitId":"-"},"content":" \u0026\u0026 fileTypeManager.equals(otherRepoConfig.fileTypeManager)","isFullCredit":false},{"lineNumber":726,"author":{"gitId":"-"},"content":" \u0026\u0026 isLastModifiedDateIncluded \u003d\u003d otherRepoConfig.isLastModifiedDateIncluded","isFullCredit":false},{"lineNumber":727,"author":{"gitId":"-"},"content":" \u0026\u0026 isFormatsOverriding \u003d\u003d otherRepoConfig.isFormatsOverriding","isFullCredit":false},{"lineNumber":728,"author":{"gitId":"-"},"content":" \u0026\u0026 isShallowCloningPerformed \u003d\u003d otherRepoConfig.isShallowCloningPerformed","isFullCredit":false},{"lineNumber":729,"author":{"gitId":"-"},"content":" \u0026\u0026 isIgnoreGlobListOverriding \u003d\u003d otherRepoConfig.isIgnoreGlobListOverriding","isFullCredit":false},{"lineNumber":730,"author":{"gitId":"-"},"content":" \u0026\u0026 isIgnoreCommitListOverriding \u003d\u003d otherRepoConfig.isIgnoreCommitListOverriding","isFullCredit":false},{"lineNumber":731,"author":{"gitId":"-"},"content":" \u0026\u0026 isIgnoredAuthorsListOverriding \u003d\u003d otherRepoConfig.isIgnoredAuthorsListOverriding","isFullCredit":false},{"lineNumber":732,"author":{"gitId":"-"},"content":" \u0026\u0026 isFileSizeLimitOverriding \u003d\u003d otherRepoConfig.isFileSizeLimitOverriding","isFullCredit":false},{"lineNumber":733,"author":{"gitId":"-"},"content":" \u0026\u0026 isFileSizeLimitIgnored \u003d\u003d otherRepoConfig.isFileSizeLimitIgnored","isFullCredit":false},{"lineNumber":734,"author":{"gitId":"-"},"content":" \u0026\u0026 isIgnoredFileAnalysisSkipped \u003d\u003d otherRepoConfig.isIgnoredFileAnalysisSkipped;","isFullCredit":false},{"lineNumber":735,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":736,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":737,"author":{"gitId":"-"},"content":" public Map\u003cAuthor, String\u003e getAuthorDisplayNameMap() {","isFullCredit":false},{"lineNumber":738,"author":{"gitId":"-"},"content":" return authorConfig.getAuthorDisplayNameMap();","isFullCredit":false},{"lineNumber":739,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":740,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":741,"author":{"gitId":"-"},"content":" public void setAuthorDisplayNameMap(Map\u003cAuthor, String\u003e authorDisplayNameMap) {","isFullCredit":false},{"lineNumber":742,"author":{"gitId":"-"},"content":" authorConfig.setAuthorDisplayNameMap(authorDisplayNameMap);","isFullCredit":false},{"lineNumber":743,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":744,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":745,"author":{"gitId":"-"},"content":" public String getBranch() {","isFullCredit":false},{"lineNumber":746,"author":{"gitId":"-"},"content":" return branch;","isFullCredit":false},{"lineNumber":747,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":748,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":749,"author":{"gitId":"-"},"content":" public void setBranch(String branch) {","isFullCredit":false},{"lineNumber":750,"author":{"gitId":"-"},"content":" updateDisplayName(branch);","isFullCredit":false},{"lineNumber":751,"author":{"gitId":"-"},"content":" updateOutputFolderName(branch);","isFullCredit":false},{"lineNumber":752,"author":{"gitId":"-"},"content":" this.branch \u003d branch;","isFullCredit":false},{"lineNumber":753,"author":{"gitId":"-"},"content":" authorConfig.setBranch(branch);","isFullCredit":false},{"lineNumber":754,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":755,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":756,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":757,"author":{"gitId":"-"},"content":" * Updates the branch in the {@code displayName} to the current {@code branch}.","isFullCredit":false},{"lineNumber":758,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":759,"author":{"gitId":"-"},"content":" public void updateDisplayName(String branch) {","isFullCredit":false},{"lineNumber":760,"author":{"gitId":"-"},"content":" this.displayName \u003d displayName.substring(0, displayName.lastIndexOf(\u0027[\u0027) + 1) + branch + \"]\";","isFullCredit":false},{"lineNumber":761,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":762,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":763,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":764,"author":{"gitId":"-"},"content":" * Updates the branch in the {@code outputFolderName} to the current {@code branch}.","isFullCredit":false},{"lineNumber":765,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":766,"author":{"gitId":"-"},"content":" public void updateOutputFolderName(String branch) {","isFullCredit":false},{"lineNumber":767,"author":{"gitId":"-"},"content":" this.outputFolderName \u003d outputFolderName.substring(0, outputFolderName.lastIndexOf(\u0027_\u0027) + 1) + branch;","isFullCredit":false},{"lineNumber":768,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":769,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":770,"author":{"gitId":"-"},"content":" public List\u003cString\u003e getIgnoreGlobList() {","isFullCredit":false},{"lineNumber":771,"author":{"gitId":"-"},"content":" return ignoreGlobList;","isFullCredit":false},{"lineNumber":772,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":773,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":774,"author":{"gitId":"-"},"content":" public void setIgnoreGlobList(List\u003cString\u003e ignoreGlobList) {","isFullCredit":false},{"lineNumber":775,"author":{"gitId":"-"},"content":" this.ignoreGlobList \u003d ignoreGlobList;","isFullCredit":false},{"lineNumber":776,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":777,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":778,"author":{"gitId":"-"},"content":" public List\u003cCommitHash\u003e getIgnoreCommitList() {","isFullCredit":false},{"lineNumber":779,"author":{"gitId":"-"},"content":" return ignoreCommitList;","isFullCredit":false},{"lineNumber":780,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":781,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":782,"author":{"gitId":"-"},"content":" public long getFileSizeLimit() {","isFullCredit":false},{"lineNumber":783,"author":{"gitId":"-"},"content":" return fileSizeLimit;","isFullCredit":false},{"lineNumber":784,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":785,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":786,"author":{"gitId":"-"},"content":" public void setIgnoreCommitList(List\u003cCommitHash\u003e ignoreCommitList) {","isFullCredit":false},{"lineNumber":787,"author":{"gitId":"-"},"content":" this.ignoreCommitList \u003d ignoreCommitList;","isFullCredit":false},{"lineNumber":788,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":789,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":790,"author":{"gitId":"-"},"content":" public List\u003cString\u003e getIgnoredAuthorsList() {","isFullCredit":false},{"lineNumber":791,"author":{"gitId":"-"},"content":" return this.ignoredAuthorsList;","isFullCredit":false},{"lineNumber":792,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":793,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":794,"author":{"gitId":"-"},"content":" public void setIgnoredAuthorsList(List\u003cString\u003e ignoredAuthorsList) {","isFullCredit":false},{"lineNumber":795,"author":{"gitId":"-"},"content":" this.ignoredAuthorsList \u003d ignoredAuthorsList;","isFullCredit":false},{"lineNumber":796,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":797,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":798,"author":{"gitId":"-"},"content":" public boolean isIgnoredAuthorsListOverriding() {","isFullCredit":false},{"lineNumber":799,"author":{"gitId":"-"},"content":" return this.isIgnoredAuthorsListOverriding;","isFullCredit":false},{"lineNumber":800,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":801,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":802,"author":{"gitId":"-"},"content":" public void setIsLastModifiedDateIncluded(boolean lastModifiedDateIncluded) {","isFullCredit":false},{"lineNumber":803,"author":{"gitId":"-"},"content":" this.isLastModifiedDateIncluded \u003d lastModifiedDateIncluded;","isFullCredit":false},{"lineNumber":804,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":805,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":806,"author":{"gitId":"-"},"content":" public void setIsShallowCloningPerformed(boolean isShallowCloningPerformed) {","isFullCredit":false},{"lineNumber":807,"author":{"gitId":"-"},"content":" this.isShallowCloningPerformed \u003d isShallowCloningPerformed;","isFullCredit":false},{"lineNumber":808,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":809,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":810,"author":{"gitId":"-"},"content":" public void setIsFindingPreviousAuthorsPerformed(boolean isFindingPreviousAuthorsPerformed) {","isFullCredit":false},{"lineNumber":811,"author":{"gitId":"-"},"content":" this.isFindingPreviousAuthorsPerformed \u003d isFindingPreviousAuthorsPerformed;","isFullCredit":false},{"lineNumber":812,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":813,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":814,"author":{"gitId":"-"},"content":" public boolean isLastModifiedDateIncluded() {","isFullCredit":false},{"lineNumber":815,"author":{"gitId":"-"},"content":" return this.isLastModifiedDateIncluded;","isFullCredit":false},{"lineNumber":816,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":817,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":818,"author":{"gitId":"-"},"content":" public boolean isShallowCloningPerformed() {","isFullCredit":false},{"lineNumber":819,"author":{"gitId":"-"},"content":" return this.isShallowCloningPerformed;","isFullCredit":false},{"lineNumber":820,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":821,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":822,"author":{"gitId":"-"},"content":" public void setIsIgnoredAuthorsListOverriding(boolean isIgnoredAuthorsListOverriding) {","isFullCredit":false},{"lineNumber":823,"author":{"gitId":"-"},"content":" this.isIgnoredAuthorsListOverriding \u003d isIgnoredAuthorsListOverriding;","isFullCredit":false},{"lineNumber":824,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":825,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":826,"author":{"gitId":"-"},"content":" public void removeIgnoredAuthors() {","isFullCredit":false},{"lineNumber":827,"author":{"gitId":"-"},"content":" authorConfig.removeIgnoredAuthors(ignoredAuthorsList);","isFullCredit":false},{"lineNumber":828,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":829,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":830,"author":{"gitId":"-"},"content":" public List\u003cAuthor\u003e getAuthorList() {","isFullCredit":false},{"lineNumber":831,"author":{"gitId":"-"},"content":" return authorConfig.getAuthorList();","isFullCredit":false},{"lineNumber":832,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":833,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":834,"author":{"gitId":"-"},"content":" public void addAuthor(Author author) {","isFullCredit":false},{"lineNumber":835,"author":{"gitId":"-"},"content":" authorConfig.addAuthor(author, this.getIgnoreGlobList());","isFullCredit":false},{"lineNumber":836,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":837,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":838,"author":{"gitId":"-"},"content":" public void addAuthors(List\u003cAuthor\u003e authorList) {","isFullCredit":false},{"lineNumber":839,"author":{"gitId":"-"},"content":" authorConfig.addAuthors(authorList, this.getIgnoreGlobList());","isFullCredit":false},{"lineNumber":840,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":841,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":842,"author":{"gitId":"-"},"content":" public void setAuthorConfiguration(AuthorConfiguration authorConfig) {","isFullCredit":false},{"lineNumber":843,"author":{"gitId":"-"},"content":" this.authorConfig \u003d authorConfig;","isFullCredit":false},{"lineNumber":844,"author":{"gitId":"-"},"content":" for (Author author : authorConfig.getAuthorList()) {","isFullCredit":false},{"lineNumber":845,"author":{"gitId":"-"},"content":" AuthorConfiguration.propagateIgnoreGlobList(author, ignoreGlobList);","isFullCredit":false},{"lineNumber":846,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":847,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":848,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":849,"author":{"gitId":"-"},"content":" public boolean containsAuthor(Author author) {","isFullCredit":false},{"lineNumber":850,"author":{"gitId":"-"},"content":" return authorConfig.containsAuthor(author);","isFullCredit":false},{"lineNumber":851,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":852,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":853,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":854,"author":{"gitId":"-"},"content":" * Clears authors information and sets the {@code authorList} to {@link RepoConfiguration}.","isFullCredit":false},{"lineNumber":855,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":856,"author":{"gitId":"-"},"content":" public void setAuthorList(List\u003cAuthor\u003e authorList) {","isFullCredit":false},{"lineNumber":857,"author":{"gitId":"-"},"content":" authorConfig.clear();","isFullCredit":false},{"lineNumber":858,"author":{"gitId":"-"},"content":" authorConfig.setAuthorList(authorList);","isFullCredit":false},{"lineNumber":859,"author":{"gitId":"-"},"content":" authorConfig.buildFromAuthorList();","isFullCredit":false},{"lineNumber":860,"author":{"gitId":"-"},"content":" authorList.forEach(author -\u003e AuthorConfiguration.propagateIgnoreGlobList(author, this.getIgnoreGlobList()));","isFullCredit":false},{"lineNumber":861,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":862,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":863,"author":{"gitId":"-"},"content":" public void setHasAuthorConfigFile(boolean hasAuthorConfigFile) {","isFullCredit":false},{"lineNumber":864,"author":{"gitId":"-"},"content":" authorConfig.setHasAuthorConfigFile(hasAuthorConfigFile);","isFullCredit":false},{"lineNumber":865,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":866,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":867,"author":{"gitId":"-"},"content":" public Map\u003cString, Author\u003e getAuthorNamesToAuthorMap() {","isFullCredit":false},{"lineNumber":868,"author":{"gitId":"-"},"content":" return authorConfig.getAuthorNamesToAuthorMap();","isFullCredit":false},{"lineNumber":869,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":870,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":871,"author":{"gitId":"-"},"content":" public void setAuthorNamesToAuthorMap(Map\u003cString, Author\u003e authorNamesToAuthorMap) {","isFullCredit":false},{"lineNumber":872,"author":{"gitId":"-"},"content":" authorConfig.setAuthorNamesToAuthorMap(authorNamesToAuthorMap);","isFullCredit":false},{"lineNumber":873,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":874,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":875,"author":{"gitId":"-"},"content":" public Map\u003cString, Author\u003e getAuthorEmailsToAuthorMap() {","isFullCredit":false},{"lineNumber":876,"author":{"gitId":"-"},"content":" return authorConfig.getAuthorEmailsToAuthorMap();","isFullCredit":false},{"lineNumber":877,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":878,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":879,"author":{"gitId":"-"},"content":" public void setAuthorEmailsToAuthorMap(Map\u003cString, Author\u003e authorEmailsToAuthorMap) {","isFullCredit":false},{"lineNumber":880,"author":{"gitId":"-"},"content":" authorConfig.setAuthorEmailsToAuthorMap(authorEmailsToAuthorMap);","isFullCredit":false},{"lineNumber":881,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":882,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":883,"author":{"gitId":"-"},"content":" public void clearAuthorDetailsToAuthorMap() {","isFullCredit":false},{"lineNumber":884,"author":{"gitId":"-"},"content":" authorConfig.clearAuthorDetailsToAuthorMap();","isFullCredit":false},{"lineNumber":885,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":886,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":887,"author":{"gitId":"-"},"content":" public void setFormats(List\u003cFileType\u003e formats) {","isFullCredit":false},{"lineNumber":888,"author":{"gitId":"-"},"content":" fileTypeManager.setFormats(formats);","isFullCredit":false},{"lineNumber":889,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":890,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":891,"author":{"gitId":"-"},"content":" private void setGroups(List\u003cFileType\u003e groups) {","isFullCredit":false},{"lineNumber":892,"author":{"gitId":"-"},"content":" fileTypeManager.setGroups(groups);","isFullCredit":false},{"lineNumber":893,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":894,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":895,"author":{"gitId":"-"},"content":" public void addGroups(List\u003cFileType\u003e groups) {","isFullCredit":false},{"lineNumber":896,"author":{"gitId":"-"},"content":" fileTypeManager.addGroups(groups);","isFullCredit":false},{"lineNumber":897,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":898,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":899,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":900,"author":{"gitId":"-"},"content":" * Returns all format or group types (depending on whether the user has specified a custom grouping).","isFullCredit":false},{"lineNumber":901,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":902,"author":{"gitId":"-"},"content":" public List\u003cFileType\u003e getAllFileTypes() {","isFullCredit":false},{"lineNumber":903,"author":{"gitId":"-"},"content":" return fileTypeManager.getAllFileTypes();","isFullCredit":false},{"lineNumber":904,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":905,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":906,"author":{"gitId":"-"},"content":" public FileType getFileType(String fileName) {","isFullCredit":false},{"lineNumber":907,"author":{"gitId":"-"},"content":" return fileTypeManager.getFileType(fileName);","isFullCredit":false},{"lineNumber":908,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":909,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":910,"author":{"gitId":"-"},"content":" public FileTypeManager getFileTypeManager() {","isFullCredit":false},{"lineNumber":911,"author":{"gitId":"-"},"content":" return fileTypeManager;","isFullCredit":false},{"lineNumber":912,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":913,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":914,"author":{"gitId":"-"},"content":" public LocalDateTime getSinceDate() {","isFullCredit":false},{"lineNumber":915,"author":{"gitId":"-"},"content":" return sinceDate;","isFullCredit":false},{"lineNumber":916,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":917,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":918,"author":{"gitId":"-"},"content":" public void setSinceDate(LocalDateTime sinceDate) {","isFullCredit":false},{"lineNumber":919,"author":{"gitId":"-"},"content":" this.sinceDate \u003d sinceDate;","isFullCredit":false},{"lineNumber":920,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":921,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":922,"author":{"gitId":"-"},"content":" public LocalDateTime getUntilDate() {","isFullCredit":false},{"lineNumber":923,"author":{"gitId":"-"},"content":" return untilDate;","isFullCredit":false},{"lineNumber":924,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":925,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":926,"author":{"gitId":"-"},"content":" public void setUntilDate(LocalDateTime untilDate) {","isFullCredit":false},{"lineNumber":927,"author":{"gitId":"-"},"content":" this.untilDate \u003d untilDate;","isFullCredit":false},{"lineNumber":928,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":929,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":930,"author":{"gitId":"-"},"content":" public ZoneId getZoneId() {","isFullCredit":false},{"lineNumber":931,"author":{"gitId":"-"},"content":" return zoneId;","isFullCredit":false},{"lineNumber":932,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":933,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":934,"author":{"gitId":"-"},"content":" public void setZoneId(ZoneId zoneId) {","isFullCredit":false},{"lineNumber":935,"author":{"gitId":"-"},"content":" this.zoneId \u003d zoneId;","isFullCredit":false},{"lineNumber":936,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":937,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":938,"author":{"gitId":"-"},"content":" public void setAuthorDisplayName(Author author, String displayName) {","isFullCredit":false},{"lineNumber":939,"author":{"gitId":"-"},"content":" authorConfig.setAuthorDisplayName(author, displayName);","isFullCredit":false},{"lineNumber":940,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":941,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":942,"author":{"gitId":"-"},"content":" public void addAuthorNamesToAuthorMapEntry(Author author, String name) {","isFullCredit":false},{"lineNumber":943,"author":{"gitId":"-"},"content":" authorConfig.addAuthorNamesToAuthorMapEntry(author, name);","isFullCredit":false},{"lineNumber":944,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":945,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":946,"author":{"gitId":"-"},"content":" public void addAuthorNamesToAuthorMapEntry(Author author, List\u003cString\u003e names) {","isFullCredit":false},{"lineNumber":947,"author":{"gitId":"-"},"content":" authorConfig.addAuthorNamesToAuthorMapEntry(author, names);","isFullCredit":false},{"lineNumber":948,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":949,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":950,"author":{"gitId":"-"},"content":" public void addAuthorEmailsToAuthorMapEntry(Author author, List\u003cString\u003e emails) {","isFullCredit":false},{"lineNumber":951,"author":{"gitId":"-"},"content":" authorConfig.addAuthorEmailsToAuthorMapEntry(author, emails);","isFullCredit":false},{"lineNumber":952,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":953,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":954,"author":{"gitId":"-"},"content":" public String getDisplayName() {","isFullCredit":false},{"lineNumber":955,"author":{"gitId":"-"},"content":" return displayName;","isFullCredit":false},{"lineNumber":956,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":957,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":958,"author":{"gitId":"-"},"content":" public String getRepoName() {","isFullCredit":false},{"lineNumber":959,"author":{"gitId":"-"},"content":" return location.getRepoName();","isFullCredit":false},{"lineNumber":960,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":961,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":962,"author":{"gitId":"-"},"content":" public String getOutputFolderName() {","isFullCredit":false},{"lineNumber":963,"author":{"gitId":"-"},"content":" return outputFolderName;","isFullCredit":false},{"lineNumber":964,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":965,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":966,"author":{"gitId":"-"},"content":" public void setStandaloneConfigIgnored(boolean isStandaloneConfigIgnored) {","isFullCredit":false},{"lineNumber":967,"author":{"gitId":"-"},"content":" this.isStandaloneConfigIgnored \u003d isStandaloneConfigIgnored;","isFullCredit":false},{"lineNumber":968,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":969,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":970,"author":{"gitId":"-"},"content":" public void setFileSizeLimitIgnored(boolean isFileSizeLimitIgnored) {","isFullCredit":false},{"lineNumber":971,"author":{"gitId":"-"},"content":" this.isFileSizeLimitIgnored \u003d isFileSizeLimitIgnored;","isFullCredit":false},{"lineNumber":972,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":973,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":974,"author":{"gitId":"-"},"content":" public RepoLocation getLocation() {","isFullCredit":false},{"lineNumber":975,"author":{"gitId":"-"},"content":" return location;","isFullCredit":false},{"lineNumber":976,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":977,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":978,"author":{"gitId":"-"},"content":" public String getOrganization() {","isFullCredit":false},{"lineNumber":979,"author":{"gitId":"-"},"content":" return location.getOrganization();","isFullCredit":false},{"lineNumber":980,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":981,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":982,"author":{"gitId":"-"},"content":" public boolean isStandaloneConfigIgnored() {","isFullCredit":false},{"lineNumber":983,"author":{"gitId":"-"},"content":" return isStandaloneConfigIgnored;","isFullCredit":false},{"lineNumber":984,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":985,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":986,"author":{"gitId":"-"},"content":" public boolean isFileSizeLimitIgnored() {","isFullCredit":false},{"lineNumber":987,"author":{"gitId":"-"},"content":" return isFileSizeLimitIgnored;","isFullCredit":false},{"lineNumber":988,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":989,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":990,"author":{"gitId":"-"},"content":" public boolean isIgnoredFileAnalysisSkipped() {","isFullCredit":false},{"lineNumber":991,"author":{"gitId":"-"},"content":" return isIgnoredFileAnalysisSkipped;","isFullCredit":false},{"lineNumber":992,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":993,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":994,"author":{"gitId":"-"},"content":" public boolean isFormatsOverriding() {","isFullCredit":false},{"lineNumber":995,"author":{"gitId":"-"},"content":" return isFormatsOverriding;","isFullCredit":false},{"lineNumber":996,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":997,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":998,"author":{"gitId":"-"},"content":" public boolean isIgnoreGlobListOverriding() {","isFullCredit":false},{"lineNumber":999,"author":{"gitId":"-"},"content":" return isIgnoreGlobListOverriding;","isFullCredit":false},{"lineNumber":1000,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1001,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":1002,"author":{"gitId":"-"},"content":" public boolean isIgnoreCommitListOverriding() {","isFullCredit":false},{"lineNumber":1003,"author":{"gitId":"-"},"content":" return isIgnoreCommitListOverriding;","isFullCredit":false},{"lineNumber":1004,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1005,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":1006,"author":{"gitId":"-"},"content":" public boolean isFileSizeLimitOverriding() {","isFullCredit":false},{"lineNumber":1007,"author":{"gitId":"-"},"content":" return isFileSizeLimitOverriding;","isFullCredit":false},{"lineNumber":1008,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1009,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":1010,"author":{"gitId":"-"},"content":" public boolean isFindingPreviousAuthorsPerformed() {","isFullCredit":false},{"lineNumber":1011,"author":{"gitId":"-"},"content":" return isFindingPreviousAuthorsPerformed;","isFullCredit":false},{"lineNumber":1012,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1013,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":1014,"author":{"gitId":"-"},"content":" public AuthorConfiguration getAuthorConfig() {","isFullCredit":false},{"lineNumber":1015,"author":{"gitId":"-"},"content":" return authorConfig;","isFullCredit":false},{"lineNumber":1016,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":1017,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":400,"-":617}},{"path":"src/main/java/reposense/model/RepoLocation.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.util.FileUtil.isValidPath;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.net.URI;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.net.URISyntaxException;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.FileSystems;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.regex.Matcher;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.git.GitRemote;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidLocationException;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import reposense.report.ErrorSummary;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.util.SystemUtil;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" * Represents a repository location.","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"public class RepoLocation {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" protected static final String UNSUPPORTED_DOMAIN_NAME \u003d \"NOT_RECOGNIZED\";","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final String MESSAGE_INVALID_LOCATION \u003d \"%s is an invalid location.\";","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final String MESSAGE_INVALID_REMOTE_URL \u003d \"%s is an invalid remote URL.\";","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private static final String REPO_NAME_REGEX \u003d \"(?\u003crepoName\u003e[^/]+?)(/?\\\\.git)?/?\";","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" private static final String PATH_TO_REPO_REGEX \u003d \"(?\u003cpath\u003e.*?)/?\" + REPO_NAME_REGEX;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private static final Pattern GIT_REPOSITORY_LOCATION_PATTERN \u003d","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" Pattern.compile(\"^(ssh|git|https?|ftps?)://(?\u003cdomain\u003e[^/]*?)/\" + PATH_TO_REPO_REGEX + \"$\");","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" private static final Pattern SCP_LIKE_SSH_REPOSITORY_LOCATION_PATTERN \u003d","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" Pattern.compile(\"^(.*@)?(?\u003cdomain\u003e.*?):(?\u003cpath\u003e[^/].*?)??/??\" + REPO_NAME_REGEX + \"$\");","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private static final Pattern LOCAL_REPOSITORY_NON_WINDOWS_LOCATION_PATTERN \u003d","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" Pattern.compile(\"^(file://)?\" + PATH_TO_REPO_REGEX + \"$\");","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private static final Pattern LOCAL_REPOSITORY_WINDOWS_LOCATION_PATTERN \u003d","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" Pattern.compile(\"^\" + PATH_TO_REPO_REGEX.replaceAll(\"/\", \"\\\\\\\\\\\\\\\\\") + \"$\");","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" private static final Pattern DOMAIN_NAME_PATTERN \u003d Pattern.compile(\"^(ww.\\\\.)?+(.*@)?(?\u003cdomainName\u003e[^.]+)\\\\..+$\");","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" private static final String GROUP_REPO_NAME \u003d \"repoName\";","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" private static final String GROUP_PATH \u003d \"path\";","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" private static final String GROUP_DOMAIN_NAME \u003d \"domainName\";","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" private static final String GROUP_DOMAIN \u003d \"domain\";","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" private static final String PATH_SEPARATOR_REPLACEMENT \u003d \"-\";","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" // Used for remote link generation (serialized)","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" private final String location;","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" private final String repoName;","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" private final String organization;","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" private final String domainName;","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" // Used for generation of local repository report output directory","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" private final transient String outputFolderRepoName;","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" private final transient String outputFolderOrganization;","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" * Creates {@link RepoLocation} based on the {@code location}, which is represented by a {@code URL}","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" * or {@link Path}.","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" * @throws InvalidLocationException if {@code location} cannot be represented by a {@code URL} or {@link Path}.","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" public RepoLocation(String location) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" if (SystemUtil.isWindows()) {","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" location \u003d StringsUtil.removeTrailingBackslash(location);","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" this.location \u003d location;","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" String[] remoteRepoNameAndOrg;","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" String[] outputFolderRepoNameAndOrg;","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" if (location.isEmpty()) {","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" remoteRepoNameAndOrg \u003d new String[] {\"\", \"\", UNSUPPORTED_DOMAIN_NAME};","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" outputFolderRepoNameAndOrg \u003d remoteRepoNameAndOrg;","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" } else if (isLocalRepo(location)) {","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" outputFolderRepoNameAndOrg \u003d getLocalRepoNameAndOrg(location);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" Map\u003cString, String\u003e remotes \u003d GitRemote.getRemotes(location);","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" String newLocation \u003d GitRemote.getAvailableRemoteLocation(remotes).orElse(location);","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" remoteRepoNameAndOrg \u003d remotes.size() \u003d\u003d 0","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" ? outputFolderRepoNameAndOrg","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" : getRemoteRepoNameAndOrg(newLocation);","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" remoteRepoNameAndOrg \u003d getRemoteRepoNameAndOrg(location);","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" outputFolderRepoNameAndOrg \u003d remoteRepoNameAndOrg;","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" this.repoName \u003d remoteRepoNameAndOrg[0];","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" this.organization \u003d remoteRepoNameAndOrg[1];","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" this.domainName \u003d remoteRepoNameAndOrg[2];","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" this.outputFolderRepoName \u003d outputFolderRepoNameAndOrg[0];","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" this.outputFolderOrganization \u003d outputFolderRepoNameAndOrg[1];","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" public boolean isEmpty() {","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" return location.isEmpty();","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" public String getRepoName() {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" return outputFolderRepoName;","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" public String getOrganization() {","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" return outputFolderOrganization;","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" public String getDomainName() {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" return domainName;","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" * Returns true if {@code repoArgument} is a valid local repository argument.","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" * This implementation follows directly from the {@code git clone}","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" * \u003ca href\u003d\"https://git-scm.com/docs/git-clone#_git_urls\"\u003especification\u003c/a\u003e.","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" public static boolean isLocalRepo(String repoArgument) {","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" if (!repoArgument.contains(\":\")) {","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" boolean hasSlashBeforeFirstColon \u003d repoArgument.split(\":\", 2)[0].contains(\"/\");","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" if (hasSlashBeforeFirstColon) {","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" // checks if it is a URL file protocol","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" String urlProtocol \u003d repoArgument.split(\"://\", 2)[0];","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" if (urlProtocol.equals(\"file\")) {","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" // catch disk drive arguments such as C:\\","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" if (SystemUtil.isWindows() \u0026\u0026 isValidPath(repoArgument)) {","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" * Returns a best-guess repo name and organization from the given local repo {@code location}.","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" * The return is a length-3 string array with the repo name at index 0, organization at index 1","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" * and domain name (unsupported domain) at index 2.","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" * @throws InvalidLocationException if the location specified is not a proper local repository.","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" private String[] getLocalRepoNameAndOrg(String location) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" boolean isWindows \u003d SystemUtil.isWindows();","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" if (isWindows) {","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" location \u003d location.replaceAll(\"file://\", \"\");","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" location \u003d location.replaceAll(\"/\", \"\\\\\\\\\");","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" location \u003d location.replaceAll(\"[|:]\", \"-\");","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" Pattern localRepoPattern \u003d isWindows","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" ? LOCAL_REPOSITORY_WINDOWS_LOCATION_PATTERN","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" : LOCAL_REPOSITORY_NON_WINDOWS_LOCATION_PATTERN;","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" Matcher localRepoMatcher \u003d localRepoPattern.matcher(location);","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" if (!localRepoMatcher.matches()) {","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" ErrorSummary.getInstance().addErrorMessage(location,","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" String.format(MESSAGE_INVALID_LOCATION, location));","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" throw new InvalidLocationException(String.format(MESSAGE_INVALID_LOCATION, location));","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" String tempRepoName \u003d localRepoMatcher.group(GROUP_REPO_NAME);","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" String tempOrganization \u003d getOrganizationFromMatcher(localRepoMatcher);","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" return new String[] {tempRepoName, tempOrganization, UNSUPPORTED_DOMAIN_NAME};","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" * Returns a best-guess repo name, organization and domain name from the given remote repo","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" * {@code location}. The return is a length-3 string array with the repo name at index 0,","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" * organization at index 1 and domain name at index 2.","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" * @throws InvalidLocationException if the location specified is not a proper remote repository.","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" private String[] getRemoteRepoNameAndOrg(String location) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" Matcher remoteRepoMatcher \u003d GIT_REPOSITORY_LOCATION_PATTERN.matcher(location);","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" Matcher sshRepoMatcher \u003d SCP_LIKE_SSH_REPOSITORY_LOCATION_PATTERN.matcher(location);","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" boolean isNormalUrl \u003d remoteRepoMatcher.matches();","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" if (isNormalUrl) {","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" new URI(location);","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" } catch (URISyntaxException e) {","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" ErrorSummary.getInstance().addErrorMessage(location,","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" String.format(MESSAGE_INVALID_REMOTE_URL, location));","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" throw new InvalidLocationException(String.format(MESSAGE_INVALID_REMOTE_URL, location));","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" boolean isValidRemoteRepoUrl \u003d remoteRepoMatcher.matches() || sshRepoMatcher.matches();","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" if (!isValidRemoteRepoUrl) {","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" ErrorSummary.getInstance().addErrorMessage(location,","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" String.format(MESSAGE_INVALID_REMOTE_URL, location));","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" throw new InvalidLocationException(String.format(MESSAGE_INVALID_REMOTE_URL, location));","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" // priority for standard URL matches over SSH as SSH matcher will normally also match standard URL","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" Matcher actualMatcher \u003d remoteRepoMatcher.matches() ? remoteRepoMatcher : sshRepoMatcher;","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" String tempRepoName \u003d actualMatcher.group(GROUP_REPO_NAME);","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" String tempOrganization \u003d getOrganizationFromMatcher(actualMatcher);","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" return new String[] {tempRepoName, tempOrganization,","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" getDomainNameFromDomain(actualMatcher.group(GROUP_DOMAIN))};","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" * Returns the organization string from the {@code matcher} if one exists.","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" * If no match was found for it, returns an empty string instead.","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" private static String getOrganizationFromMatcher(Matcher matcher) {","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" return Optional.ofNullable(matcher.group(GROUP_PATH))","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" .map(s -\u003e Paths.get(s).normalize().toString())","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" .map(s -\u003e s.replaceAll(Pattern.quote(FileSystems.getDefault().getSeparator()),","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" PATH_SEPARATOR_REPLACEMENT))","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" .orElse(\"\");","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" * Returns the domain name of the URL from the {@code matcher} if it is one of the recognised ones.","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" * Returns {@code UNRECOGNISED_DOMAIN_NAME} if it is a local repo or not recognised.","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" * @throws InvalidLocationException if the domain specified is not a proper domain name.","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" public static String getDomainNameFromDomain(String domain) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" Matcher domainNameMatcher \u003d DOMAIN_NAME_PATTERN.matcher(domain);","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" if (!domainNameMatcher.matches()) {","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" throw new InvalidLocationException(MESSAGE_INVALID_REMOTE_URL);","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" String domainName \u003d domainNameMatcher.group(GROUP_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" return isSupportedDomainName(domainName)","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" ? domainName","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" : UNSUPPORTED_DOMAIN_NAME;","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" private static boolean isSupportedDomainName(String domainName) {","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" return SupportedDomainUrlMap.isSupportedDomainName(domainName);","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" public String toString() {","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" return location;","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" public boolean equals(Object other) {","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" // short circuit if same object","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" if (this \u003d\u003d other) {","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" // instanceof handles null","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" if (!(other instanceof RepoLocation)) {","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" RepoLocation otherLocation \u003d (RepoLocation) other;","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" return this.location.equals(otherLocation.location)","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" \u0026\u0026 this.repoName.equals(otherLocation.repoName)","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" \u0026\u0026 this.organization.equals(otherLocation.organization)","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" \u0026\u0026 this.domainName.equals(otherLocation.domainName)","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" \u0026\u0026 this.outputFolderRepoName.equals(otherLocation.outputFolderRepoName)","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" \u0026\u0026 this.outputFolderOrganization.equals(otherLocation.outputFolderOrganization);","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" public int hashCode() {","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" return location.hashCode();","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":271}},{"path":"src/main/java/reposense/model/RunConfiguration.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidCsvException;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidHeaderException;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.ParseException;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" * Interface to get configurations for current RepoSense run.","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"public interface RunConfiguration {","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e getRepoConfigurations()","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" throws ParseException, IOException, InvalidCsvException, InvalidHeaderException;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":3,"-":15}},{"path":"src/main/java/reposense/parser/ArgsParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.File;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import com.google.gson.JsonSyntaxException;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.ArgumentParsers;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.helper.HelpScreenException;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.impl.Arguments;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.impl.action.HelpArgumentAction;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.impl.action.VersionArgumentAction;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentGroup;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.FeatureControl;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.MutuallyExclusiveGroup;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Namespace;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"import reposense.RepoSense;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.model.BlurbMap;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"import reposense.model.CliArguments;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"import reposense.model.FileType;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"import reposense.model.ReportConfiguration;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidMarkdownException;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.ParseException;","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.AlphanumericArgumentType;","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.AnalysisThreadsArgumentType;","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.AssetsFolderArgumentType;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.CloningThreadsArgumentType;","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.ConfigFolderArgumentType;","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.OutputFolderArgumentType;","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.PeriodArgumentType;","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.ReportFolderArgumentType;","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.SinceDateArgumentType;","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.UntilDateArgumentType;","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.ZoneIdArgumentType;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"import reposense.util.TimeUtil;","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" * Verifies and parses a string-formatted date to a {@link CliArguments} object.","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"public class ArgsParser {","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" public static final String DEFAULT_REPORT_NAME \u003d \"reposense-report\";","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" public static final int DEFAULT_NUM_CLONING_THREADS \u003d 4;","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" public static final int DEFAULT_NUM_ANALYSIS_THREADS \u003d Runtime.getRuntime().availableProcessors();","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" public static final boolean DEFAULT_IS_TEST_MODE \u003d false;","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" public static final boolean DEFAULT_SHOULD_FRESH_CLONE \u003d false;","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" public static final double DEFAULT_ORIGINALITY_THRESHOLD \u003d 0.51;","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" public static final String[] HELP_FLAGS \u003d new String[] {\"--help\", \"-h\"};","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" public static final String[] CONFIG_FLAGS \u003d new String[] {\"--config\", \"-c\"};","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" public static final String[] REPO_FLAGS \u003d new String[] {\"--repo\", \"--repos\", \"-r\"};","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" public static final String[] VIEW_FLAGS \u003d new String[] {\"--view\", \"-v\"};","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" public static final String[] OUTPUT_FLAGS \u003d new String[] {\"--output\", \"-o\"};","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" public static final String[] ASSETS_FLAGS \u003d new String[] {\"--assets\", \"-a\"};","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" public static final String[] SINCE_FLAGS \u003d new String[] {\"--since\", \"-s\"};","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" public static final String[] UNTIL_FLAGS \u003d new String[] {\"--until\", \"-u\"};","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" public static final String[] PERIOD_FLAGS \u003d new String[] {\"--period\", \"-p\"};","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" public static final String[] SHALLOW_CLONING_FLAGS \u003d new String[] {\"--shallow-cloning\", \"-S\"};","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" public static final String[] FORMAT_FLAGS \u003d new String[] {\"--formats\", \"-f\"};","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" public static final String[] IGNORE_CONFIG_FLAGS \u003d new String[] {\"--ignore-standalone-config\", \"-i\"};","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" public static final String[] IGNORE_SIZELIMIT_FLAGS \u003d new String[] {\"--ignore-filesize-limit\", \"-I\"};","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" public static final String[] TIMEZONE_FLAGS \u003d new String[] {\"--timezone\", \"-t\"};","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" public static final String[] VERSION_FLAGS \u003d new String[] {\"--version\", \"-V\"};","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" public static final String[] LAST_MODIFIED_DATE_FLAGS \u003d new String[] {\"--last-modified-date\", \"-l\"};","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" public static final String[] FIND_PREVIOUS_AUTHORS_FLAGS \u003d new String[] {\"--find-previous-authors\", \"-F\"};","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" public static final String[] CLONING_THREADS_FLAG \u003d new String[] {\"--cloning-threads\"};","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" public static final String[] ANALYSIS_THREADS_FLAG \u003d new String[] {\"--analysis-threads\"};","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" public static final String[] TEST_MODE_FLAG \u003d new String[] {\"--test-mode\"};","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" public static final String[] FRESH_CLONING_FLAG \u003d new String[] {\"--fresh-cloning\"};","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" public static final String[] ANALYZE_AUTHORSHIP_FLAGS \u003d new String[] {\"--analyze-authorship\", \"-A\"};","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" public static final String[] ORIGINALITY_THRESHOLD_FLAGS \u003d new String[] {\"--originality-threshold\", \"-ot\"};","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(ArgsParser.class);","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" private static final String PROGRAM_USAGE \u003d \"java -jar RepoSense.jar\";","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" private static final String PROGRAM_DESCRIPTION \u003d","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" \"RepoSense is a contribution analysis tool for Git repositories.\";","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" private static final String MESSAGE_HEADER_MUTEX \u003d \"mutual exclusive arguments\";","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" private static final String MESSAGE_HEADER_TESTING \u003d \"test mode arguments\";","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" private static final String MESSAGE_HAVE_SINCE_DATE_UNTIL_DATE_AND_PERIOD \u003d","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" \"\\\"Since Date\\\", \\\"Until Date\\\", and \\\"Period\\\" cannot be applied together.\";","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" private static final String MESSAGE_USING_DEFAULT_CONFIG_PATH \u003d","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" \"Config path not provided, using the config folder as default.\";","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" private static final String MESSAGE_INVALID_CONFIG_PATH \u003d \"%s is malformed.\";","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" private static final String MESSAGE_INVALID_CONFIG_JSON \u003d \"%s Ignoring the report config provided.\";","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"asdfghjkxd"},"content":" private static final String MESSAGE_INVALID_MARKDOWN_BLURBS \u003d \"%s Ignoring the blurb file provided.\";","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" private static final String MESSAGE_SINCE_D1_WITH_PERIOD \u003d \"You may be using --since d1 with the --period flag. \"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" + \"This may result in an incorrect date range being analysed.\";","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" private static final String MESSAGE_SINCE_DATE_LATER_THAN_UNTIL_DATE \u003d","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" \"\\\"Since Date\\\" cannot be later than \\\"Until Date\\\".\";","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" private static final String MESSAGE_SINCE_DATE_LATER_THAN_TODAY_DATE \u003d","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" \"\\\"Since Date\\\" must not be later than today\u0027s date.\";","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" private static final Path EMPTY_PATH \u003d Paths.get(\"\");","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" private static final Path DEFAULT_CONFIG_PATH \u003d Paths.get(System.getProperty(\"user.dir\")","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" + File.separator + \"config\" + File.separator);","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" private static final Path DEFAULT_ASSETS_PATH \u003d Paths.get(System.getProperty(\"user.dir\")","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" + File.separator + \"assets\" + File.separator);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" private static ArgumentParser getArgumentParser() {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" ArgumentParser parser \u003d ArgumentParsers","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" .newFor(PROGRAM_USAGE)","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" .addHelp(false)","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" .build()","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" .description(PROGRAM_DESCRIPTION);","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" MutuallyExclusiveGroup mutexParser \u003d parser","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" .addMutuallyExclusiveGroup(MESSAGE_HEADER_MUTEX)","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" .required(false);","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" MutuallyExclusiveGroup mutexParser2 \u003d parser","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" .addMutuallyExclusiveGroup(MESSAGE_HEADER_MUTEX)","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" .required(false);","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" ArgumentGroup argumentGroup \u003d parser","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" .addArgumentGroup(MESSAGE_HEADER_TESTING);","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" // Boolean flags","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" parser.addArgument(HELP_FLAGS)","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" .help(\"Show help message.\")","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" .action(new HelpArgumentAction());","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" parser.version(\"RepoSense \" + RepoSense.getVersion());","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" parser.addArgument(VERSION_FLAGS)","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" .help(\"Show the version of RepoSense.\")","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" .action(new VersionArgumentAction());","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" parser.addArgument(IGNORE_CONFIG_FLAGS)","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" .dest(IGNORE_CONFIG_FLAGS[0])","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" .help(\"A flag to ignore the standalone config file in the repo.\");","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" parser.addArgument(IGNORE_SIZELIMIT_FLAGS)","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" .dest(IGNORE_SIZELIMIT_FLAGS[0])","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" .help(\"A flag to ignore the filesize limit for analyzed files.\");","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" parser.addArgument(VIEW_FLAGS)","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" .dest(VIEW_FLAGS[0])","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" .nargs(\"?\")","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" .metavar(\"PATH\")","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" .type(new ReportFolderArgumentType())","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" .setConst(EMPTY_PATH)","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" .help(\"Starts a server to display the report in the provided directory. \"","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" + \"If used as a flag (with no argument), \"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" + \"generates a report and automatically displays the report.\");","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" parser.addArgument(OUTPUT_FLAGS)","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" .dest(OUTPUT_FLAGS[0])","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" .metavar(\"PATH\")","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" .type(new OutputFolderArgumentType())","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" .setDefault(Paths.get(ArgsParser.DEFAULT_REPORT_NAME))","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" .help(\"The directory to output the report folder, reposense-report. \"","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" + \"If not provided, the report folder will be created in the current working directory.\");","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" parser.addArgument(ASSETS_FLAGS)","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" .dest(ASSETS_FLAGS[0])","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" .metavar(\"PATH\")","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" .type(new AssetsFolderArgumentType())","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" .setDefault(DEFAULT_ASSETS_PATH)","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" .help(\"The directory to place assets files to customize report generation. \"","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" + \"If not provided, the assets folder in the current working directory will be used.\");","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" parser.addArgument(SINCE_FLAGS)","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" .dest(SINCE_FLAGS[0])","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" .metavar(\"dd/MM/yyyy\")","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" .type(new SinceDateArgumentType())","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" .setDefault(Optional.empty())","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" .help(\"The date to start filtering.\");","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" parser.addArgument(UNTIL_FLAGS)","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" .dest(UNTIL_FLAGS[0])","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" .metavar(\"dd/MM/yyyy\")","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" .type(new UntilDateArgumentType())","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" .setDefault(Optional.empty())","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" .help(\"The date to stop filtering.\");","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" parser.addArgument(PERIOD_FLAGS)","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" .dest(PERIOD_FLAGS[0])","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" .metavar(\"PERIOD\")","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" .type(new PeriodArgumentType())","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" .setDefault(Optional.empty())","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" .help(\"The number of days of the filtering window.\");","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" parser.addArgument(FORMAT_FLAGS)","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" .dest(FORMAT_FLAGS[0])","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" .nargs(\"*\")","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" .metavar(\"FORMAT\")","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" .type(new AlphanumericArgumentType())","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" .setDefault(Collections.emptyList())","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" .help(\"The alphanumeric file formats to process.\\n\"","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" + \"If not provided, default file formats will be used.\\n\"","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" + \"Please refer to userguide for more information.\");","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" parser.addArgument(TIMEZONE_FLAGS)","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" .dest(TIMEZONE_FLAGS[0])","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" .metavar(\"ZONE_ID[±hh[mm]]\")","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" .type(new ZoneIdArgumentType())","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" .setDefault(ZoneId.systemDefault())","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" .help(\"The timezone to use for the generated report. \"","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" + \"One kind of valid timezones is relative to UTC. E.g. UTC, UTC+08, UTC-1030. \\n\"","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" + \"If not provided, system default timezone will be used.\");","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" parser.addArgument(FIND_PREVIOUS_AUTHORS_FLAGS)","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" .dest(FIND_PREVIOUS_AUTHORS_FLAGS[0])","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" .help(\"A flag to make RepoSense utilize Git blame\u0027s ignore revisions functionality, RepoSense \"","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" + \"will attempt to blame the line changes caused by commits in the ignore commit list to the \"","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" + \"previous authors who altered those lines (if available)\");","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" parser.addArgument(ANALYZE_AUTHORSHIP_FLAGS)","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" .dest(ANALYZE_AUTHORSHIP_FLAGS[0])","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" .help(\"Performs further analysis to distinguish between partial and full credit attribution for \"","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" + \"lines of code assigned to the author. A darker background colour represents full credit, \"","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" + \"while a lighter background colour represents partial credit.\");","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" parser.addArgument(ORIGINALITY_THRESHOLD_FLAGS)","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" .dest(ORIGINALITY_THRESHOLD_FLAGS[0])","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" .metavar(\"(0.0 ~ 1.0)\")","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" .type(new OriginalityThresholdArgumentType())","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" .setDefault(DEFAULT_ORIGINALITY_THRESHOLD)","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" .help(\"Specifies the cut-off point for partial and full credit when further analysis of authorship \"","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" + \"is performed. Author will be given full credit if their contribution exceeds this \"","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" + \"threshold, else partial credit is given.\");","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" // Mutex flags - these will always be the last parameters in help message.","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" mutexParser.addArgument(CONFIG_FLAGS)","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" .dest(CONFIG_FLAGS[0])","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" .type(new ConfigFolderArgumentType())","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" .metavar(\"PATH\")","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" .setDefault(DEFAULT_CONFIG_PATH)","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" .help(\"The directory containing the config files.\"","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" + \"If not provided, the config files will be obtained from the config folder.\");","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" mutexParser.addArgument(REPO_FLAGS)","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" .nargs(\"+\")","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" .dest(REPO_FLAGS[0])","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" .metavar(\"LOCATION\")","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" .help(\"The remote Git host URLs or local directories to clone the repositories from.\");","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" mutexParser2.addArgument(LAST_MODIFIED_DATE_FLAGS)","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" .dest(LAST_MODIFIED_DATE_FLAGS[0])","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" .help(\"A flag to keep track of the last modified date of each line of code.\");","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" mutexParser2.addArgument(SHALLOW_CLONING_FLAGS)","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" .dest(SHALLOW_CLONING_FLAGS[0])","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" .help(\"A flag to make RepoSense employ Git\u0027s shallow cloning functionality, which can significantly \"","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" + \"reduce the time taken to clone large repositories. This flag should not be used for \"","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" + \"smaller repositories, where the .git file is smaller than 500 MB.\");","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" parser.addArgument(CLONING_THREADS_FLAG)","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" .dest(CLONING_THREADS_FLAG[0])","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" .type(new CloningThreadsArgumentType())","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" .setDefault(DEFAULT_NUM_CLONING_THREADS)","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" .help(FeatureControl.SUPPRESS);","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" parser.addArgument(ANALYSIS_THREADS_FLAG)","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" .dest(ANALYSIS_THREADS_FLAG[0])","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" .type(new AnalysisThreadsArgumentType())","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" .setDefault(DEFAULT_NUM_ANALYSIS_THREADS)","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" .help(FeatureControl.SUPPRESS);","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" // Testing flags","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" argumentGroup.addArgument(TEST_MODE_FLAG)","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" .dest(TEST_MODE_FLAG[0])","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" .help(\"Enables testing mode.\");","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" argumentGroup.addArgument(FRESH_CLONING_FLAG)","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" .dest(FRESH_CLONING_FLAG[0])","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":" .action(Arguments.storeTrue())","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" .help(\"Enables fresh cloning. Requires testing mode to be enabled.\");","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" return parser;","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":" * Parses the given string {@code args} to a {@link CliArguments} object.","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" * @throws HelpScreenException if given args contain the --help flag. Help message will be printed out","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" * by the {@link ArgumentParser} hence this is to signal to the caller that the program is safe to exit.","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" * @throws ParseException if the given string arguments fails to parse to a {@link CliArguments} object.","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" public static CliArguments parse(String[] args) throws HelpScreenException, ParseException {","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" ArgumentParser parser \u003d getArgumentParser();","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" Namespace results;","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" results \u003d parser.parseArgs(args);","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" } catch (HelpScreenException hse) {","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" throw hse;","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":" } catch (ArgumentParserException ape) {","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" throw new ParseException(getArgumentParser().formatUsage() + ape.getMessage() + \"\\n\");","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" Path configFolderPath \u003d results.get(CONFIG_FLAGS[0]);","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":" Path reportFolderPath \u003d results.get(VIEW_FLAGS[0]);","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":" Path outputFolderPath \u003d results.get(OUTPUT_FLAGS[0]);","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":" ZoneId zoneId \u003d results.get(TIMEZONE_FLAGS[0]);","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" Path assetsFolderPath \u003d results.get(ASSETS_FLAGS[0]);","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":" List\u003cString\u003e locations \u003d results.get(REPO_FLAGS[0]);","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":" List\u003cFileType\u003e formats \u003d FileType.convertFormatStringsToFileTypes(results.get(FORMAT_FLAGS[0]));","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" boolean isStandaloneConfigIgnored \u003d results.get(IGNORE_CONFIG_FLAGS[0]);","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" boolean isFileSizeLimitIgnored \u003d results.get(IGNORE_SIZELIMIT_FLAGS[0]);","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":" boolean shouldIncludeLastModifiedDate \u003d results.get(LAST_MODIFIED_DATE_FLAGS[0]);","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":" boolean shouldPerformShallowCloning \u003d results.get(SHALLOW_CLONING_FLAGS[0]);","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":" boolean shouldFindPreviousAuthors \u003d results.get(FIND_PREVIOUS_AUTHORS_FLAGS[0]);","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":" boolean isTestMode \u003d results.get(TEST_MODE_FLAG[0]);","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" boolean isAuthorshipAnalyzed \u003d results.get(ANALYZE_AUTHORSHIP_FLAGS[0]);","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":" double originalityThreshold \u003d results.get(ORIGINALITY_THRESHOLD_FLAGS[0]);","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":" int numCloningThreads \u003d results.get(CLONING_THREADS_FLAG[0]);","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" int numAnalysisThreads \u003d results.get(ANALYSIS_THREADS_FLAG[0]);","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" CliArguments.Builder cliArgumentsBuilder \u003d new CliArguments.Builder()","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" .configFolderPath(configFolderPath)","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" .reportDirectoryPath(reportFolderPath)","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":" .outputFilePath(outputFolderPath)","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":" .zoneId(zoneId)","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" .assetsFilePath(assetsFolderPath)","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":" .locations(locations)","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" .formats(formats)","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" .isStandaloneConfigIgnored(isStandaloneConfigIgnored)","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" .isFileSizeLimitIgnored(isFileSizeLimitIgnored)","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":" .isLastModifiedDateIncluded(shouldIncludeLastModifiedDate)","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" .isShallowCloningPerformed(shouldPerformShallowCloning)","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" .isFindingPreviousAuthorsPerformed(shouldFindPreviousAuthors)","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" .numCloningThreads(numCloningThreads)","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" .numAnalysisThreads(numAnalysisThreads)","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":" .isTestMode(isTestMode)","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":" .isAuthorshipAnalyzed(isAuthorshipAnalyzed)","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":" .originalityThreshold(originalityThreshold);","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" LogsManager.setLogFolderLocation(outputFolderPath);","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":" if (locations \u003d\u003d null \u0026\u0026 configFolderPath.equals(DEFAULT_CONFIG_PATH)) {","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":" logger.info(MESSAGE_USING_DEFAULT_CONFIG_PATH);","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":" addReportConfigToBuilder(cliArgumentsBuilder, results);","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"asdfghjkxd"},"content":" addBlurbMapToBuilder(cliArgumentsBuilder, results);","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":" addAnalysisDatesToBuilder(cliArgumentsBuilder, results);","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" boolean isViewModeOnly \u003d reportFolderPath !\u003d null","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":" \u0026\u0026 !reportFolderPath.equals(EMPTY_PATH)","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":" \u0026\u0026 configFolderPath.equals(DEFAULT_CONFIG_PATH)","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":" \u0026\u0026 locations \u003d\u003d null;","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":" cliArgumentsBuilder.isViewModeOnly(isViewModeOnly);","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"-"},"content":" boolean isAutomaticallyLaunching \u003d reportFolderPath !\u003d null;","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"-"},"content":" if (isAutomaticallyLaunching \u0026\u0026 !reportFolderPath.equals(EMPTY_PATH) \u0026\u0026 !isViewModeOnly) {","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"-"},"content":" logger.info(String.format(\"Ignoring argument \u0027%s\u0027 for --view.\", reportFolderPath.toString()));","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":" cliArgumentsBuilder.isAutomaticallyLaunching(isAutomaticallyLaunching);","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"-"},"content":" boolean shouldPerformFreshCloning \u003d isTestMode","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":" ? results.get(FRESH_CLONING_FLAG[0])","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" : DEFAULT_SHOULD_FRESH_CLONE;","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"-"},"content":" cliArgumentsBuilder.isFreshClonePerformed(shouldPerformFreshCloning);","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"-"},"content":" return cliArgumentsBuilder.build();","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":" * Adds the reportConfig field to the given {@code builder}.","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":" * @param builder Builder to be supplied with the reportConfig field.","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":" * @param results Parsed results of the user-supplied CLI arguments.","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"-"},"content":" private static void addReportConfigToBuilder(CliArguments.Builder builder, Namespace results) {","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"-"},"content":" ReportConfiguration reportConfig \u003d new ReportConfiguration();","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"-"},"content":" List\u003cString\u003e locations \u003d results.get(REPO_FLAGS[0]);","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" Path configFolderPath \u003d results.get(CONFIG_FLAGS[0]);","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"-"},"content":" // Report config is ignored if --repos is provided","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"-"},"content":" if (locations \u003d\u003d null) {","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"-"},"content":" Path reportConfigFilePath \u003d configFolderPath.resolve(ReportConfigJsonParser.REPORT_CONFIG_FILENAME);","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"-"},"content":" reportConfig \u003d new ReportConfigJsonParser().parse(reportConfigFilePath);","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":" } catch (JsonSyntaxException jse) {","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_INVALID_CONFIG_PATH, reportConfigFilePath));","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"-"},"content":" } catch (IllegalArgumentException iae) {","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_INVALID_CONFIG_JSON, iae.getMessage()));","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"-"},"content":" } catch (IOException ioe) {","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"-"},"content":" // IOException thrown as report-config.json is not found.","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"-"},"content":" // Ignore exception as the file is optional.","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"-"},"content":" builder.reportConfiguration(reportConfig);","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"asdfghjkxd"},"content":" * Adds the blurbMap field to the given {@code builder}.","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"asdfghjkxd"},"content":" * @param builder Builder to be supplied with the reportConfig field.","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"asdfghjkxd"},"content":" * @param results Parsed results of the user-supplied CLI arguments.","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"asdfghjkxd"},"content":" private static void addBlurbMapToBuilder(CliArguments.Builder builder, Namespace results) {","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap blurbMap \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"asdfghjkxd"},"content":" Path configFolderPath \u003d results.get(CONFIG_FLAGS[0]);","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"asdfghjkxd"},"content":" // Blurbs are parsed regardless","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"asdfghjkxd"},"content":" Path blurbConfigPath \u003d configFolderPath.resolve(BlurbMarkdownParser.DEFAULT_BLURB_FILENAME);","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"asdfghjkxd"},"content":" try {","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"asdfghjkxd"},"content":" blurbMap \u003d new BlurbMarkdownParser(blurbConfigPath).parse();","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"asdfghjkxd"},"content":" } catch (InvalidMarkdownException ex) {","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"asdfghjkxd"},"content":" logger.warning(String.format(MESSAGE_INVALID_MARKDOWN_BLURBS, ex.getMessage()));","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"asdfghjkxd"},"content":" } catch (IOException ioe) {","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"asdfghjkxd"},"content":" // IOException thrown as blurbs.md is not found.","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"asdfghjkxd"},"content":" // Ignore exception as the file is optional.","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"asdfghjkxd"},"content":" builder.blurbMap(blurbMap);","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"-"},"content":" * Adds the sinceDate and untilDate fields for analysis to the given {@code builder}.","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"-"},"content":" * @param builder Builder to be supplied with the sinceDate and untilDate fields","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"-"},"content":" * @param results Parsed results of the user-supplied CLI arguments.","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"-"},"content":" * @throws ParseException if all of sinceDate, untilDate and (analysis) period is provided","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"-"},"content":" * or if the sinceDate is invalid.","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"-"},"content":" private static void addAnalysisDatesToBuilder(CliArguments.Builder builder, Namespace results)","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"-"},"content":" throws ParseException {","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"-"},"content":" ZoneId zoneId \u003d results.get(TIMEZONE_FLAGS[0]);","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"-"},"content":" Optional\u003cLocalDateTime\u003e cliSinceDate \u003d results.get(SINCE_FLAGS[0]);","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"-"},"content":" Optional\u003cLocalDateTime\u003e cliUntilDate \u003d results.get(UNTIL_FLAGS[0]);","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"-"},"content":" Optional\u003cInteger\u003e cliPeriod \u003d results.get(PERIOD_FLAGS[0]);","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"-"},"content":" boolean isSinceDateProvided \u003d cliSinceDate.isPresent();","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"-"},"content":" boolean isUntilDateProvided \u003d cliUntilDate.isPresent();","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"-"},"content":" boolean isPeriodProvided \u003d cliPeriod.isPresent();","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"-"},"content":" if (isSinceDateProvided \u0026\u0026 isUntilDateProvided \u0026\u0026 isPeriodProvided) {","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"-"},"content":" throw new ParseException(MESSAGE_HAVE_SINCE_DATE_UNTIL_DATE_AND_PERIOD);","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"-"},"content":" LocalDateTime sinceDate;","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"-"},"content":" LocalDateTime untilDate;","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"-"},"content":" boolean isUsingArbitraryDate \u003d false;","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"-"},"content":" LocalDateTime currentDate \u003d TimeUtil.getCurrentDate(zoneId);","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"-"},"content":" if (isSinceDateProvided) {","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"-"},"content":" sinceDate \u003d TimeUtil.getSinceDate(cliSinceDate.get());","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"-"},"content":" // For --since d1, need to adjust the arbitrary date based on timezone","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"-"},"content":" if (TimeUtil.isEqualToArbitraryFirstDateUtc(sinceDate)) {","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"-"},"content":" isUsingArbitraryDate \u003d true;","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"-"},"content":" sinceDate \u003d TimeUtil.getArbitraryFirstCommitDateConverted(zoneId);","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"-"},"content":" } else if (isUntilDateProvided) {","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"-"},"content":" sinceDate \u003d isPeriodProvided","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"-"},"content":" ? TimeUtil.getDateMinusNDays(cliUntilDate.get(), cliPeriod.get())","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"-"},"content":" : TimeUtil.getDateMinusAMonth(cliUntilDate.get());","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"-"},"content":" sinceDate \u003d isPeriodProvided","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"-"},"content":" ? TimeUtil.getDateMinusNDays(currentDate, cliPeriod.get())","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"-"},"content":" : TimeUtil.getDateMinusAMonth(currentDate);","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"-"},"content":" if (isPeriodProvided \u0026\u0026 isUsingArbitraryDate) {","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"-"},"content":" logger.warning(MESSAGE_SINCE_D1_WITH_PERIOD);","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"-"},"content":" if (isUntilDateProvided) {","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"-"},"content":" untilDate \u003d TimeUtil.getUntilDate(cliUntilDate.get());","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"-"},"content":" untilDate \u003d (isSinceDateProvided \u0026\u0026 isPeriodProvided)","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"-"},"content":" ? TimeUtil.getDatePlusNDays(cliSinceDate.get(), cliPeriod.get())","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"-"},"content":" : currentDate;","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"-"},"content":" untilDate \u003d untilDate.compareTo(currentDate) \u003c 0","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"-"},"content":" ? untilDate","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"-"},"content":" : currentDate;","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"-"},"content":" if (sinceDate.compareTo(currentDate) \u003e 0) {","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"-"},"content":" throw new ParseException(MESSAGE_SINCE_DATE_LATER_THAN_TODAY_DATE);","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"-"},"content":" if (sinceDate.compareTo(untilDate) \u003e 0) {","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"-"},"content":" throw new ParseException(MESSAGE_SINCE_DATE_LATER_THAN_UNTIL_DATE);","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"-"},"content":" builder.sinceDate(sinceDate)","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"-"},"content":" .isSinceDateProvided(isSinceDateProvided)","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"-"},"content":" .untilDate(untilDate)","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"-"},"content":" .isUntilDateProvided(isUntilDateProvided);","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":41,"-":462}},{"path":"src/main/java/reposense/parser/AuthorConfigCsvParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.FileNotFoundException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import org.apache.commons.csv.CSVRecord;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.model.AuthorConfiguration;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidLocationException;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.ParseException;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Container for the values parsed from {@code author-config.csv} file.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"public class AuthorConfigCsvParser extends CsvParser\u003cAuthorConfiguration\u003e {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" public static final String AUTHOR_CONFIG_FILENAME \u003d \"author-config.csv\";","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" * Positions of the elements of a line in author-config.csv config file.","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private static final String[] LOCATION_HEADER \u003d {\"Repository\u0027s Location\"};","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final String[] BRANCH_HEADER \u003d {\"Branch\"};","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final String[] GIT_ID_HEADERS \u003d {\"Author\u0027s Git Host ID\", \"Author\u0027s GitHub ID\"};","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" private static final String[] EMAIL_HEADER \u003d {\"Author\u0027s Emails\"};","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private static final String[] DISPLAY_NAME_HEADER \u003d {\"Author\u0027s Display Name\"};","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" private static final String[] ALIAS_HEADER \u003d {\"Author\u0027s Git Author Name\"};","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private static final String[] IGNORE_GLOB_LIST_HEADER \u003d {\"Ignore Glob List\"};","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" public AuthorConfigCsvParser(Path csvFilePath) throws FileNotFoundException {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" super(csvFilePath);","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" * Gets the list of headers that are mandatory for verification.","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" protected String[][] mandatoryHeaders() {","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" return new String[][] {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" GIT_ID_HEADERS,","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" };","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" * Gets the list of optional headers that can be parsed.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" protected String[][] optionalHeaders() {","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" return new String[][] {","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" LOCATION_HEADER, BRANCH_HEADER, EMAIL_HEADER, DISPLAY_NAME_HEADER, ALIAS_HEADER,","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" IGNORE_GLOB_LIST_HEADER,","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" };","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" * Processes the csv {@code record} line by line and add created {@link AuthorConfiguration} into {@code results}","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" * but skips {@code author} already exists in a {@link AuthorConfiguration} that has same {@code location}","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" * and {@code branch}.","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" protected void processLine(List\u003cAuthorConfiguration\u003e results, CSVRecord record) throws ParseException {","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" List\u003cString\u003e locationsWithBranches \u003d getAsListOrDefault(record, LOCATION_HEADER);","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" String branch \u003d getOrDefault(record, BRANCH_HEADER, AuthorConfiguration.DEFAULT_BRANCH);","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" String gitId \u003d get(record, GIT_ID_HEADERS);","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" List\u003cString\u003e emails \u003d getAsList(record, EMAIL_HEADER);","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" String displayName \u003d get(record, DISPLAY_NAME_HEADER);","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" List\u003cString\u003e aliases \u003d getAsList(record, ALIAS_HEADER);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" List\u003cString\u003e ignoreGlobList \u003d getAsList(record, IGNORE_GLOB_LIST_HEADER);","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" for (String locationWithBranches : locationsWithBranches) {","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" List\u003cString\u003e parsedLocationWithBranches \u003d AuthorConfigLocationParser","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" .parseLocation(locationWithBranches, branch);","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" String currLocation \u003d parsedLocationWithBranches.get(0);","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" for (int i \u003d 1; i \u003c parsedLocationWithBranches.size(); i++) {","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" String currBranch \u003d parsedLocationWithBranches.get(i);","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" registerLocationAndBranch(results, gitId, emails, displayName, aliases,","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" ignoreGlobList, currLocation, currBranch);","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" * Registers an author for a single location and branch with the information","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" * provided by each line.","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" * @throws InvalidLocationException if {@code location} is invalid.","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" private void registerLocationAndBranch(List\u003cAuthorConfiguration\u003e results, String gitId,","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" List\u003cString\u003e emails, String displayName,","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" List\u003cString\u003e aliases, List\u003cString\u003e ignoreGlobList,","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" String currLocation, String currBranch) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d findMatchingAuthorConfiguration(results, currLocation, currBranch);","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" Author author \u003d new Author(gitId);","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" if (config.containsAuthor(author)) {","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" logger.warning(String.format(","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" \"Skipping author as %s already in repository %s %s\",","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" author.getGitId(), config.getLocation(), config.getBranch()));","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" author.setEmails(new ArrayList\u003c\u003e(emails));","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" author.setDisplayName(!displayName.isEmpty() ? displayName : author.getGitId());","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" if (!aliases.isEmpty()) {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" author.setAuthorAliases(aliases);","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" if (!ignoreGlobList.isEmpty()) {","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" author.setIgnoreGlobList(ignoreGlobList);","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" config.addAuthor(author);","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" * Gets an existing {@link AuthorConfiguration} from {@code results} if {@code location} and {@code branch} matches.","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" * Otherwise, adds a newly created {@link AuthorConfiguration} into {@code results} and returns it.","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" * @throws InvalidLocationException if {@code location} is invalid.","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" private static AuthorConfiguration findMatchingAuthorConfiguration(List\u003cAuthorConfiguration\u003e results,","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" String location, String branch) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d new AuthorConfiguration(new RepoLocation(location), branch);","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" for (AuthorConfiguration authorConfig : results) {","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" if (authorConfig.getLocation().equals(config.getLocation())","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" \u0026\u0026 authorConfig.getBranch().equals(config.getBranch())) {","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" return authorConfig;","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" results.add(config);","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" return config;","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":136}},{"path":"src/main/java/reposense/parser/BlurbMarkdownParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"import java.io.FileNotFoundException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"import java.net.MalformedURLException;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"import java.net.URISyntaxException;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"import java.net.URL;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.logging.Level;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.model.BlurbMap;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidMarkdownException;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"asdfghjkxd"},"content":"/**","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"asdfghjkxd"},"content":" * Parses the Markdown file and retrieves the mappings from URLs to blurbs from the blurbs","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":" * configuration file.","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":"public class BlurbMarkdownParser extends MarkdownParser\u003cBlurbMap\u003e {","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":" public static final Pattern DELIMITER \u003d Pattern.compile(\"\u003c!--repo--\u003e(.*)\");","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":" public static final String DEFAULT_BLURB_FILENAME \u003d \"blurbs.md\";","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":" private static final class UrlRecord {","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":" private final String url;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":" private final int nextPosition;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":" public UrlRecord(String url, int nextPosition) {","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":" this.url \u003d url;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":" this.nextPosition \u003d nextPosition;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":" public String getUrl() {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":" return url;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"asdfghjkxd"},"content":" public int getNextPosition() {","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"asdfghjkxd"},"content":" return nextPosition;","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":" private static final class BlurbRecord {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"asdfghjkxd"},"content":" private final List\u003cString\u003e blurb;","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"asdfghjkxd"},"content":" private final int nextPosition;","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"asdfghjkxd"},"content":" public BlurbRecord(List\u003cString\u003e blurb, int nextPosition) {","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"asdfghjkxd"},"content":" this.blurb \u003d blurb;","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"asdfghjkxd"},"content":" this.nextPosition \u003d nextPosition;","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"asdfghjkxd"},"content":" public List\u003cString\u003e getBlurb() {","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"asdfghjkxd"},"content":" return blurb;","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"asdfghjkxd"},"content":" public int getNextPosition() {","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"asdfghjkxd"},"content":" return nextPosition;","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"asdfghjkxd"},"content":" public BlurbMarkdownParser(Path markdownPath) throws FileNotFoundException {","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"asdfghjkxd"},"content":" super(markdownPath);","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"asdfghjkxd"},"content":" /**","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"asdfghjkxd"},"content":" * Parses the markdown file containing the url to blurb mapping and returns a","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"asdfghjkxd"},"content":" * {@code BlurbMap} containing the mappings between the url and blurbs.","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"asdfghjkxd"},"content":" * @return {@code BlurbMap} object.","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"asdfghjkxd"},"content":" * @throws IOException if there are any issues opening or parsing the {@code blurbs.md} file.","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"asdfghjkxd"},"content":" @Override","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"asdfghjkxd"},"content":" public BlurbMap parse() throws IOException, InvalidMarkdownException {","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"asdfghjkxd"},"content":" logger.log(Level.INFO, \"Parsing Blurbs...\");","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"asdfghjkxd"},"content":" // read all the lines first","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"asdfghjkxd"},"content":" List\u003cString\u003e mdLines \u003d Files.readAllLines(this.markdownPath);","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"asdfghjkxd"},"content":" // if the file is empty, then we throw the exception and let the adder handle","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"asdfghjkxd"},"content":" if (mdLines.isEmpty()) {","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"asdfghjkxd"},"content":" throw new InvalidMarkdownException(\"Empty blurbs.md file\");","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"asdfghjkxd"},"content":" // prepare the blurb map","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap blurbMap \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"asdfghjkxd"},"content":" // define temporary local variables to track blurbs","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"asdfghjkxd"},"content":" String url \u003d \"\";","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"asdfghjkxd"},"content":" StringBuilder blurb \u003d new StringBuilder();","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"asdfghjkxd"},"content":" int counter \u003d 0;","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"asdfghjkxd"},"content":" while (counter \u003c mdLines.size()) {","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"asdfghjkxd"},"content":" // extract the url record first","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"asdfghjkxd"},"content":" // this is guaranteed to be in the first line or else we fail","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"asdfghjkxd"},"content":" UrlRecord urlRecord \u003d this.getUrlRecord(mdLines, counter);","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"asdfghjkxd"},"content":" url \u003d urlRecord.getUrl();","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"asdfghjkxd"},"content":" counter \u003d urlRecord.getNextPosition();","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"asdfghjkxd"},"content":" // then extract the blurb record next","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"asdfghjkxd"},"content":" // we extract until the delimiter is found and then we will stop","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"asdfghjkxd"},"content":" BlurbRecord blurbRecord \u003d this.getBlurbRecord(mdLines, counter);","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"asdfghjkxd"},"content":" List\u003cString\u003e blurbExtracted \u003d blurbRecord.getBlurb();","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"asdfghjkxd"},"content":" for (String string : blurbExtracted) {","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"asdfghjkxd"},"content":" blurb.append(string);","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"asdfghjkxd"},"content":" counter \u003d blurbRecord.getNextPosition();","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"asdfghjkxd"},"content":" // add the recorded entry into the BlurbMap","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"asdfghjkxd"},"content":" // strip the trailing /n","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"asdfghjkxd"},"content":" blurbMap.withRecord(url, blurb.toString().stripTrailing());","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"asdfghjkxd"},"content":" blurb.setLength(0);","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"asdfghjkxd"},"content":" // return the built BlurbMap instance","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"asdfghjkxd"},"content":" logger.log(Level.INFO, \"Blurbs parsed successfully!\");","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"asdfghjkxd"},"content":" return blurbMap;","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"asdfghjkxd"},"content":" private UrlRecord getUrlRecord(List\u003cString\u003e lines, int position) throws InvalidMarkdownException {","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"asdfghjkxd"},"content":" // checks if url is valid","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"asdfghjkxd"},"content":" // adapted from https://www.baeldung.com/java-validate-url","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"asdfghjkxd"},"content":" try {","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"asdfghjkxd"},"content":" String url \u003d lines.get(position).strip();","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"asdfghjkxd"},"content":" new URL(url).toURI();","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"asdfghjkxd"},"content":" return new UrlRecord(lines.get(position), position + 1);","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"asdfghjkxd"},"content":" } catch (MalformedURLException | URISyntaxException ex) {","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"asdfghjkxd"},"content":" throw new InvalidMarkdownException(\"URL provided is not valid!\");","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"asdfghjkxd"},"content":" private BlurbRecord getBlurbRecord(List\u003cString\u003e lines, int position) {","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"asdfghjkxd"},"content":" int lineSize \u003d lines.size();","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"asdfghjkxd"},"content":" int posCounter \u003d position;","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"asdfghjkxd"},"content":" List\u003cString\u003e blurbs \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"asdfghjkxd"},"content":" while (posCounter \u003c lineSize) {","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"asdfghjkxd"},"content":" String currLine \u003d lines.get(posCounter);","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"asdfghjkxd"},"content":" if (BlurbMarkdownParser.DELIMITER.matcher(currLine).matches()) {","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"asdfghjkxd"},"content":" break;","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"asdfghjkxd"},"content":" } else {","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"asdfghjkxd"},"content":" currLine +\u003d \"\\n\";","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"asdfghjkxd"},"content":" blurbs.add(currLine);","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"asdfghjkxd"},"content":" posCounter++;","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"asdfghjkxd"},"content":" return new BlurbRecord(blurbs, posCounter + 1);","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"asdfghjkxd"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":151}},{"path":"src/main/java/reposense/parser/ConfigurationBuildException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"/**","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":" * Signals that there was an issue building a Configuration (missing parameters, etc.).","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"public class ConfigurationBuildException extends RuntimeException {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":8}},{"path":"src/main/java/reposense/parser/CsvParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.BufferedReader;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.io.FileNotFoundException;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.io.FileReader;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.HashMap;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import java.util.HashSet;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import java.util.Set;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import java.util.StringJoiner;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import java.util.logging.Level;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import java.util.stream.Stream;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import org.apache.commons.csv.CSVFormat;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import org.apache.commons.csv.CSVRecord;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidCsvException;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidHeaderException;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.ParseException;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" * Contains CSV parsing related functionalities.","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"public abstract class CsvParser\u003cT\u003e {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" protected static final String COLUMN_VALUES_SEPARATOR \u003d \";\";","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" protected static final Logger logger \u003d LogsManager.getLogger(CsvParser.class);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" private static final String EMPTY_STRING \u003d \"\";","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private static final String OVERRIDE_KEYWORD \u003d \"override:\";","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" private static final String MESSAGE_EMPTY_LINE \u003d \"[EMPTY LINE]\";","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" private static final String MESSAGE_UNABLE_TO_READ_CSV_FILE \u003d \"Unable to read the supplied CSV file.\";","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" private static final String MESSAGE_MALFORMED_LINE_FORMAT \u003d \"Line %d in CSV file, %s, is malformed.\\n\"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" + \"Content: %s\";","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" private static final String MESSAGE_LINE_PARSE_EXCEPTION_FORMAT \u003d \"Error parsing line %d in CSV file, %s.\\n\"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" + \"Content: %s\\n\"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" + \"Error: %s\";","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" private static final String MESSAGE_EMPTY_CSV_FORMAT \u003d \"The CSV file, %s, is empty.\";","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" private static final String MESSAGE_MANDATORY_HEADER_MISSING \u003d \"Required column header, %s, not found in \"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" + \"CSV file, %s\";","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" private static final String MESSAGE_DUPLICATE_COLUMN_HEADER \u003d \"Duplicate columns are present in CSV file, %s.\";","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" private static final String MESSAGE_COLUMNS_RECOGNIZED \u003d \"Parsed header of CSV file, %s, and recognized columns: \"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" + \"%s\";","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" private static final String MESSAGE_ZERO_VALID_CONFIGS \u003d \"No valid configurations in the %s.\";","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" private static final String MESSAGE_UNKNOWN_COLUMN \u003d \"Unknown column(s) found: %s (%s)\";","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" private Path csvFilePath;","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" private Map\u003cString, Integer\u003e headerMap \u003d new HashMap\u003c\u003e();","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" private int numOfLinesBeforeFirstRecord \u003d 0;","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" * Creates {@link CsvParser} with given {@code csvFilepath}.","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" * @throws FileNotFoundException if the csv file cannot be found in the provided {@code csvFilePath}.","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" public CsvParser(Path csvFilePath) throws FileNotFoundException {","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" if (csvFilePath \u003d\u003d null || !Files.exists(csvFilePath)) {","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" throw new FileNotFoundException(\"Csv file does not exist at the given path.\\n\"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" + \"Use \u0027-help\u0027 to list all the available subcommands and some concept guides.\");","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" this.csvFilePath \u003d csvFilePath;","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" * Parses the csv file associated with this instance of the {@link CsvParser} and returns a {@link List}","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" * containing the records in this file.","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" * @throws IOException if there are errors accessing the given csv file.","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" * @throws InvalidCsvException if the csv is malformed.","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" * @throws InvalidHeaderException if header of csv file cannot be read.","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" public List\u003cT\u003e parse() throws IOException, InvalidCsvException, InvalidHeaderException {","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" List\u003cT\u003e results \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" Iterable\u003cCSVRecord\u003e records;","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" try (BufferedReader csvReader \u003d new BufferedReader(new FileReader(csvFilePath.toFile()))) {","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" String[] header \u003d getHeader(csvReader);","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" records \u003d CSVFormat.Builder.create(CSVFormat.DEFAULT).setIgnoreEmptyLines(false).setHeader(header)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .setTrim(true).setIgnoreHeaderCase(true).build().parse(csvReader);","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" } catch (IllegalArgumentException iae) {","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" throw new InvalidCsvException(","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" String.format(MESSAGE_DUPLICATE_COLUMN_HEADER, csvFilePath.getFileName()));","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" for (CSVRecord record : records) {","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" if (isLineMalformed(record)) {","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" continue;","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" processLine(results, record);","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" } catch (ParseException pe) {","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_LINE_PARSE_EXCEPTION_FORMAT, getLineNumber(record),","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" csvFilePath.getFileName(), getRowContentAsRawString(record), pe.getMessage()));","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" } catch (IllegalArgumentException iae) {","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, iae.getMessage(), iae);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" } catch (IOException ioe) {","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" throw new IOException(MESSAGE_UNABLE_TO_READ_CSV_FILE, ioe);","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" if (results.isEmpty()) {","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" throw new InvalidCsvException(String.format(MESSAGE_ZERO_VALID_CONFIGS, csvFilePath.getFileName()));","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" return results;","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" * Returns the header of a CSV file, which is assumed to be the first non-empty / non-whitespace line in the file","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" * read by {@code reader}.","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" * The line is split into an array of {@code String}s, using the comma symbol as delimiter.","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" * @throws IOException if there is an error accessing the file.","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" * @throws InvalidCsvException if the file has only empty or blank lines.","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" * @throws InvalidHeaderException if header of csv file cannot be read.","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" private String[] getHeader(BufferedReader reader) throws IOException, InvalidCsvException, InvalidHeaderException {","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" String currentLine \u003d \"\";","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" // read from file until we encounter a line that is neither blank nor empty","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" while (currentLine.isEmpty()) {","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" currentLine \u003d Optional.ofNullable(reader.readLine())","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" .map(String::trim)","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" .orElseThrow(() -\u003e new InvalidCsvException(String.format(","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" MESSAGE_EMPTY_CSV_FORMAT, csvFilePath.getFileName())));","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" numOfLinesBeforeFirstRecord++;","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" String[] header \u003d currentLine.split(\",\");","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" validateHeader(header);","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" return header;","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" * Returns true if {@code record} does not contain the same number of columns as the header or contains missing","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" * values at the mandatory columns in CSV format.","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" private boolean isLineMalformed(CSVRecord record) {","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" if (!record.isConsistent()) {","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_MALFORMED_LINE_FORMAT, getLineNumber(record),","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" csvFilePath.getFileName(), getRowContentAsRawString(record)));","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" for (String[] equivalentHeaders : mandatoryHeaders()) {","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" boolean isLineFormatMalformed \u003d","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" Arrays.stream(equivalentHeaders).allMatch(header -\u003e get(record, header).isEmpty());","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" if (isLineFormatMalformed) {","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_MALFORMED_LINE_FORMAT, getLineNumber(record),","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" csvFilePath.getFileName(), getRowContentAsRawString(record)));","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" * Returns the value of {@code record} at the column with the header {@code header}.","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" protected String get(final CSVRecord record, String header) {","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" return headerMap.containsKey(header) ? record.get(headerMap.get(header)).trim() : EMPTY_STRING;","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" * Returns the value of {@code record} at the column that match any of the equivalent headers in","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" * {@code equivalentHeaders}.","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" protected String get(final CSVRecord record, String[] equivalentHeaders) {","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" for (String header : equivalentHeaders) {","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" if (headerMap.containsKey(header)) {","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" return record.get(headerMap.get(header)).trim();","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" return EMPTY_STRING;","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" * Returns the value of {@code record} at the column that match any of the equivalent headers in","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" * {@code equivalentHeaders} if present, or returns {@code defaultValue} otherwise.","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" protected String getOrDefault(final CSVRecord record, String[] equivalentHeaders, String defaultValue) {","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" String value \u003d get(record, equivalentHeaders);","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" return value.isEmpty() ? defaultValue : value;","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" * Returns the value of {@code record} at the column that match any of the equivalent headers in","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" * {@code equivalentHeaders} as a {@link List} if it is in {@code record} and not empty.","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" * The column is delimited by {@code COLUMN_VALUES_SEPARATOR}.","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" * Returns an empty {@link List} otherwise.","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" protected List\u003cString\u003e getAsList(final CSVRecord record, String[] equivalentHeaders) {","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" String value \u003d get(record, equivalentHeaders);","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" if (value.isEmpty()) {","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" return Collections.emptyList();","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" return Arrays.stream(value.split(COLUMN_VALUES_SEPARATOR))","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" .map(String::trim)","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" * Returns the value of {@code record} at {@code colNum} as a {@code List},","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" * delimited by {@code COLUMN_VALUES_SEPARATOR} if it is in {@code record} and not empty, or","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" * returns a single element List containing the empty string otherwise.","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" protected List\u003cString\u003e getAsListOrDefault(final CSVRecord record, String[] equivalentHeaders) {","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" List\u003cString\u003e list \u003d getAsList(record, equivalentHeaders);","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" return list.isEmpty() ? Collections.singletonList(\"\") : list;","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" * Returns the values in {@code record} as a list with the {@link CsvParser#OVERRIDE_KEYWORD} prefix removed.","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" * Returns an empty list if {@code record} at the column that match any of the equivalent headers in","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" * {@code equivalentHeaders} is empty.","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" protected List\u003cString\u003e getAsListWithoutOverridePrefix(final CSVRecord record, String[] equivalentHeaders) {","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" List\u003cString\u003e data \u003d getAsList(record, equivalentHeaders);","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" if (isElementOverridingStandaloneConfig(record, equivalentHeaders)) {","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" data.set(0, data.get(0).replaceFirst(OVERRIDE_KEYWORD, \"\"));","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" data.removeIf(String::isEmpty);","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" return data;","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" private long getLineNumber(final CSVRecord record) {","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" return record.getRecordNumber() + numOfLinesBeforeFirstRecord;","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" * Returns true if the {@code record} at the column that match any of the equivalent headers in","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" * {@code equivalentHeaders} is prefixed with the override keyword.","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" protected boolean isElementOverridingStandaloneConfig(final CSVRecord record, String[] equivalentHeaders) {","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" return get(record, equivalentHeaders).startsWith(OVERRIDE_KEYWORD);","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" * Returns the contents of {@code record} as a raw string.","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" private String getRowContentAsRawString(final CSVRecord record) {","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" StringJoiner inputRowString \u003d new StringJoiner(\",\");","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" for (String value : record) {","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" inputRowString.add(value);","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" String contentAsString \u003d inputRowString.toString();","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" return (contentAsString.trim().isEmpty()) ? MESSAGE_EMPTY_LINE : contentAsString;","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" * Generates map of column header to position number for input {@code possibleHeader}.","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" * @throws InvalidCsvException if {@code possibleHeader} does not contain all the mandatory headers.","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" * @throws InvalidHeaderException if a column in {@code possibleHeader} cannot be parsed.","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" private void validateHeader(String[] possibleHeader) throws InvalidCsvException, InvalidHeaderException {","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" int headerSize \u003d possibleHeader.length;","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" Set\u003cString\u003e knownColumns \u003d new HashSet\u003c\u003e();","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" ArrayList\u003cString\u003e unknownColumns \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" List\u003cString\u003e parsedHeaders \u003d mandatoryAndOptionalHeaders();","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" for (int i \u003d 0; i \u003c headerSize; i++) {","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" String possible \u003d possibleHeader[i].trim();","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" for (String parsedHeader : parsedHeaders) {","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" if (possible.equalsIgnoreCase(parsedHeader)) {","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" headerMap.put(parsedHeader, i);","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":" knownColumns.add(possible);","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" break;","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" if (!knownColumns.contains(possible)) {","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" unknownColumns.add(possible);","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" if (unknownColumns.size() \u003e 0) {","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" String errorMessage \u003d String.join(\", \", unknownColumns);","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" throw new InvalidHeaderException(","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" String.format(MESSAGE_UNKNOWN_COLUMN, errorMessage, csvFilePath.toString()));","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" for (String[] equivalentHeaders : mandatoryHeaders()) {","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" boolean isAnyEquivalentHeaderPresent \u003d","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" Arrays.stream(equivalentHeaders).anyMatch(header -\u003e headerMap.containsKey(header));","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" if (!isAnyEquivalentHeaderPresent) {","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":" throw new InvalidCsvException(String.format(","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" MESSAGE_MANDATORY_HEADER_MISSING, Arrays.toString(equivalentHeaders),","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" csvFilePath.getFileName()));","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":" logger.info(String.format(MESSAGE_COLUMNS_RECOGNIZED, csvFilePath.getFileName(),","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":" String.join(\", \", headerMap.keySet())));","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" * Gets the list of headers that are mandatory for verification.","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":" protected abstract String[][] mandatoryHeaders();","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":" * Gets the list of optional headers that can be parsed.","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":" protected abstract String[][] optionalHeaders();","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":" * Gets the list of all mandatory and optional headers that can be parsed.","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" protected List\u003cString\u003e mandatoryAndOptionalHeaders() {","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" return Stream.concat(Arrays.stream(mandatoryHeaders()), Arrays.stream(optionalHeaders()))","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":" .flatMap(Stream::of)","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" * Processes the csv file line by line.","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" * All {@link CsvParser}s must use {@link CsvParser#get}, {@link CsvParser#getOrDefault},","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":" * {@link CsvParser#getAsList} or {@link CsvParser#getAsListWithoutOverridePrefix} to read contents in","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" * {@code record} and add created objects into {@code results}.","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" * @throws ParseException if any line does not get read successfully.","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":" protected abstract void processLine(List\u003cT\u003e results, final CSVRecord record) throws ParseException;","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":3,"-":339}},{"path":"src/main/java/reposense/parser/GroupConfigCsvParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.FileNotFoundException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import org.apache.commons.csv.CSVRecord;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import reposense.model.FileType;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.model.GroupConfiguration;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidLocationException;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" * Container for the values parsed from {@code group-config.csv} file.","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"public class GroupConfigCsvParser extends CsvParser\u003cGroupConfiguration\u003e {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" public static final String GROUP_CONFIG_FILENAME \u003d \"group-config.csv\";","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" * Positions of the elements of a line in group-config.csv config file","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private static final String[] LOCATION_HEADER \u003d {\"Repository\u0027s Location\"};","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" private static final String[] GROUP_NAME_HEADER \u003d {\"Group Name\"};","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private static final String[] FILES_GLOB_HEADER \u003d {\"Globs\"};","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" public GroupConfigCsvParser(Path csvFilePath) throws FileNotFoundException {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" super(csvFilePath);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" * Gets the list of headers that are mandatory for verification.","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" protected String[][] mandatoryHeaders() {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" return new String[][] {","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" GROUP_NAME_HEADER, FILES_GLOB_HEADER,","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" };","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" * Gets the list of optional headers that can be parsed.","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" protected String[][] optionalHeaders() {","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" return new String[][] {","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" LOCATION_HEADER,","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" };","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" * Processes the csv {@code record} line by line and adds created {@link GroupConfiguration} into {@code results}.","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" protected void processLine(List\u003cGroupConfiguration\u003e results, CSVRecord record) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" String location \u003d get(record, LOCATION_HEADER);","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" String groupName \u003d get(record, GROUP_NAME_HEADER);","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" List\u003cString\u003e globList \u003d getAsList(record, FILES_GLOB_HEADER);","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" GroupConfiguration groupConfig \u003d null;","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" groupConfig \u003d findMatchingGroupConfiguration(results, location);","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" FileType group \u003d new FileType(groupName, globList);","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" if (groupConfig.containsGroup(group)) {","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" logger.warning(String.format(","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" \"Skipping group as %s has already been specified for the repository %s\",","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" group.toString(), groupConfig.getLocation()));","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" return;","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" groupConfig.addGroup(group);","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" * Gets an existing {@link GroupConfiguration} from {@code results} if {@code location} matches.","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" * Otherwise, adds a newly created {@link GroupConfiguration} into {@code results} and returns it.","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" * @throws InvalidLocationException if {@code location} is invalid.","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" private static GroupConfiguration findMatchingGroupConfiguration(List\u003cGroupConfiguration\u003e results,","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" String location) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" GroupConfiguration config \u003d new GroupConfiguration(new RepoLocation(location));","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" for (GroupConfiguration groupConfig : results) {","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" if (groupConfig.getLocation().equals(config.getLocation())) {","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" return groupConfig;","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" results.add(config);","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" return config;","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":92}},{"path":"src/main/java/reposense/parser/MarkdownParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"import java.io.FileNotFoundException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidMarkdownException;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"/**","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":" * Parses Markdown file according to the \"\u003c!--repo--\u003e\" tag.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":" *","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":" * @param \u003cT\u003e Generic Type {@code T}.","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"asdfghjkxd"},"content":"public abstract class MarkdownParser\u003cT\u003e {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"asdfghjkxd"},"content":" protected static final Logger logger \u003d LogsManager.getLogger(MarkdownParser.class);","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":" protected Path markdownPath;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":" public MarkdownParser(Path markdownPath) throws FileNotFoundException {","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":" if (markdownPath \u003d\u003d null || !Files.exists(markdownPath)) {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":" throw new FileNotFoundException(\"Markdown file does not exist at the given path.\\n\"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":" + \"Use \u0027-help\u0027 to list all the available subcommands and some concept guides.\");","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":" this.markdownPath \u003d markdownPath;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":" public abstract T parse() throws IOException, InvalidMarkdownException;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":32}},{"path":"src/main/java/reposense/parser/RepoConfigCsvParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.FileNotFoundException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import org.apache.commons.csv.CSVRecord;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import reposense.model.CommitHash;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.model.FileType;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidLocationException;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.util.StringsUtil;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" * Container for the values parsed from {@code repo-config.csv} file.","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"public class RepoConfigCsvParser extends CsvParser\u003cRepoConfiguration\u003e {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" public static final String REPO_CONFIG_FILENAME \u003d \"repo-config.csv\";","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" private static final String IGNORE_STANDALONE_CONFIG_KEYWORD \u003d \"yes\";","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private static final String IGNORE_FILESIZE_LIMIT_KEYWORD \u003d \"yes\";","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" private static final String SKIP_IGNORED_FILE_ANALYSIS_KEYWORD \u003d \"yes\";","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private static final String SHALLOW_CLONING_CONFIG_KEYWORD \u003d \"yes\";","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final String FIND_PREVIOUS_AUTHORS_KEYWORD \u003d \"yes\";","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" * Positions of the elements of a line in repo-config.csv config file","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private static final String[] LOCATION_HEADER \u003d {\"Repository\u0027s Location\"};","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static final String[] BRANCH_HEADER \u003d {\"Branch\"};","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" private static final String[] FILE_FORMATS_HEADER \u003d {\"File formats\"};","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private static final String[] IGNORE_GLOB_LIST_HEADER \u003d {\"Ignore Glob List\"};","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private static final String[] IGNORE_STANDALONE_CONFIG_HEADER \u003d {\"Ignore Standalone Config\"};","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final String[] IGNORE_FILESIZE_LIMIT_HEADER \u003d {\"Ignore File Size Limit\"};","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private static final String[] IGNORE_COMMIT_LIST_CONFIG_HEADER \u003d {\"Ignore Commits List\"};","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private static final String[] IGNORE_AUTHOR_LIST_CONFIG_HEADER \u003d {\"Ignore Authors List\"};","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" private static final String[] SKIP_IGNORED_FILE_ANALYSIS_HEADER \u003d {\"Skip Ignored File Analysis\"};","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private static final String[] SHALLOW_CLONING_CONFIG_HEADER \u003d {\"Shallow Cloning\"};","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" private static final String[] FIND_PREVIOUS_AUTHORS_CONFIG_HEADER \u003d {\"Find Previous Authors\"};","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" private static final String[] FILESIZE_LIMIT_HEADER \u003d {\"File Size Limit\"};","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" public RepoConfigCsvParser(Path csvFilePath) throws FileNotFoundException {","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" super(csvFilePath);","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" * Gets the list of headers that are mandatory for verification.","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" protected String[][] mandatoryHeaders() {","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" return new String[][] {","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" LOCATION_HEADER,","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" };","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" * Gets the list of optional headers that can be parsed.","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" protected String[][] optionalHeaders() {","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" return new String[][] {","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" BRANCH_HEADER, FILE_FORMATS_HEADER, IGNORE_GLOB_LIST_HEADER, IGNORE_STANDALONE_CONFIG_HEADER,","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" IGNORE_FILESIZE_LIMIT_HEADER, IGNORE_COMMIT_LIST_CONFIG_HEADER, IGNORE_AUTHOR_LIST_CONFIG_HEADER,","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" SHALLOW_CLONING_CONFIG_HEADER, FIND_PREVIOUS_AUTHORS_CONFIG_HEADER, FILESIZE_LIMIT_HEADER,","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" SKIP_IGNORED_FILE_ANALYSIS_HEADER","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" };","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" * Processes the csv {@code record} line by line and add created {@link RepoConfiguration} into {@code results} but","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" * ignores duplicated {@link RepoConfiguration} if there exists one that has same {@code location} and","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" * {@code branch}.","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" * @throws InvalidLocationException if the location represented in {@code record} is invalid.","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" protected void processLine(List\u003cRepoConfiguration\u003e results, CSVRecord record) throws InvalidLocationException {","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" // The variable expansion is performed to simulate running the same location from command line.","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" // This helps to support things like tilde expansion and other Bash/CMD features.","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" RepoLocation location \u003d new RepoLocation(FileUtil.getVariableExpandedFilePath(get(record, LOCATION_HEADER)));","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" String branch \u003d getOrDefault(record, BRANCH_HEADER, RepoConfiguration.DEFAULT_BRANCH);","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" boolean isFormatsOverriding \u003d isElementOverridingStandaloneConfig(record, FILE_FORMATS_HEADER);","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" List\u003cFileType\u003e formats \u003d FileType.convertFormatStringsToFileTypes(","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" getAsListWithoutOverridePrefix(record, FILE_FORMATS_HEADER));","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" boolean isIgnoreGlobListOverriding \u003d isElementOverridingStandaloneConfig(record, IGNORE_GLOB_LIST_HEADER);","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" List\u003cString\u003e ignoreGlobList \u003d getAsListWithoutOverridePrefix(record, IGNORE_GLOB_LIST_HEADER);","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" boolean isIgnoreCommitListOverriding \u003d","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" isElementOverridingStandaloneConfig(record, IGNORE_COMMIT_LIST_CONFIG_HEADER);","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" List\u003cCommitHash\u003e ignoreCommitList \u003d CommitHash.convertStringsToCommits(","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" getAsListWithoutOverridePrefix(record, IGNORE_COMMIT_LIST_CONFIG_HEADER));","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" boolean isIgnoredAuthorsListOverriding \u003d","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" isElementOverridingStandaloneConfig(record, IGNORE_AUTHOR_LIST_CONFIG_HEADER);","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" List\u003cString\u003e ignoredAuthorsList \u003d getAsListWithoutOverridePrefix(record, IGNORE_AUTHOR_LIST_CONFIG_HEADER);","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" boolean isFileSizeLimitIgnored \u003d matchValueAndKeyword(record, IGNORE_FILESIZE_LIMIT_HEADER,","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" IGNORE_FILESIZE_LIMIT_KEYWORD);","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" boolean isIgnoredFileAnalysisSkipped \u003d matchValueAndKeyword(record, SKIP_IGNORED_FILE_ANALYSIS_HEADER,","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" SKIP_IGNORED_FILE_ANALYSIS_KEYWORD);","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" if (isFileSizeLimitIgnored \u0026\u0026 isIgnoredFileAnalysisSkipped) {","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" logger.warning(\"Ignoring skip ignored file analysis column since file size limit is ignored\");","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" isIgnoredFileAnalysisSkipped \u003d false;","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" boolean isFileSizeLimitOverriding \u003d isElementOverridingStandaloneConfig(record, FILESIZE_LIMIT_HEADER);","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" List\u003cString\u003e fileSizeLimitStringList \u003d getAsListWithoutOverridePrefix(record, FILESIZE_LIMIT_HEADER);","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" long fileSizeLimit \u003d RepoConfiguration.DEFAULT_FILE_SIZE_LIMIT;","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" // If file diff limit is specified","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" if (fileSizeLimitStringList.size() \u003e 0) {","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"asdfghjkxd"},"content":" String fileSizeLimitString \u003d fileSizeLimitStringList.get(0).trim();","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"asdfghjkxd"},"content":" int parseValue;","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" if (isFileSizeLimitIgnored) {","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" logger.warning(\"Ignoring file size limit column since file size limit is ignored\");","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" isFileSizeLimitOverriding \u003d false;","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"asdfghjkxd"},"content":" } else if (!StringsUtil.isNumeric(fileSizeLimitString)","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" || (parseValue \u003d Integer.parseInt(fileSizeLimitString)) \u003c\u003d 0) {","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" logger.warning(String.format(\"Values in \\\"%s\\\" column should be positive integers.\",","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" FILESIZE_LIMIT_HEADER[0]));","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" isFileSizeLimitOverriding \u003d false;","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" fileSizeLimit \u003d parseValue;","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" boolean isStandaloneConfigIgnored \u003d matchValueAndKeyword(record, IGNORE_STANDALONE_CONFIG_HEADER,","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" IGNORE_STANDALONE_CONFIG_KEYWORD);","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" boolean isShallowCloningPerformed \u003d matchValueAndKeyword(record, SHALLOW_CLONING_CONFIG_HEADER,","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" SHALLOW_CLONING_CONFIG_KEYWORD);","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" boolean isFindingPreviousAuthorsPerformed \u003d matchValueAndKeyword(record, FIND_PREVIOUS_AUTHORS_CONFIG_HEADER,","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" FIND_PREVIOUS_AUTHORS_KEYWORD);","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" addConfig(results, location, branch, isFormatsOverriding, formats, isIgnoreGlobListOverriding, ignoreGlobList,","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" isIgnoreCommitListOverriding, ignoreCommitList, isIgnoredAuthorsListOverriding, ignoredAuthorsList,","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" isFileSizeLimitIgnored, isIgnoredFileAnalysisSkipped, isFileSizeLimitOverriding, fileSizeLimit,","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" isStandaloneConfigIgnored, isShallowCloningPerformed, isFindingPreviousAuthorsPerformed);","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" * Returns true if value from {@code record}, that matches any of the equivalent headers in","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" * {@code equivalentHeaders}, is the same as the given {@code keyword}, else false.","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" private boolean matchValueAndKeyword(CSVRecord record, String[] equivalentHeaders, String keyword) {","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" String value \u003d get(record, equivalentHeaders);","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" boolean isIgnored \u003d value.equalsIgnoreCase(keyword);","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" if (!isIgnored \u0026\u0026 !value.isEmpty()) {","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" logger.warning(String.format(\"Ignoring unknown value %s in %s column.\", value, keyword.toLowerCase()));","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" return isIgnored;","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" * Creates a new {@link RepoConfiguration} with the supplied inputs and attempts to add it to {@code results}.","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" * Does nothing if the repo already exists in {@code results}.","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" private void addConfig(List\u003cRepoConfiguration\u003e results, RepoLocation location, String branch,","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" boolean isFormatsOverriding, List\u003cFileType\u003e formats, boolean isIgnoreGlobListOverriding,","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" List\u003cString\u003e ignoreGlobList, boolean isIgnoreCommitListOverriding, List\u003cCommitHash\u003e ignoreCommitList,","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" boolean isIgnoredAuthorsListOverriding, List\u003cString\u003e ignoredAuthorsList, boolean isFileSizeLimitIgnored,","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" boolean isIgnoredFileAnalysisSkipped, boolean isFileSizeLimitOverriding, long fileSizeLimit,","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" boolean isStandaloneConfigIgnored, boolean isShallowCloningPerformed,","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" boolean isFindingPreviousAuthorsPerformed) {","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration config \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"asdfghjkxd"},"content":" .location(location)","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"asdfghjkxd"},"content":" .branch(branch)","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"asdfghjkxd"},"content":" .fileTypeManager(formats)","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"asdfghjkxd"},"content":" .ignoreGlobList(ignoreGlobList)","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"asdfghjkxd"},"content":" .fileSizeLimit(fileSizeLimit)","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"asdfghjkxd"},"content":" .isStandaloneConfigIgnored(isStandaloneConfigIgnored)","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"asdfghjkxd"},"content":" .isFileSizeLimitIgnored(isFileSizeLimitIgnored)","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"asdfghjkxd"},"content":" .ignoreCommitList(ignoreCommitList)","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"asdfghjkxd"},"content":" .isFormatsOverriding(isFormatsOverriding)","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"asdfghjkxd"},"content":" .isIgnoreGlobListOverriding(isIgnoreGlobListOverriding)","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"asdfghjkxd"},"content":" .isIgnoreCommitListOverriding(isIgnoreCommitListOverriding)","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"asdfghjkxd"},"content":" .isFileSizeLimitOverriding(isFileSizeLimitOverriding)","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"asdfghjkxd"},"content":" .isShallowCloningPerformed(isShallowCloningPerformed)","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"asdfghjkxd"},"content":" .isFindingPreviousAuthorsPerformed(isFindingPreviousAuthorsPerformed)","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"asdfghjkxd"},"content":" .isIgnoredFileAnalysisSkipped(isIgnoredFileAnalysisSkipped)","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"asdfghjkxd"},"content":" .ignoredAuthorsList(ignoredAuthorsList)","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"asdfghjkxd"},"content":" .isIgnoredAuthorsListOverriding(isIgnoredAuthorsListOverriding)","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" if (results.contains(config)) {","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" logger.warning(\"Ignoring duplicated repository \" + location + \" \" + branch);","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" return;","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" results.add(config);","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":24,"-":178}},{"path":"src/main/java/reposense/parser/exceptions/InvalidCsvException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.exceptions;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" * Signals that there is a major error in a CSV file (e.g. wrong number of columns, zero valid records).","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"public class InvalidCsvException extends Exception {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" public InvalidCsvException(String message) {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" super(message);","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":9}},{"path":"src/main/java/reposense/parser/exceptions/InvalidHeaderException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.exceptions;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" * Signals that there is a problem in the header of csv config file.","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"public class InvalidHeaderException extends Exception {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" public InvalidHeaderException(String message) {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" super(message);","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":9}},{"path":"src/main/java/reposense/parser/exceptions/InvalidLocationException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.exceptions;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" * Signals that location cannot be represented by {@code URL} or {@code Path}.","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"public class InvalidLocationException extends ParseException {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" public InvalidLocationException(String message) {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" super(message);","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":9}},{"path":"src/main/java/reposense/parser/exceptions/InvalidMarkdownException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.exceptions;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"/**","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":" * Represents the error thrown when Markdown files cannot be parsed.","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":" */","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"public class InvalidMarkdownException extends Exception {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":" public InvalidMarkdownException(String message) {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":" super(message);","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":10}},{"path":"src/main/java/reposense/parser/exceptions/ParseException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.exceptions;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":" * Signals that there is an exception when parsing a string.","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"public class ParseException extends Exception {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" public ParseException(String message) {","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":" super(message);","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":9}},{"path":"src/main/java/reposense/parser/types/AlphanumericArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" * Represents an alphanumeric type {@code String} argument.","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"public class AlphanumericArgumentType implements ArgumentType\u003cString\u003e {","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" private static final String PARSE_EXCEPTION_MESSAGE_NOT_IN_ALPLANUMERIC \u003d","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" \"Invalid format. It must be in alphanumeric.\";","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" private static final Pattern ALPHANUMERIC_PATTERN \u003d Pattern.compile(\"[A-Za-z0-9]+\");","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" public String convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" if (!ALPHANUMERIC_PATTERN.matcher(value).matches()) {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" throw new ArgumentParserException(","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" String.format(PARSE_EXCEPTION_MESSAGE_NOT_IN_ALPLANUMERIC, value), parser);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" return value;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":26}},{"path":"src/main/java/reposense/parser/types/AnalysisThreadsArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" * Verifies and parses a string-formatted integer to an {@link Integer} object.","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"public class AnalysisThreadsArgumentType implements ArgumentType\u003cInteger\u003e {","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" public Integer convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" return Integer.parseInt(value);","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":14}},{"path":"src/main/java/reposense/parser/types/AssetsFolderArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.impl.Arguments;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" * Checks the argument of {@code --assets} flag.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"public class AssetsFolderArgumentType implements ArgumentType\u003cPath\u003e {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" public Path convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" // Piggyback on library methods to do file existence checks","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" Arguments.fileType().verifyExists().verifyIsDirectory().verifyCanRead().convert(parser, arg, value);","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" return Paths.get(value);","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":21}},{"path":"src/main/java/reposense/parser/types/CloningThreadsArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":" * Verifies and parses a string-formatted integer to an {@link Integer} object.","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"public class CloningThreadsArgumentType implements ArgumentType\u003cInteger\u003e {","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" public Integer convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" return Integer.parseInt(value);","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":14}},{"path":"src/main/java/reposense/parser/types/ConfigFolderArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.impl.Arguments;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.RepoConfigCsvParser;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" * Checks the argument of {@code --config} flag.","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"public class ConfigFolderArgumentType implements ArgumentType\u003cPath\u003e {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" private static final String PARSE_EXCEPTION_MESSAGE_MISSING_REQUIRED_CONFIG_FILES \u003d","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" \"The required config file %s is not found in the specified folder.\";","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" public Path convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" // Piggyback on library methods to do file existence checks","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" Arguments.fileType().verifyExists().verifyIsDirectory().verifyCanRead().convert(parser, arg, value);","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" if (Files.exists(Paths.get(value).resolve(RepoConfigCsvParser.REPO_CONFIG_FILENAME))) {","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" return Paths.get(value);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" throw new ArgumentParserException(String.format(PARSE_EXCEPTION_MESSAGE_MISSING_REQUIRED_CONFIG_FILES,","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" RepoConfigCsvParser.REPO_CONFIG_FILENAME), parser);","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":31}},{"path":"src/main/java/reposense/parser/types/DateArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.util.TimeUtil;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" * Verifies and parses a string-formatted date to a {@link LocalDateTime} object.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"public class DateArgumentType implements ArgumentType\u003cOptional\u003cLocalDateTime\u003e\u003e {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" private static final String PARSE_EXCEPTION_MESSAGE_INVALID_DATE_STRING_FORMAT \u003d \"Invalid Date: %s\";","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" public Optional\u003cLocalDateTime\u003e convert(ArgumentParser parser, Argument arg, String value)","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" throws ArgumentParserException {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" return Optional.of(TimeUtil.parseDate(value));","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" } catch (java.text.ParseException pe) {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" throw new ArgumentParserException(","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" String.format(PARSE_EXCEPTION_MESSAGE_INVALID_DATE_STRING_FORMAT, value), parser);","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":27}},{"path":"src/main/java/reposense/parser/types/OutputFolderArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.impl.Arguments;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.ArgsParser;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" * Checks the argument of {@code --output} flag.","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"public class OutputFolderArgumentType implements ArgumentType\u003cPath\u003e {","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" public Path convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" // Piggyback on library methods to do file existence checks","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" Arguments.fileType().verifyExists().verifyIsDirectory().verifyCanWrite()","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" .or()","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" .verifyNotExists().convert(parser, arg, value);","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" return Paths.get(value).resolve(ArgsParser.DEFAULT_REPORT_NAME);","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":23}},{"path":"src/main/java/reposense/parser/types/PeriodArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.ParseException;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" * Verifies and parses a string-formatted period to an integer.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"public class PeriodArgumentType implements ArgumentType\u003cOptional\u003cInteger\u003e\u003e {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" private static final String PARSE_EXCEPTION_MESSAGE_NOT_IN_NUMERIC \u003d","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" \"Invalid format. Period must be in the format of nd (n days) or nw (n weeks), \"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" + \"where n is a number greater than 0.\";","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" private static final String PARSE_EXCEPTION_MESSAGE_SMALLER_THAN_ZERO \u003d","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" \"Invalid format. Period must be greater than 0.\";","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" private static final String PARSE_EXCEPTION_MESSAGE_NUMBER_TOO_LARGE \u003d","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" \"Invalid format. Input number may be too large.\";","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private static final Pattern PERIOD_PATTERN \u003d Pattern.compile(\"[0-9]+[dw]\");","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" public Optional\u003cInteger\u003e convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" return parse(value);","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" } catch (ParseException pe) {","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" throw new ArgumentParserException(pe.getMessage(), parser);","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" * Parses a {@code period} String and returns an {@link Integer} representing the number of days.","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" * @throws ParseException if period format or number is invalid.","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" public static Optional\u003cInteger\u003e parse(String period) throws ParseException {","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" if (!PERIOD_PATTERN.matcher(period).matches()) {","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" throw new ParseException(String.format(PARSE_EXCEPTION_MESSAGE_NOT_IN_NUMERIC, period));","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" int multiplier \u003d period.substring(period.length() - 1).equals(\"d\") ? 1 : 7;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" int convertedValue \u003d Integer.parseInt(period.substring(0, period.length() - 1)) * multiplier;","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" if (convertedValue \u003c\u003d 0) {","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" throw new ParseException(String.format(PARSE_EXCEPTION_MESSAGE_SMALLER_THAN_ZERO, period));","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" return Optional.of(convertedValue);","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" } catch (NumberFormatException e) {","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" throw new ParseException(String.format(PARSE_EXCEPTION_MESSAGE_NUMBER_TOO_LARGE, period));","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":55}},{"path":"src/main/java/reposense/parser/types/ReportFolderArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.impl.Arguments;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" * Checks the argument of {@code --view} flag.","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"public class ReportFolderArgumentType implements ArgumentType\u003cPath\u003e {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" public Path convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" // Piggyback on library methods to do file existence checks","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" Arguments.fileType().verifyExists().verifyIsDirectory().verifyCanRead().convert(parser, arg, value);","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" return Paths.get(value);","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":21}},{"path":"src/main/java/reposense/parser/types/SinceDateArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.time.Instant;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.time.ZonedDateTime;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.util.TimeUtil;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" * Verifies and parses a string-formatted since date to a {@link LocalDateTime} object.","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"public class SinceDateArgumentType extends DateArgumentType {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" /*","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" * When user specifies \"d1\", arbitrary first commit date will be returned.","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" * This date is equivalent to 1970-01-01 00:00:00 in UTC time.","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" * Then, ReportGenerator will replace the arbitrary since date with the earliest commit date.","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" public static final String FIRST_COMMIT_DATE_SHORTHAND \u003d \"d1\";","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" private static final ZonedDateTime ARBITRARY_FIRST_COMMIT_DATE_UTC \u003d ZonedDateTime.ofInstant(","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" Instant.ofEpochMilli(0), ZoneId.of(\"Z\"));","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final LocalDateTime ARBITRARY_FIRST_COMMIT_DATE_LOCAL \u003d ARBITRARY_FIRST_COMMIT_DATE_UTC","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" .toLocalDateTime();","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" * Returns an arbitrary year {@link SinceDateArgumentType#ARBITRARY_FIRST_COMMIT_DATE_LOCAL} if user specifies","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" * {@link SinceDateArgumentType#FIRST_COMMIT_DATE_SHORTHAND} in {@code value}, or attempts to return the","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" * desired date otherwise.","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" * @throws ArgumentParserException if the given date cannot be parsed.","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" public Optional\u003cLocalDateTime\u003e convert(ArgumentParser parser, Argument arg, String value)","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" throws ArgumentParserException {","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" if (FIRST_COMMIT_DATE_SHORTHAND.equals(value)) {","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" return Optional.of(ARBITRARY_FIRST_COMMIT_DATE_LOCAL);","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" String sinceDate \u003d TimeUtil.extractDate(value);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" return super.convert(parser, arg, sinceDate + \" 00:00:00\");","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" * Returns the {@link SinceDateArgumentType#ARBITRARY_FIRST_COMMIT_DATE_LOCAL}, which is the","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" * {@link LocalDateTime} of {@link SinceDateArgumentType#ARBITRARY_FIRST_COMMIT_DATE_UTC}.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" public static LocalDateTime getArbitraryFirstCommitDateLocal() {","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" return ARBITRARY_FIRST_COMMIT_DATE_LOCAL;","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" * Returns the {@link SinceDateArgumentType#ARBITRARY_FIRST_COMMIT_DATE_UTC} adjusted for the time zone based on","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" * {@code toZoneId} and converted to a {@link LocalDateTime} object.","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" public static LocalDateTime getArbitraryFirstCommitDateConverted(ZoneId toZoneId) {","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" return ARBITRARY_FIRST_COMMIT_DATE_UTC.withZoneSameInstant(toZoneId).toLocalDateTime();","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":60}},{"path":"src/main/java/reposense/parser/types/UntilDateArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import reposense.util.TimeUtil;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" * Verifies and parses a string-formatted until date to a {@link LocalDateTime} object.","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"public class UntilDateArgumentType extends DateArgumentType {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" public Optional\u003cLocalDateTime\u003e convert(ArgumentParser parser, Argument arg, String value)","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" throws ArgumentParserException {","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" String untilDate \u003d TimeUtil.extractDate(value);","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" return super.convert(parser, arg, untilDate + \" 23:59:59\");","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":21}},{"path":"src/main/java/reposense/parser/types/ZoneIdArgumentType.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser.types;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.time.DateTimeException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.Argument;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParser;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentParserException;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.inf.ArgumentType;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" * Verifies and parses a string-formatted zone id to a {@link ZoneId} object.","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"public class ZoneIdArgumentType implements ArgumentType\u003cZoneId\u003e {","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" private static final String MESSAGE_TIMEZONE_INVALID \u003d","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" \"The timezone provided is invalid, please use a more widely accepted format. E.g. UTC[±hh[mm]]\";","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" @Override","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" public ZoneId convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" return ZoneId.of(value);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" } catch (DateTimeException dte) {","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" throw new ArgumentParserException(MESSAGE_TIMEZONE_INVALID, parser);","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":25}},{"path":"src/main/java/reposense/report/ReportGenerator.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.report;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.io.InputStream;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.io.PrintWriter;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.io.StringWriter;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import java.util.HashMap;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import java.util.Iterator;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import java.util.Optional;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import java.util.concurrent.CompletableFuture;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import java.util.concurrent.ExecutorService;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import java.util.concurrent.Executors;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import java.util.function.Supplier;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import java.util.logging.Level;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"import com.google.gson.JsonSyntaxException;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"import reposense.RepoSense;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"import reposense.authorship.AuthorshipReporter;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"import reposense.authorship.model.AuthorshipSummary;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"import reposense.commits.CommitsReporter;","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"import reposense.commits.model.CommitContributionSummary;","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"import reposense.git.GitBlame;","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"import reposense.git.GitClone;","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"import reposense.git.GitRevParse;","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"import reposense.git.GitShortlog;","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"import reposense.git.GitShow;","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"import reposense.git.exception.CommitNotFoundException;","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"import reposense.git.exception.GitBranchException;","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":"import reposense.git.exception.GitCloneException;","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.model.BlurbMap;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"import reposense.model.CommitHash;","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"import reposense.model.ReportConfiguration;","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"import reposense.model.StandaloneConfig;","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"import reposense.parser.StandaloneConfigJsonParser;","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidMarkdownException;","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"import reposense.report.exception.NoAuthorsWithCommitsFoundException;","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"import reposense.util.ProgressTracker;","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"import reposense.util.TimeUtil;","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" * Contains report generation related functionalities.","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":"public class ReportGenerator {","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" private static final String REPOSENSE_CONFIG_FOLDER \u003d \"_reposense\";","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" private static final String REPOSENSE_CONFIG_FILE \u003d \"config.json\";","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(ReportGenerator.class);","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" // zip file which contains all the report template files","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" private static final String TEMPLATE_FILE \u003d \"/templateZip.zip\";","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" private static final String MESSAGE_INVALID_CONFIG_JSON \u003d \"%s Ignoring the config provided by %s (%s).\";","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" private static final String MESSAGE_ERROR_CREATING_DIRECTORY \u003d","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" \"Error has occurred while creating repo directory for %s (%s), will skip this repo.\";","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" private static final String MESSAGE_NO_STANDALONE_CONFIG \u003d \"%s (%s) does not contain a standalone config file.\";","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" private static final String MESSAGE_IGNORING_STANDALONE_CONFIG \u003d \"Ignoring standalone config file in %s (%s).\";","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" private static final String MESSAGE_MALFORMED_STANDALONE_CONFIG \u003d \"%s/%s/%s is malformed for %s (%s).\";","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" private static final String MESSAGE_NO_AUTHORS_SPECIFIED \u003d","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" \"%s (%s) has no authors specified, using all authors by default.\";","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" private static final String MESSAGE_NO_AUTHORS_WITH_COMMITS_FOUND \u003d","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" \"No authors found with commits for %s (%s).\";","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" private static final String MESSAGE_START_ANALYSIS \u003d \"Analyzing %s (%s)...\";","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" private static final String MESSAGE_COMPLETE_ANALYSIS \u003d \"Analysis of %s (%s) completed!\";","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" private static final String MESSAGE_REPORT_GENERATED \u003d \"The report is generated at %s\";","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" private static final String MESSAGE_BRANCH_DOES_NOT_EXIST \u003d \"Branch %s does not exist in %s! Analysis terminated.\";","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" private static final String MESSAGE_MISSING_TEMPLATE \u003d","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" \"Unable to find template file. Proceeding to generate report...\";","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" private static final String LOG_ERROR_CLONING \u003d \"Failed to clone from %s\";","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" private static final String LOG_ERROR_EXPANDING_COMMIT \u003d \"Cannot expand %s, it shall remain unexpanded\";","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" private static final String LOG_BRANCH_DOES_NOT_EXIST \u003d \"Branch \\\"%s\\\" does not exist.\";","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" private static final String LOG_ERROR_CLONING_OR_BRANCHING \u003d \"Exception met while cloning or checking out.\";","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" private static final String LOG_UNEXPECTED_ERROR \u003d \"Unexpected error stack trace for %s:\\n\u003e%s\";","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e assetsFilesWhiteList \u003d","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"sopa301"},"content":" Collections.unmodifiableList(Arrays.asList(new String[] {\"favicon.ico\", \"title.md\"}));","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" private LocalDateTime earliestSinceDate \u003d null;","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" private ProgressTracker progressTracker \u003d null;","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" * Generates the authorship and commits JSON file for each repo in {@code configs} at {@code outputPath}, as","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" * well as the summary JSON file of all the repos.","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" * @param configs The list of repos to analyze.","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" * @param outputPath The location at which to save the report.","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" * @param assetsPath The location at which assets for generating the report are stored.","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" * @param reportConfig The config for the output report.","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" * @param generationDate The time at which the report was generated.","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" * @param cliSinceDate The date-time from which to start analyzing commits.","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" * @param untilDate The cut-off date-time for analyzing commits.","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" * @param isSinceDateProvided The boolean variable for whether client provided a sinceDate.","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" * @param isUntilDateProvided The boolean variable for whether client provided an untilDate.","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" * @param numCloningThreads The number of threads to use to clone the repos.","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" * @param numAnalysisThreads The number of threads to use to analyze the repos.","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" * @param reportGenerationTimeProvider Supplier for time taken to generate the report.","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" * @param zoneId The timezone to adjust all date-times to.","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" * @param shouldFreshClone The boolean variable for whether to clone a repo again during tests.","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" * @param shouldAnalyzeAuthorship The boolean variable for whether to further analyze authorship.","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" * @param originalityThreshold The double variable for originality threshold in analyze authorship.","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"asdfghjkxd"},"content":" * @param blurbMap The {@code BlurbMap}.","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" * @return the list of file paths that were generated.","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" * @throws IOException if templateZip.zip does not exist in jar file.","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"asdfghjkxd"},"content":" * @throws InvalidMarkdownException if the blurb markdown file cannot be parsed properly.","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" public List\u003cPath\u003e generateReposReport(List\u003cRepoConfiguration\u003e configs, String outputPath, String assetsPath,","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" ReportConfiguration reportConfig, String generationDate, LocalDateTime cliSinceDate,","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" LocalDateTime untilDate, boolean isSinceDateProvided, boolean isUntilDateProvided, int numCloningThreads,","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" int numAnalysisThreads, Supplier\u003cString\u003e reportGenerationTimeProvider, ZoneId zoneId,","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"asdfghjkxd"},"content":" boolean shouldFreshClone, boolean shouldAnalyzeAuthorship, double originalityThreshold, BlurbMap blurbMap)","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"asdfghjkxd"},"content":" throws IOException, InvalidMarkdownException {","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" prepareTemplateFile(outputPath);","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" if (Files.exists(Paths.get(assetsPath))) {","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" FileUtil.copyDirectoryContents(assetsPath, outputPath, assetsFilesWhiteList);","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" earliestSinceDate \u003d null;","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" progressTracker \u003d new ProgressTracker(configs.size());","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" List\u003cPath\u003e reportFoldersAndFiles \u003d cloneAndAnalyzeRepos(configs, outputPath, numCloningThreads,","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" numAnalysisThreads, shouldFreshClone, shouldAnalyzeAuthorship, originalityThreshold);","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" LocalDateTime reportSinceDate \u003d (TimeUtil.isEqualToArbitraryFirstDateConverted(cliSinceDate, zoneId))","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" ? earliestSinceDate : cliSinceDate;","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" Optional\u003cPath\u003e summaryPath \u003d FileUtil.writeJsonFile(","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" new SummaryJson(configs, reportConfig, generationDate,","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" reportSinceDate, untilDate, isSinceDateProvided,","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" isUntilDateProvided, RepoSense.getVersion(), ErrorSummary.getInstance().getErrorSet(),","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"asdfghjkxd"},"content":" reportGenerationTimeProvider.get(), zoneId, shouldAnalyzeAuthorship, blurbMap),","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" getSummaryResultPath(outputPath));","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" summaryPath.ifPresent(reportFoldersAndFiles::add);","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" logger.info(String.format(MESSAGE_REPORT_GENERATED, outputPath));","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" return reportFoldersAndFiles;","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" * Copies the template file to the specified {@code outputPath} for the repo report to be generated.","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" * @throws IOException if I/O error encountered while copying template file.","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" private void prepareTemplateFile(String outputPath) throws IOException {","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" InputStream is \u003d RepoSense.class.getResourceAsStream(TEMPLATE_FILE);","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" if (is !\u003d null) {","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" FileUtil.copyTemplate(is, outputPath);","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" logger.warning(MESSAGE_MISSING_TEMPLATE);","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" * Groups {@link RepoConfiguration} with the same {@link RepoLocation} together so that they are only cloned once.","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" private Map\u003cRepoLocation, List\u003cRepoConfiguration\u003e\u003e groupConfigsByRepoLocation(","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs) {","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" Map\u003cRepoLocation, List\u003cRepoConfiguration\u003e\u003e repoLocationMap \u003d new HashMap\u003c\u003e();","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" for (RepoConfiguration config : configs) {","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" RepoLocation location \u003d config.getLocation();","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" if (!repoLocationMap.containsKey(location)) {","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" repoLocationMap.put(location, new ArrayList\u003c\u003e());","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" repoLocationMap.get(location).add(config);","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" return repoLocationMap;","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" * Clone, analyze and generate the report for repositories in {@code repoLocationMap}.","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" * Performs cloning and analysis of each repository in parallel, and generates the report.","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" * Also removes any configs that failed to clone or analyze from {@code configs}.","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" * By default, runs in multi-threaded mode with {@code numCloningThreads} threads for cloning","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" * and {@code numAnalysisThreads} threads for analysis.","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" * To turn off multi-threading, run the program with the flags","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" * {@code --cloning-threads 1 --analysis-threads 1}.","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" * For test environments, cloning is skipped if it has been done before and {@code shouldFreshClone} is false.","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" * Further analyzes the authorship of each line in the commit if {@code shouldAnalyzeAuthorship} is true, based on","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" * {@code originalityThreshold}.","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" * @return A list of paths to the JSON report files generated for each repository.","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" private List\u003cPath\u003e cloneAndAnalyzeRepos(List\u003cRepoConfiguration\u003e configs, String outputPath, int numCloningThreads,","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" int numAnalysisThreads, boolean shouldFreshClone, boolean shouldAnalyzeAuthorship,","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" double originalityThreshold) {","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" Map\u003cRepoLocation, List\u003cRepoConfiguration\u003e\u003e repoLocationMap \u003d groupConfigsByRepoLocation(configs);","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" List\u003cRepoLocation\u003e repoLocationList \u003d new ArrayList\u003c\u003e(repoLocationMap.keySet());","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" // Fixed thread pools are used to limit the number of threads used by cloning and analysis jobs at any one time","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" ExecutorService cloneExecutor \u003d Executors.newFixedThreadPool(numCloningThreads);","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" ExecutorService analyzeExecutor \u003d Executors.newFixedThreadPool(numAnalysisThreads);","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" List\u003cCompletableFuture\u003cAnalyzeJobOutput\u003e\u003e analyzeJobFutures \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" for (RepoLocation location : repoLocationList) {","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configsToAnalyze \u003d repoLocationMap.get(location);","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" // The `CompletableFuture.supplyAsync` method is used to clone the repo in parallel.","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" // Note that the `cloneExecutor` is passed as a parameter to ensure that the number of threads used","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" // for cloning is no more than `numCloningThreads`.","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" CompletableFuture\u003cCloneJobOutput\u003e cloneFuture \u003d CompletableFuture.supplyAsync(() -\u003e","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" cloneRepo(configsToAnalyze.get(0), location, shouldFreshClone), cloneExecutor);","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" // The `thenApplyAsync` method is used to analyze the cloned repo in parallel.","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" // This ensures that the analysis job for each repo will only be run after the repo has been cloned.","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" // Note that the `analyzeExecutor` is passed as a parameter to ensure that the number of threads used","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" // for analysis is no more than `numAnalysisThreads`.","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" CompletableFuture\u003cAnalyzeJobOutput\u003e analyzeFuture \u003d cloneFuture.thenApplyAsync(","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" cloneJobOutput -\u003e analyzeRepos(outputPath, configsToAnalyze, cloneJobOutput,","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" shouldAnalyzeAuthorship, originalityThreshold),","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" analyzeExecutor);","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" analyzeJobFutures.add(analyzeFuture);","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" // Next, we collect the list of outputs from all the analyze jobs","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" List\u003cAnalyzeJobOutput\u003e jobOutputs \u003d analyzeJobFutures.stream()","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" .map(CompletableFuture::join)","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" // Finally, the ExecutorService objects are shut down to prevent memory leaks","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" cloneExecutor.shutdown();","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" analyzeExecutor.shutdown();","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" List\u003cPath\u003e generatedFiles \u003d jobOutputs","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" .stream()","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" .flatMap(jobOutput -\u003e jobOutput.getFiles().stream())","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" List\u003cRepoLocation\u003e cloneFailLocations \u003d jobOutputs","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" .stream()","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" .filter(jobOutput -\u003e !jobOutput.isCloneSuccessful())","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" .map(AnalyzeJobOutput::getLocation)","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" cloneFailLocations.forEach(location -\u003e handleCloningFailed(configs, location));","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" List\u003cAnalysisErrorInfo\u003e analysisErrors \u003d jobOutputs","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" .stream()","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" .flatMap(jobOutput -\u003e jobOutput.getAnalyseErrors().stream())","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" analysisErrors.forEach(errorInfo -\u003e","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" handleAnalysisFailed(configs, errorInfo.getFailedConfig(), errorInfo.getErrorMessage()));","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" RepoCloner repoCloner \u003d new RepoCloner();","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" repoCloner.cleanup();","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" return generatedFiles;","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" * Clones repo specified by {@code config} at {@code location}.","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" * For test environments, cloning is skipped if it has been done before and {@code shouldFreshClone} is false.","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" * @return A {@link CloneJobOutput} object comprising the {@code location} of the repo, whether the cloning was","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" * successful, and the {@code defaultBranch} of the repo.","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" private CloneJobOutput cloneRepo(RepoConfiguration config, RepoLocation location, boolean shouldFreshClone) {","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" RepoCloner repoCloner \u003d new RepoCloner();","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" repoCloner.cloneBare(config, shouldFreshClone);","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" RepoLocation clonedRepoLocation \u003d repoCloner.getClonedRepoLocation();","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" if (clonedRepoLocation !\u003d null) {","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" String defaultBranch \u003d repoCloner.getCurrentRepoDefaultBranch();","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" return new CloneJobOutput(location, defaultBranch);","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" return new CloneJobOutput(location);","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" * Analyzes all repos in {@code configsToAnalyze} and generates their report at {@code outputPath}.","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" * Uses {@code cloneJobOutput} to find repo location, default branch and whether cloning was successful.","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" * Further analyzes the authorship of each line in the commit if {@code shouldAnalyzeAuthorship} is true, based on","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" * {@code originalityThreshold}.","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":" * @return An {@link AnalyzeJobOutput} object comprising the {@code location} of the repo, whether the cloning was","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" * successful, the list of {@code generatedFiles} by the analysis and a list of {@code analysisErrors} encountered.","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" private AnalyzeJobOutput analyzeRepos(String outputPath, List\u003cRepoConfiguration\u003e configsToAnalyze,","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" CloneJobOutput cloneJobOutput, boolean shouldAnalyzeAuthorship, double originalityThreshold) {","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" RepoLocation location \u003d cloneJobOutput.getLocation();","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" boolean cloneSuccessful \u003d cloneJobOutput.isCloneSuccessful();","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" List\u003cPath\u003e generatedFiles \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" List\u003cAnalysisErrorInfo\u003e analysisErrors \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" RepoCloner repoCloner \u003d new RepoCloner();","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" if (!cloneSuccessful) {","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" repoCloner.cleanupRepo(configsToAnalyze.get(0));","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":" return new AnalyzeJobOutput(location, cloneSuccessful, generatedFiles, analysisErrors);","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" for (RepoConfiguration configToAnalyze : configsToAnalyze) {","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" progressTracker.incrementProgress();","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":" configToAnalyze.updateBranch(cloneJobOutput.getDefaultBranch());","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":" Path repoReportDirectory \u003d Paths.get(outputPath, configToAnalyze.getOutputFolderName());","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" logger.info(String.format(progressTracker.getProgress() + \" \" + MESSAGE_START_ANALYSIS,","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":" configToAnalyze.getLocation(), configToAnalyze.getBranch()));","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" GitRevParse.assertBranchExists(configToAnalyze, FileUtil.getBareRepoPath(configToAnalyze));","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":" GitClone.cloneFromBareAndUpdateBranch(Paths.get(\".\"), configToAnalyze);","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":" FileUtil.createDirectory(repoReportDirectory);","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":" generatedFiles.addAll(analyzeRepo(configToAnalyze, repoReportDirectory.toString(),","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" shouldAnalyzeAuthorship, originalityThreshold));","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":" } catch (IOException ioe) {","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":" String logMessage \u003d String.format(MESSAGE_ERROR_CREATING_DIRECTORY,","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" configToAnalyze.getLocation(), configToAnalyze.getBranch());","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, logMessage, ioe);","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" } catch (GitBranchException gbe) {","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" logger.log(Level.SEVERE, String.format(MESSAGE_BRANCH_DOES_NOT_EXIST,","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" configToAnalyze.getBranch(), configToAnalyze.getLocation()), gbe);","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":" analysisErrors.add(new AnalysisErrorInfo(configToAnalyze,","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":" String.format(LOG_BRANCH_DOES_NOT_EXIST, configToAnalyze.getBranch())));","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" } catch (GitCloneException gce) {","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":" analysisErrors.add(new AnalysisErrorInfo(configToAnalyze, LOG_ERROR_CLONING_OR_BRANCHING));","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" } catch (NoAuthorsWithCommitsFoundException nafe) {","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" logger.log(Level.WARNING, String.format(MESSAGE_NO_AUTHORS_WITH_COMMITS_FOUND,","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" configToAnalyze.getLocation(), configToAnalyze.getBranch()));","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":" generatedFiles.addAll(generateEmptyRepoReport(repoReportDirectory.toString(),","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" Author.NAME_NO_AUTHOR_WITH_COMMITS_FOUND));","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" generateEmptyRepoReport(repoReportDirectory.toString(), Author.NAME_NO_AUTHOR_WITH_COMMITS_FOUND);","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" } catch (Exception e) {","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" StringWriter sw \u003d new StringWriter();","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":" e.printStackTrace(new PrintWriter(sw));","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":" logger.log(Level.SEVERE, sw.toString());","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":" analysisErrors.add(new AnalysisErrorInfo(configToAnalyze,","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":" String.format(LOG_UNEXPECTED_ERROR, configToAnalyze.getLocation(), sw.toString())));","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":" repoCloner.cleanupRepo(configsToAnalyze.get(0));","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":" return new AnalyzeJobOutput(location, cloneSuccessful, generatedFiles, analysisErrors);","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":" * Analyzes repo specified by {@code config} and generates the report at {@code repoReportDirectory}.","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":" * Further analyzes the authorship of each line in the commit if {@code shouldAnalyzeAuthorship} is true, based on","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" * {@code originalityThreshold}.","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":" * @return A list of paths to the JSON report files generated for the repo specified by {@code config}.","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":" * @throws NoAuthorsWithCommitsFoundException if there are no authors with commits found for the repo.","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"-"},"content":" private List\u003cPath\u003e analyzeRepo(RepoConfiguration config, String repoReportDirectory,","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"-"},"content":" boolean shouldAnalyzeAuthorship, double originalityThreshold) throws NoAuthorsWithCommitsFoundException {","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"-"},"content":" // preprocess the config and repo","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"-"},"content":" updateRepoConfig(config);","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" updateAuthorList(config);","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":" updateIgnoreCommitList(config);","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"-"},"content":" if (config.isFindingPreviousAuthorsPerformed()) {","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":" generateIgnoreRevsFile(config);","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"-"},"content":" AuthorshipReporter authorshipReporter \u003d new AuthorshipReporter();","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"-"},"content":" AuthorshipSummary authorshipSummary \u003d authorshipReporter.generateAuthorshipSummary(config,","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"-"},"content":" shouldAnalyzeAuthorship, originalityThreshold);","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":" CommitsReporter commitsReporter \u003d new CommitsReporter();","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":" CommitContributionSummary commitSummary \u003d commitsReporter.generateCommitSummary(config);","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":" earliestSinceDate \u003d commitSummary.getEarliestSinceDate();","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":" List\u003cPath\u003e generatedFiles \u003d generateIndividualRepoReport(repoReportDirectory, commitSummary, authorshipSummary);","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"-"},"content":" logger.info(String.format(MESSAGE_COMPLETE_ANALYSIS, config.getLocation(), config.getBranch()));","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"-"},"content":" return generatedFiles;","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":" * Updates {@code config} with configuration provided by repository if exists.","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"-"},"content":" * @throws AssertionError if there is a problem with the file existence check.","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"-"},"content":" public void updateRepoConfig(RepoConfiguration config) throws AssertionError {","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"-"},"content":" Path configJsonPath \u003d","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"-"},"content":" Paths.get(config.getRepoRoot(), REPOSENSE_CONFIG_FOLDER, REPOSENSE_CONFIG_FILE).toAbsolutePath();","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"-"},"content":" if (!Files.exists(configJsonPath)) {","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"-"},"content":" logger.info(String.format(MESSAGE_NO_STANDALONE_CONFIG, config.getLocation(), config.getBranch()));","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"-"},"content":" return;","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"-"},"content":" if (config.isStandaloneConfigIgnored()) {","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"-"},"content":" logger.info(String.format(MESSAGE_IGNORING_STANDALONE_CONFIG, config.getLocation(), config.getBranch()));","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"-"},"content":" return;","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"-"},"content":" StandaloneConfig standaloneConfig \u003d new StandaloneConfigJsonParser().parse(configJsonPath);","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"-"},"content":" config.update(standaloneConfig);","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"-"},"content":" } catch (JsonSyntaxException jse) {","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_MALFORMED_STANDALONE_CONFIG, config.getDisplayName(),","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"-"},"content":" REPOSENSE_CONFIG_FOLDER, REPOSENSE_CONFIG_FILE, config.getLocation(), config.getBranch()));","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"-"},"content":" } catch (IllegalArgumentException iae) {","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_INVALID_CONFIG_JSON,","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"-"},"content":" iae.getMessage(), config.getLocation(), config.getBranch()));","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"-"},"content":" } catch (IOException ioe) {","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"-"},"content":" throw new AssertionError(","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"-"},"content":" \"This exception should not happen as we have performed the file existence check.\");","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"-"},"content":" * Find and update {@code config} with all the author identities if author list is empty.","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"-"},"content":" * Also removes ignored authors from author list.","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"-"},"content":" * @throws NoAuthorsWithCommitsFoundException if there are no authors with commits found for the repo.","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"-"},"content":" private void updateAuthorList(RepoConfiguration config) throws NoAuthorsWithCommitsFoundException {","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"-"},"content":" if (config.getAuthorList().isEmpty()) {","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"-"},"content":" logger.info(String.format(MESSAGE_NO_AUTHORS_SPECIFIED, config.getLocation(), config.getBranch()));","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e authorList \u003d GitShortlog.getAuthors(config);","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"-"},"content":" if (authorList.isEmpty()) {","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"-"},"content":" throw new NoAuthorsWithCommitsFoundException();","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"-"},"content":" config.setAuthorList(authorList);","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"-"},"content":" config.removeIgnoredAuthors();","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"-"},"content":" * Updates {@code config} with the exact list of commits if commit ranges are provided.","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"-"},"content":" private void updateIgnoreCommitList(RepoConfiguration config) {","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"-"},"content":" List\u003cCommitHash\u003e updatedIgnoreCommitList \u003d config.getIgnoreCommitList().stream()","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"-"},"content":" .flatMap(x -\u003e CommitHash.getHashes(config.getRepoRoot(), config.getBranch(), x))","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"-"},"content":" config.setIgnoreCommitList(updatedIgnoreCommitList);","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"-"},"content":" * Adds {@code configs} that were not successfully cloned from {@code failedRepoLocation}","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"-"},"content":" * into the list of errors in the summary report and removes them from the list of {@code configs}.","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"-"},"content":" private void handleCloningFailed(List\u003cRepoConfiguration\u003e configs, RepoLocation failedRepoLocation) {","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e failedConfigs \u003d configs.stream()","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"-"},"content":" .filter(config -\u003e config.getLocation().equals(failedRepoLocation))","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"-"},"content":" handleFailedConfigs(configs, failedConfigs, String.format(LOG_ERROR_CLONING, failedRepoLocation));","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"-"},"content":" * Adds {@code failedConfig} that failed analysis into the list of errors in the summary report along with","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"-"},"content":" * an {@code errorMessage} and removes {@code failedConfig} from the list of {@code configs}.","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"-"},"content":" private void handleAnalysisFailed(List\u003cRepoConfiguration\u003e configs, RepoConfiguration failedConfig,","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"-"},"content":" String errorMessage) {","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"-"},"content":" handleFailedConfigs(configs, Collections.singletonList(failedConfig), errorMessage);","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"-"},"content":" * Adds {@code failedConfigs} that failed cloning/analysis into the list of errors in the summary report along","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"-"},"content":" * with an {@code errorMessage} and removes {@code failedConfigs} from the list of {@code configs}.","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"-"},"content":" private void handleFailedConfigs(List\u003cRepoConfiguration\u003e configs, List\u003cRepoConfiguration\u003e failedConfigs,","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"-"},"content":" String errorMessage) {","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"-"},"content":" Iterator\u003cRepoConfiguration\u003e itr \u003d configs.iterator();","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"-"},"content":" while (itr.hasNext()) {","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"-"},"content":" RepoConfiguration config \u003d itr.next();","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"-"},"content":" if (failedConfigs.contains(config)) {","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"-"},"content":" ErrorSummary.getInstance().addErrorMessage(config.getDisplayName(), errorMessage);","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"-"},"content":" itr.remove();","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"-"},"content":" * Generates an empty report at the {@code repoReportDirectory}, with the author display name","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"-"},"content":" * as {@code displayName}.","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"-"},"content":" * @return A list of paths to the JSON report files generated for this empty report.","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"-"},"content":" private List\u003cPath\u003e generateEmptyRepoReport(String repoReportDirectory, String displayName) {","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"-"},"content":" CommitReportJson emptyCommitReportJson \u003d new CommitReportJson(displayName);","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"-"},"content":" List\u003cPath\u003e generatedFiles \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"-"},"content":" FileUtil.writeJsonFile(emptyCommitReportJson, getIndividualCommitsPath(repoReportDirectory))","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"-"},"content":" .ifPresent(generatedFiles::add);","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"-"},"content":" FileUtil.writeJsonFile(Collections.emptyList(), getIndividualAuthorshipPath(repoReportDirectory))","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"-"},"content":" .ifPresent(generatedFiles::add);","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"-"},"content":" return generatedFiles;","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"-"},"content":" * Generates a report for a single repository at {@code repoReportDirectory} based on {@code commitSummary}","isFullCredit":false},{"lineNumber":504,"author":{"gitId":"-"},"content":" * and {@code authorshipSummary}.","isFullCredit":false},{"lineNumber":505,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":506,"author":{"gitId":"-"},"content":" * @return A list of paths to the JSON report files generated for this report.","isFullCredit":false},{"lineNumber":507,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":508,"author":{"gitId":"-"},"content":" private List\u003cPath\u003e generateIndividualRepoReport(String repoReportDirectory,","isFullCredit":false},{"lineNumber":509,"author":{"gitId":"-"},"content":" CommitContributionSummary commitSummary, AuthorshipSummary authorshipSummary) {","isFullCredit":false},{"lineNumber":510,"author":{"gitId":"-"},"content":" CommitReportJson commitReportJson \u003d new CommitReportJson(commitSummary, authorshipSummary);","isFullCredit":false},{"lineNumber":511,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":512,"author":{"gitId":"-"},"content":" List\u003cPath\u003e generatedFiles \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":513,"author":{"gitId":"-"},"content":" FileUtil.writeJsonFile(commitReportJson, getIndividualCommitsPath(repoReportDirectory))","isFullCredit":false},{"lineNumber":514,"author":{"gitId":"-"},"content":" .ifPresent(generatedFiles::add);","isFullCredit":false},{"lineNumber":515,"author":{"gitId":"-"},"content":" FileUtil.writeJsonFile(authorshipSummary.getFileResults(), getIndividualAuthorshipPath(repoReportDirectory))","isFullCredit":false},{"lineNumber":516,"author":{"gitId":"-"},"content":" .ifPresent(generatedFiles::add);","isFullCredit":false},{"lineNumber":517,"author":{"gitId":"-"},"content":" return generatedFiles;","isFullCredit":false},{"lineNumber":518,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":519,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":520,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":521,"author":{"gitId":"-"},"content":" * Creates the .git-blame-ignore-revs file containing the contents of {@code ignoreCommitList}","isFullCredit":false},{"lineNumber":522,"author":{"gitId":"-"},"content":" * in the repo root directory of {@code config}.","isFullCredit":false},{"lineNumber":523,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":524,"author":{"gitId":"-"},"content":" private void generateIgnoreRevsFile(RepoConfiguration config) {","isFullCredit":false},{"lineNumber":525,"author":{"gitId":"-"},"content":" List\u003cCommitHash\u003e expandedIgnoreCommitList \u003d config.getIgnoreCommitList().stream()","isFullCredit":false},{"lineNumber":526,"author":{"gitId":"-"},"content":" .map(CommitHash::toString)","isFullCredit":false},{"lineNumber":527,"author":{"gitId":"-"},"content":" .map(commitHash -\u003e {","isFullCredit":false},{"lineNumber":528,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":529,"author":{"gitId":"-"},"content":" return GitShow.getExpandedCommitHash(config.getRepoRoot(), commitHash);","isFullCredit":false},{"lineNumber":530,"author":{"gitId":"-"},"content":" } catch (CommitNotFoundException e) {","isFullCredit":false},{"lineNumber":531,"author":{"gitId":"-"},"content":" logger.warning(String.format(LOG_ERROR_EXPANDING_COMMIT, commitHash));","isFullCredit":false},{"lineNumber":532,"author":{"gitId":"-"},"content":" return new CommitHash(commitHash);","isFullCredit":false},{"lineNumber":533,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":534,"author":{"gitId":"-"},"content":" })","isFullCredit":false},{"lineNumber":535,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":536,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":537,"author":{"gitId":"-"},"content":" config.setIgnoreCommitList(expandedIgnoreCommitList);","isFullCredit":false},{"lineNumber":538,"author":{"gitId":"-"},"content":" FileUtil.writeIgnoreRevsFile(getIgnoreRevsFilePath(config.getRepoRoot()), config.getIgnoreCommitList());","isFullCredit":false},{"lineNumber":539,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":540,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":541,"author":{"gitId":"-"},"content":" private String getSummaryResultPath(String targetFileLocation) {","isFullCredit":false},{"lineNumber":542,"author":{"gitId":"-"},"content":" return targetFileLocation + \"/\" + SummaryJson.SUMMARY_JSON_FILE_NAME;","isFullCredit":false},{"lineNumber":543,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":544,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":545,"author":{"gitId":"-"},"content":" private String getIgnoreRevsFilePath(String targetFileLocation) {","isFullCredit":false},{"lineNumber":546,"author":{"gitId":"-"},"content":" return targetFileLocation + GitBlame.IGNORE_COMMIT_LIST_FILE_NAME;","isFullCredit":false},{"lineNumber":547,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":548,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":549,"author":{"gitId":"-"},"content":" private String getIndividualAuthorshipPath(String repoReportDirectory) {","isFullCredit":false},{"lineNumber":550,"author":{"gitId":"-"},"content":" return repoReportDirectory + \"/authorship.json\";","isFullCredit":false},{"lineNumber":551,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":552,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":553,"author":{"gitId":"-"},"content":" private String getIndividualCommitsPath(String repoReportDirectory) {","isFullCredit":false},{"lineNumber":554,"author":{"gitId":"-"},"content":" return repoReportDirectory + \"/commits.json\";","isFullCredit":false},{"lineNumber":555,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":556,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":557,"author":{"gitId":"-"},"content":" public void setEarliestSinceDate(LocalDateTime newEarliestSinceDate) {","isFullCredit":false},{"lineNumber":558,"author":{"gitId":"-"},"content":" if (earliestSinceDate \u003d\u003d null || newEarliestSinceDate.compareTo(earliestSinceDate) \u003c 0) {","isFullCredit":false},{"lineNumber":559,"author":{"gitId":"-"},"content":" earliestSinceDate \u003d newEarliestSinceDate;","isFullCredit":false},{"lineNumber":560,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":561,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":562,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":7,"sopa301":1,"-":554}},{"path":"src/main/java/reposense/report/SummaryJson.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.report;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.Set;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.model.BlurbMap;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.model.ReportConfiguration;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.model.SupportedDomainUrlMap;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" * Represents the structure of summary.json file in reposense-report folder.","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"public class SummaryJson {","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" public static final String SUMMARY_JSON_FILE_NAME \u003d \"summary.json\";","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" private final String repoSenseVersion;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" private final String reportGeneratedTime;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" private final String reportGenerationTime;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private final ZoneId zoneId;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" private final String reportTitle;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private final List\u003cRepoConfiguration\u003e repos;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private final Set\u003cMap\u003cString, String\u003e\u003e errorSet;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private final LocalDateTime sinceDate;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" private final LocalDateTime untilDate;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private final boolean isSinceDateProvided;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" private final boolean isUntilDateProvided;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private final Map\u003cString, Map\u003cString, String\u003e\u003e supportedDomainUrlMap;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private final boolean isAuthorshipAnalyzed;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":" private final BlurbMap blurbs;","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" public SummaryJson(List\u003cRepoConfiguration\u003e repos, ReportConfiguration reportConfig, String reportGeneratedTime,","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":" LocalDateTime sinceDate, LocalDateTime untilDate, boolean isSinceDateProvided,","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":" boolean isUntilDateProvided, String repoSenseVersion, Set\u003cMap\u003cString, String\u003e\u003e errorSet,","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":" String reportGenerationTime, ZoneId zoneId,","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"asdfghjkxd"},"content":" boolean isAuthorshipAnalyzed, BlurbMap blurbs) {","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" this.repos \u003d repos;","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" this.reportGeneratedTime \u003d reportGeneratedTime;","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" this.reportGenerationTime \u003d reportGenerationTime;","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" this.reportTitle \u003d reportConfig.getTitle();","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" this.sinceDate \u003d sinceDate;","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" this.untilDate \u003d untilDate;","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" this.isSinceDateProvided \u003d isSinceDateProvided;","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" this.isUntilDateProvided \u003d isUntilDateProvided;","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" this.repoSenseVersion \u003d repoSenseVersion;","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" this.errorSet \u003d errorSet;","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" this.zoneId \u003d zoneId;","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" this.supportedDomainUrlMap \u003d SupportedDomainUrlMap.getDefaultDomainUrlMap();","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" this.isAuthorshipAnalyzed \u003d isAuthorshipAnalyzed;","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"asdfghjkxd"},"content":" this.blurbs \u003d blurbs;","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":7,"-":48}},{"path":"src/main/java/reposense/util/StringsUtil.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.util;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":" * Contains strings related utilities.","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"public class StringsUtil {","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":" public static final Pattern NEWLINE \u003d Pattern.compile(\"\\n\");","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":" public static final Pattern TAB \u003d Pattern.compile(\"\\t\");","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" public static final Pattern SPACE \u003d Pattern.compile(\" \");","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":" public static final Pattern NUMERIC \u003d Pattern.compile(\"^\\\\d+$\");","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" private static final Pattern SPECIAL_SYMBOLS \u003d Pattern.compile(\"[@;:\u0026/\\\\\\\\!\u003c\u003e{}%#\\\"\\\\-\u003d\u0027()\\\\[\\\\].+*?^$|]\");","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Filters the {@code text}, returning only the lines that matches the given {@code regex}.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" public static String filterText(String text, String regex) {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" StringBuilder sb \u003d new StringBuilder();","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":" Pattern regexPattern \u003d Pattern.compile(regex);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":" for (String line : NEWLINE.split(text)) {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":" if (regexPattern.matcher(line).matches()) {","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":" sb.append(line).append(\"\\n\");","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" return sb.toString();","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" * Converts all special symbol characters inside {@code regexString} to the {@code replacementCharacter}.","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" public static String replaceSpecialSymbols(String regexString, String replacementCharacter) {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" return SPECIAL_SYMBOLS.matcher(regexString).replaceAll(replacementCharacter);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" * Adds quotes to the string.","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" public static String addQuotes(String original) {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" return \"\\\"\" + original + \"\\\"\";","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" * Adds the appropriate quotation marks for a file path depending on the OS.","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" public static String addQuotesForFilePath(String filePath) {","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" if (SystemUtil.isWindows()) {","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" return \"\\\"\" + filePath + \"\\\"\";","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" StringBuilder sb \u003d new StringBuilder();","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" for (int i \u003d 0; i \u003c filePath.length(); i++) {","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" char c \u003d filePath.charAt(i);","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" if (c \u003d\u003d \u0027\\\u0027\u0027) {","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" sb.append(\"\u0027\\\"\u0027\\\"\u0027\");","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" sb.append(c);","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" return \u0027\\\u0027\u0027 + sb.toString() + \u0027\\\u0027\u0027;","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" * Removes quotes at the start and end of {@code original}, if exists.","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" public static String removeQuote(String original) {","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" return (original.startsWith(\"\\\"\") \u0026\u0026 original.endsWith(\"\\\"\"))","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" ? original.substring(1, original.length() - 1)","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" : original;","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" * Removes trailing backslashes from a {@code string}, if it exists.","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" public static String removeTrailingBackslash(String string) {","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" if (string.isEmpty()) {","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" return string;","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" int lastCharIndex \u003d string.length() - 1;","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" String editedString \u003d string;","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" boolean isLastCharBackslash \u003d string.charAt(lastCharIndex) \u003d\u003d \u0027\\\\\u0027;","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" while (isLastCharBackslash) {","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" editedString \u003d editedString.substring(0, lastCharIndex--);","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" boolean isStringEmpty \u003d editedString.length() \u003d\u003d 0;","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" isLastCharBackslash \u003d !isStringEmpty \u0026\u0026 editedString.charAt(lastCharIndex) \u003d\u003d \u0027\\\\\u0027;","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" return editedString;","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" * Returns true iff {@code string} is purely numeric.","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" public static boolean isNumeric(String string) {","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"asdfghjkxd"},"content":" return NUMERIC.matcher(string).matches();","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" * Calculates the Levenshtein Distance between two strings using Dynamic Programming.","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" * Insertion, deletion, and substitution are all of cost 1.","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" * This version improves the space complexity down to O(min(s, t))","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" * \u003cp\u003e\u003c/p\u003e","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" * The dp will stop if the {@code limit} is reached, this means that if the final distance is 7 and the limit is set","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" * to 3, the algorithm ends early once it reaches 3. This is possible as we are using this method to find the string","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" * with the lowest Levenshtein distance.","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" * \u003cp\u003e\u003c/p\u003e","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" * Returns {@code Integer.MAX_VALUE} if limit is reached, else returns the computed Levenshtein distance.","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" public static int getLevenshteinDistance(String s, String t, double limit) {","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" // Early termination if either string is empty, lev dist is just the length of the other string.","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" if (s.isEmpty()) {","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" return t.length();","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" if (t.isEmpty()) {","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" return s.length();","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" // The final lev dist is at least k where k \u003d difference in length \u003d number of insert/delete.","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" if (Math.abs(s.length() - t.length()) \u003e\u003d limit) {","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" return Integer.MAX_VALUE;","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" if (s.length() \u003c t.length()) {","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" // Swap s and t to ensure s is always the longer string","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" String temp \u003d s;","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" s \u003d t;","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" t \u003d temp;","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" int[] dp \u003d new int[t.length() + 1];","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" for (int i \u003d 0; i \u003c\u003d t.length(); i++) {","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" dp[i] \u003d i;","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" for (int i \u003d 1; i \u003c\u003d s.length(); i++) {","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" // Store the value of the previous row\u0027s column","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" int prev \u003d dp[0];","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" dp[0] \u003d i;","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" // If for this row, all the values are at least k, then the final lev dist computed will also be at least k.","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" // hasLower will check for values smaller than the limit, and terminate early if limit is reached.","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" boolean hasLower \u003d false;","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" for (int j \u003d 1; j \u003c\u003d t.length(); j++) {","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" int temp \u003d dp[j];","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" if (s.charAt(i - 1) \u003d\u003d t.charAt(j - 1)) {","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" dp[j] \u003d prev;","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" dp[j] \u003d Math.min(prev, Math.min(dp[j - 1], dp[j])) + 1;","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" prev \u003d temp;","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" if (dp[j] \u003c limit) {","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" hasLower \u003d true;","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" if (!hasLower) {","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" return Integer.MAX_VALUE;","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" return dp[t.length()];","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":9,"-":161}},{"path":"src/main/java/reposense/util/TimeUtil.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.util;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.time.format.DateTimeFormatter;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.time.format.DateTimeParseException;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.time.format.ResolverStyle;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.logging.Logger;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.regex.Matcher;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.regex.Pattern;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.SinceDateArgumentType;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import reposense.system.LogsManager;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" * Contains time related functionalities.","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"public class TimeUtil {","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" private static Long startTime;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" private static final String DATE_FORMAT_REGEX \u003d","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" \"^((0?[1-9]|[12][0-9]|3[01])\\\\/(0?[1-9]|1[012])\\\\/(19|2[0-9])[0-9]{2})\";","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" // \"uuuu\" is used for year since \"yyyy\" does not work with ResolverStyle.STRICT","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" private static final DateTimeFormatter CLI_ARGS_DATE_FORMAT \u003d DateTimeFormatter.ofPattern(\"d/M/uuuu HH:mm:ss\");","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final String EARLIEST_VALID_DATE \u003d \"1970-01-01T00:00:00\";","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final String LATEST_VALID_DATE \u003d \"2099-12-31T23:59:59\";","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" private static final String MESSAGE_SINCE_DATE_EARLIER_THAN_EARLIEST_VALID_DATE \u003d","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" \"Date of %s must not be earlier than \"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" + String.format(\"%s, resetting it to earliest valid date\", EARLIEST_VALID_DATE);","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private static final String MESSAGE_UNTIL_DATE_LATER_THAN_LATEST_VALID_DATE \u003d","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" \"Date of %s must not be later than \"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" + String.format(\"%s, resetting it to latest valid date\", LATEST_VALID_DATE);","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private static final Logger logger \u003d LogsManager.getLogger(TimeUtil.class);","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" * Sets the {@code startTime} to be the current time.","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" public static void startTimer() {","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" startTime \u003d System.nanoTime();","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" * Returns the formatted elapsed time from {@code startTime} until current time.","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" public static String getElapsedTime() {","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" long endTime \u003d System.nanoTime();","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" double elapsedTime \u003d (double) (endTime - startTime) / 1_000_000_000.0;","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" int elapsedHours \u003d (int) elapsedTime / 3600;","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" int elapsedMinutes \u003d (int) (elapsedTime % 3600) / 60;","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" double elapsedSeconds \u003d elapsedTime % 60;","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" String formattedElapsedTime \u003d \"\";","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" if (elapsedHours \u003e 0) {","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" formattedElapsedTime +\u003d String.format(\" %d hour(s)\", elapsedHours);","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" if (elapsedMinutes \u003e 0) {","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" formattedElapsedTime +\u003d String.format(\" %d minute(s)\", elapsedMinutes);","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" formattedElapsedTime +\u003d String.format(\" %.2f second(s)\", elapsedSeconds);","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" return formattedElapsedTime;","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" * Returns the formatted elapsed time from {@code startTime} until current time,","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" * with an additional explanatory string.","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" public static String getElapsedTimeMessage() {","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" return \"Elapsed processing time:\" + getElapsedTime();","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" * Returns a valid {@link LocalDateTime} that is set to midnight for the given {@code sinceDate}.","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" public static LocalDateTime getSinceDate(LocalDateTime sinceDate) {","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" return getValidDate(sinceDate).withHour(0).withMinute(0).withSecond(0);","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" * Returns a valid {@link LocalDateTime} that is set to 23:59:59 for the given {@code untilDate}.","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" public static LocalDateTime getUntilDate(LocalDateTime untilDate) {","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" return getValidDate(untilDate).withHour(23).withMinute(59).withSecond(59);","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" * Returns a valid {@link LocalDateTime} that is within {@value EARLIEST_VALID_DATE} and {@value LATEST_VALID_DATE}.","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" * Resets {@code date} passed the closest valid date if it exceeds the date range.","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" public static LocalDateTime getValidDate(LocalDateTime date) {","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" if (date.isBefore(LocalDateTime.parse(EARLIEST_VALID_DATE))) {","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_SINCE_DATE_EARLIER_THAN_EARLIEST_VALID_DATE, date));","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" return LocalDateTime.parse(EARLIEST_VALID_DATE);","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" if (date.isAfter(LocalDateTime.parse(LATEST_VALID_DATE))) {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" logger.warning(String.format(MESSAGE_UNTIL_DATE_LATER_THAN_LATEST_VALID_DATE, date));","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" return LocalDateTime.parse(LATEST_VALID_DATE);","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" return date;","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} that is one month before {@code cliUntilDate} (if present) or one month","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" * before report generation date otherwise.","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" public static LocalDateTime getDateMinusAMonth(LocalDateTime cliUntilDate) {","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" return getSinceDate(cliUntilDate.minusMonths(1));","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} that is {@code numOfDays} before {@code cliUntilDate} (if present) or one month","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" * before report generation date otherwise.","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" public static LocalDateTime getDateMinusNDays(LocalDateTime cliUntilDate, int numOfDays) {","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" return getSinceDate(cliUntilDate.minusDays(numOfDays));","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" * Returns a {@link LocalDateTime} that is {@code numOfDays} after {@code cliSinceDate} (if present).","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" public static LocalDateTime getDatePlusNDays(LocalDateTime cliSinceDate, int numOfDays) {","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" return getUntilDate(cliSinceDate.plusDays(numOfDays));","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" * Returns current date with time set to 23:59:59. The time zone is adjusted to the given {@code zoneId}.","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" public static LocalDateTime getCurrentDate(ZoneId zoneId) {","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" return LocalDateTime.now(zoneId).withHour(23).withMinute(59).withSecond(59).withNano(0);","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" * Returns the {@link LocalDateTime} of {@code ARBITRARY_FIRST_COMMIT_DATE} in the UTC time zone.","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" public static LocalDateTime getArbitraryFirstCommitDateLocal() {","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" return SinceDateArgumentType.getArbitraryFirstCommitDateLocal();","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" * Returns the {@link LocalDateTime} of {@code ARBITRARY_FIRST_COMMIT_DATE} adjusted for the time zone based on","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" * {@code toZoneId}.","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" public static LocalDateTime getArbitraryFirstCommitDateConverted(ZoneId toZoneId) {","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" return SinceDateArgumentType.getArbitraryFirstCommitDateConverted(toZoneId);","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" * Checks whether the given {@code dateTime} is the {@code ARBITRARY_FIRST_COMMIT_DATE} in UTC time.","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" public static boolean isEqualToArbitraryFirstDateUtc(LocalDateTime dateTime) {","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" return dateTime.equals(getArbitraryFirstCommitDateLocal());","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" * Checks whether the given {@code dateTime} is the {@code ARBITRARY_FIRST_COMMIT_DATE} in the time zone given by","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" * {@code zoneId}.","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" public static boolean isEqualToArbitraryFirstDateConverted(LocalDateTime dateTime, ZoneId zoneId) {","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" return dateTime.equals(getArbitraryFirstCommitDateConverted(zoneId));","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" * Extracts the first substring of {@code date} string that matches the {@code DATE_FORMAT_REGEX}.","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" public static String extractDate(String date) {","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" Matcher matcher \u003d Pattern.compile(DATE_FORMAT_REGEX).matcher(date);","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" String extractedDate \u003d date;","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" if (matcher.find()) {","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" extractedDate \u003d matcher.group(1);","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" return extractedDate;","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" * Parses the given {@code date} string as a {@link LocalDateTime} based on the {@code CLI_ARGS_DATE_FORMAT}.","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" * Uses {@link ResolverStyle#STRICT} to avoid unexpected dates like 31/02/2020.","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" * @throws java.text.ParseException if date cannot be parsed by the required format.","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" public static LocalDateTime parseDate(String date) throws java.text.ParseException {","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" return LocalDateTime.parse(date, CLI_ARGS_DATE_FORMAT.withResolverStyle(ResolverStyle.STRICT));","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" } catch (DateTimeParseException e) {","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" throw new java.text.ParseException(String.format(","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" \"Exception message: %s\\n\", e.getMessage()), e.getErrorIndex());","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":191}},{"path":"src/systemtest/java/reposense/ConfigSystemTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.apache.tools.ant.types.Commandline.translateCommandline;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.AfterEach;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeEach;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.parallel.Execution;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.parallel.ExecutionMode;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.model.SupportedDomainUrlMap;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.SinceDateArgumentType;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.report.ErrorSummary;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import reposense.util.InputBuilder;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import reposense.util.SystemTestUtil;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"@Execution(ExecutionMode.SAME_THREAD)","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"public class ConfigSystemTest {","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e TESTING_FILE_FORMATS \u003d Arrays.asList(\"java\", \"adoc\");","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final String TEST_TIME_ZONE \u003d \"Asia/Singapore\";","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private static final String OUTPUT_DIRECTORY \u003d \"ft_temp\";","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" private static final Path REPORT_DIRECTORY_PATH \u003d Paths.get(OUTPUT_DIRECTORY, \"reposense-report\");","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static boolean didNotCloneRepoNormally \u003d true;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" @BeforeEach","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" public void setUp() throws Exception {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" SupportedDomainUrlMap.clearAccessedSet();","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" FileUtil.deleteDirectory(OUTPUT_DIRECTORY);","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" ErrorSummary.getInstance().clearErrorSet();","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" @AfterEach","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" public void tearDown() throws Exception {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" FileUtil.deleteDirectory(OUTPUT_DIRECTORY);","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" * System test with a specified until date and a {@link SinceDateArgumentType#FIRST_COMMIT_DATE_SHORTHAND}","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" * since date to capture from the first commit.","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" public void testSinceBeginningDateRange() {","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d initInputBuilder()","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" .addSinceDate(SinceDateArgumentType.FIRST_COMMIT_DATE_SHORTHAND)","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" .addUntilDate(\"2/3/2019\");","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" runTest(inputBuilder, false,","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" \"ConfigSystemTest/sinceBeginningDateRange/expected\");","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" public void test30DaysFromUntilDate() {","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d initInputBuilder().addUntilDate(\"1/11/2017\");","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" runTest(inputBuilder, false,","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" \"ConfigSystemTest/30daysFromUntilDate/expected\");","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" * System test with a specified since date and until date, with the last modified date time in each","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" * line of code.","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" public void testDateRangeWithModifiedDateTimeInLines() {","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d initInputBuilder()","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" .addSinceDate(\"1/9/2017\")","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" .addUntilDate(\"30/10/2017\")","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" .addLastModifiedDateFlags();","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" runTest(inputBuilder, false,","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" \"ConfigSystemTest/dateRangeWithModifiedDateTimeInLines/expected\");","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" * System test with a specified until date and a {@link SinceDateArgumentType#FIRST_COMMIT_DATE_SHORTHAND}","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" * since date to capture from the first commit, using shallow cloning.","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" public void testSinceBeginningDateRangeWithShallowCloning() {","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d initInputBuilder()","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" .addSinceDate(SinceDateArgumentType.FIRST_COMMIT_DATE_SHORTHAND)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .addUntilDate(\"2/3/2019\")","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .addShallowCloning();","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" runTest(inputBuilder, true,","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" \"ConfigSystemTest/sinceBeginningDateRangeWithShallowCloning/expected\");","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" public void test30DaysFromUntilDateWithShallowCloning() {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d initInputBuilder()","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" .addUntilDate(\"1/11/2017\")","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" .addShallowCloning();","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" runTest(inputBuilder, true,","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" \"ConfigSystemTest/30daysFromUntilDateWithShallowCloning/expected\");","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" * System test with a specified until date and a {@link SinceDateArgumentType#FIRST_COMMIT_DATE_SHORTHAND}","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" * since date to capture from the first commit, using find previous authors.","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" public void testSinceBeginningDateRangeWithFindPreviousAuthors() {","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d initInputBuilder()","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" .addSinceDate(SinceDateArgumentType.FIRST_COMMIT_DATE_SHORTHAND)","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" .addUntilDate(\"2/3/2019\")","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" .addFindPreviousAuthors();","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" runTest(inputBuilder, true,","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" \"ConfigSystemTest/sinceBeginningDateRangeFindPreviousAuthors/expected\");","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" public void test30DaysFromUntilDateWithFindPreviousAuthors() {","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d initInputBuilder()","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" .addUntilDate(\"1/11/2017\")","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" .addFindPreviousAuthors();","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" runTest(inputBuilder, true,","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" \"ConfigSystemTest/30daysFromUntilDateFindPreviousAuthors/expected\");","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" * Returns a {@link InputBuilder} that is initialized with some default values.","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" * \u003cbr\u003eConfig Folder Path: {@code ConfigSystemTest}","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" * \u003cbr\u003eFormats: {@link ConfigSystemTest#TESTING_FILE_FORMATS TESTING_FILE_FORMATS}","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" * \u003cbr\u003eTimezone: {@link ConfigSystemTest#TEST_TIME_ZONE TEST_TIME_ZONE}","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" * \u003cbr\u003eOutput Folder Path: {@link ConfigSystemTest#OUTPUT_DIRECTORY OUTPUT_DIRECTORY}","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" * \u003cbr\u003eTest Mode: {@code Enabled}","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" private InputBuilder initInputBuilder() {","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" Path configFolder \u003d loadResource(getClass(), \"ConfigSystemTest\");","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", TESTING_FILE_FORMATS);","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" return new InputBuilder().addConfig(configFolder)","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" .addTimezone(TEST_TIME_ZONE)","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" .addTestMode()","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" .addOutput(OUTPUT_DIRECTORY);","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" * Generates the testing report and compares it with the expected report.","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" * Re-generates a normal report after the testing finished if the first report is shallow-cloned.","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" * @param inputBuilder The input builder that contains the command line input specified by user.","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" * @param shouldFreshClone Boolean for whether to clone repo again if it has been cloned before.","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" * @param pathToResource The location at which files generated during the test are stored.","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" private void runTest(InputBuilder inputBuilder, boolean shouldFreshClone, String pathToResource) {","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" if (shouldFreshClone || didNotCloneRepoNormally) {","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" inputBuilder \u003d inputBuilder.addFreshCloning();","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" RepoSense.main(translateCommandline(inputBuilder.build()));","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" Path actualFiles \u003d loadResource(getClass(), pathToResource);","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" SystemTestUtil.verifyReportJsonFiles(actualFiles, REPORT_DIRECTORY_PATH);","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" didNotCloneRepoNormally \u003d inputBuilder.isShallowCloning();","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":171}},{"path":"src/systemtest/java/reposense/LocalRepoSystemTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.apache.tools.ant.types.Commandline.translateCommandline;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.AfterAll;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.AfterEach;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeAll;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeEach;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.parallel.Execution;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.parallel.ExecutionMode;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.model.SupportedDomainUrlMap;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.SinceDateArgumentType;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import reposense.report.ErrorSummary;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import reposense.util.InputBuilder;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import reposense.util.SystemTestUtil;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import reposense.util.TestRepoCloner;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"@Execution(ExecutionMode.SAME_THREAD)","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"public class LocalRepoSystemTest {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private static final String LOCAL_DIRECTORY_ONE_PARENT \u003d \"parent1\";","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" private static final String LOCAL_DIRECTORY_TWO_PARENT \u003d \"parent2\";","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private static final String LOCAL_DIRECTORY_ONE \u003d \"parent1/test-repo\";","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static final String LOCAL_DIRECTORY_TWO \u003d \"parent2/test-repo\";","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private static final String LAST_COMMIT_DATE \u003d \"31/01/2023\";","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final String OUTPUT_DIRECTORY \u003d \"local-test\";","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private static final String TIME_ZONE \u003d \"UTC+08\";","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private static final Path REPORT_DIRECTORY_PATH \u003d Paths.get(OUTPUT_DIRECTORY, \"reposense-report\");","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" @BeforeAll","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" public static void setupLocalRepos() throws Exception {","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"asdfghjkxd"},"content":" TestRepoCloner.clone(","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(\"https://github.com/reposense/testrepo-Alpha\"))","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"asdfghjkxd"},"content":" .build(),","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"asdfghjkxd"},"content":" Paths.get(\".\"), LOCAL_DIRECTORY_ONE","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"asdfghjkxd"},"content":" TestRepoCloner.clone(","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(\"https://github.com/reposense/testrepo-Alpha\"))","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"asdfghjkxd"},"content":" .build(),","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"asdfghjkxd"},"content":" Paths.get(\".\"), LOCAL_DIRECTORY_TWO","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" @BeforeEach","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" public void setupLocalTest() throws Exception {","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" SupportedDomainUrlMap.clearAccessedSet();","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" FileUtil.deleteDirectory(OUTPUT_DIRECTORY);","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" ErrorSummary.getInstance().clearErrorSet();","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" @AfterEach","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" public void deleteReportDirectory() throws Exception {","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" FileUtil.deleteDirectory(OUTPUT_DIRECTORY);","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" @AfterAll","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" public static void deleteClonedLocalRepos() throws Exception {","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" FileUtil.deleteDirectory(LOCAL_DIRECTORY_ONE_PARENT);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" FileUtil.deleteDirectory(LOCAL_DIRECTORY_TWO_PARENT);","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" public void testSameFinalDirectory() {","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d new InputBuilder()","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" .addRepos(LOCAL_DIRECTORY_ONE, LOCAL_DIRECTORY_TWO)","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" .addSinceDate(SinceDateArgumentType.FIRST_COMMIT_DATE_SHORTHAND)","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" .addUntilDate(LAST_COMMIT_DATE)","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .addOutput(Paths.get(OUTPUT_DIRECTORY))","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" .addTimezone(TIME_ZONE);","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" runTest(inputBuilder, \"LocalRepoSystemTest/testSameFinalDirectory\");","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" public void testRelativePathing() {","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" String relativePathForTesting \u003d \"parent1/../parent1/./test-repo\";","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" InputBuilder inputBuilder \u003d new InputBuilder()","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" .addRepos(relativePathForTesting)","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" .addSinceDate(SinceDateArgumentType.FIRST_COMMIT_DATE_SHORTHAND)","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" .addUntilDate(LAST_COMMIT_DATE)","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" .addOutput(Paths.get(OUTPUT_DIRECTORY))","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" .addTimezone(TIME_ZONE);","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" runTest(inputBuilder, \"LocalRepoSystemTest/testRelativePathing\");","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" * Runs RepoSense with {@code inputBuilder} and tests it against the expected","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" * files in {@code expectedFilesPathString}.","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" private void runTest(InputBuilder inputBuilder, String expectedFilesPathString) {","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" RepoSense.main(translateCommandline(inputBuilder.build()));","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" Path expectedFilesPath \u003d loadResource(getClass(), expectedFilesPathString);","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" SystemTestUtil.verifyReportJsonFiles(expectedFilesPath, REPORT_DIRECTORY_PATH);","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":13,"-":95}},{"path":"src/systemtest/java/reposense/util/SystemTestUtil.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.util;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.io.FileReader;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.stream.Stream;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"import com.google.gson.JsonElement;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import com.google.gson.JsonObject;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import com.google.gson.JsonParser;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" * Contains utility methods for system tests.","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"public class SystemTestUtil {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" private static final String[] JSON_FIELDS_TO_IGNORE \u003d new String[]","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" {\"repoSenseVersion\", \"reportGeneratedTime\", \"reportGenerationTime\", \"isAuthorshipAnalyzed\"};","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" * Verifies that all JSON files in the {@code actualDirectory} matches those at the {@code expectedDirectory}.","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" public static void verifyReportJsonFiles(Path expectedDirectory, Path actualDirectory) {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" try (Stream\u003cPath\u003e pathStream \u003d Files.list(expectedDirectory)) {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" for (Path file : pathStream.collect(Collectors.toList())) {","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" Path expectedFilePath \u003d expectedDirectory.resolve(file.getFileName());","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" Path actualFilePath \u003d actualDirectory.resolve(file.getFileName());","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" if (Files.isDirectory(file)) {","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" verifyReportJsonFiles(expectedFilePath, actualFilePath);","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" } else if (file.toString().endsWith(\".json\")) {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" if (file.getFileName().toString().equals(\"summary.json\")) {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" assertSummaryJson(expectedFilePath, actualFilePath);","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" } else {","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" assertJson(expectedFilePath, actualFilePath);","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" } catch (IOException ioe) {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" ioe.printStackTrace();","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" public static void assertSummaryJson(Path expectedSummaryJsonPath, Path actualSummaryJsonPath)","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" throws IOException {","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" try (FileReader fileReaderExpected \u003d new FileReader(expectedSummaryJsonPath.toFile());","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" FileReader fileReaderActual \u003d new FileReader(actualSummaryJsonPath.toFile())) {","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" JsonObject jsonExpected \u003d JsonParser.parseReader(fileReaderExpected).getAsJsonObject();","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" JsonObject jsonActual \u003d JsonParser.parseReader(fileReaderActual).getAsJsonObject();","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" for (String ignoredKey : JSON_FIELDS_TO_IGNORE) {","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" jsonExpected.remove(ignoredKey);","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" jsonActual.remove(ignoredKey);","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" Assertions.assertEquals(jsonExpected, jsonActual);","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" * Asserts that the contents in the given JSON file at {@code actualJsonPath} is the same as the JSON file","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" * at {@code expectedJsonPath}.","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" public static void assertJson(Path expectedJsonPath, Path actualJsonPath) {","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.exists(actualJsonPath));","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"asdfghjkxd"},"content":" try (FileReader fileReaderExpected \u003d new FileReader(expectedJsonPath.toFile());","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"asdfghjkxd"},"content":" FileReader fileReaderActual \u003d new FileReader(actualJsonPath.toFile())) {","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"asdfghjkxd"},"content":" JsonElement jsonExpected \u003d JsonParser.parseReader(fileReaderExpected);","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"asdfghjkxd"},"content":" JsonElement jsonActual \u003d JsonParser.parseReader(fileReaderActual);","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(jsonExpected, jsonActual);","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"asdfghjkxd"},"content":" } catch (IOException ex) {","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.fail(ex.getMessage());","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":11,"-":68}},{"path":"src/test/java/reposense/git/GitBranchTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.git;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeEach;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import reposense.model.FileTypeTest;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.template.GitTestTemplate;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.util.TestRepoCloner;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"public class GitBranchTest extends GitTestTemplate {","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":" protected static final String TEST_REPO_UNCOMMON_DEFAULT_GIT_LOCATION \u003d","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" \"https://github.com/reposense/testrepo-UncommonDefaultBranch.git\";","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" private RepoConfiguration config;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" @BeforeEach","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" public void before() throws Exception {","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" super.before();","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" config \u003d configs.get();","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" public void getCurrentBranch_masterBranch_success() throws Exception {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" String currentBranch \u003d GitBranch.getCurrentBranch(config.getRepoRoot());","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"master\", currentBranch);","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" public void getCurrentBranch_uncommonDefaultBranch_success() throws Exception {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration uncommonDefaultConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_UNCOMMON_DEFAULT_GIT_LOCATION))","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":" .branch(RepoConfiguration.DEFAULT_BRANCH)","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" uncommonDefaultConfig.setFormats(FileTypeTest.DEFAULT_TEST_FORMATS);","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(uncommonDefaultConfig);","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" String currentBranch \u003d GitBranch.getCurrentBranch(uncommonDefaultConfig.getRepoRoot());","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"uncommon\", currentBranch);","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":4,"-":39}},{"path":"src/test/java/reposense/model/BlurbMapTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"public class BlurbMapTest {","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":" public void blurbBuilder_testIfBuildsSuccessfully_success() {","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap builder \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":" builder.withRecord(\"hello\", \"world\");","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap newBuilder \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":" newBuilder.withRecord(\"hello\", \"world\");","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(builder, newBuilder);","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"asdfghjkxd"},"content":" public void blurbBuilder_testIfBuildsEmpty_success() {","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap map1 \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap map2 \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(map1, map2);","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":" public void blurbBuilder_testIfUnequal_success() {","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap builder1 \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMap builder2 \u003d new BlurbMap();","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":" builder1.withRecord(\"this\", \"builder\");","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":" builder2.withRecord(\"other\", \"builder\");","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertNotEquals(builder1, builder2);","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":33}},{"path":"src/test/java/reposense/model/RepoConfigurationTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.apache.tools.ant.types.Commandline.translateCommandline;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.lang.reflect.Method;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeAll;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.parser.ArgsParser;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import reposense.parser.AuthorConfigCsvParser;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.ConfigurationBuildException;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import reposense.parser.GroupConfigCsvParser;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import reposense.parser.RepoConfigCsvParser;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import reposense.report.ReportGenerator;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import reposense.util.InputBuilder;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"import reposense.util.TestRepoCloner;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"import reposense.util.TestUtil;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"public class RepoConfigurationTest {","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" private static final Path IGNORE_STANDALONE_TEST_CONFIG_FILES \u003d","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" loadResource(RepoConfigurationTest.class, \"RepoConfigurationTest/repoconfig_ignoreStandAlone_test\");","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static final Path IGNORE_STANDALONE_KEYWORD_TEST_CONFIG_FILES \u003d","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" loadResource(RepoConfigurationTest.class, \"RepoConfigurationTest/repoconfig_ignoreStandAloneKeyword_test\");","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private static final Path FORMATS_TEST_CONFIG_FILES \u003d loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_formats_test\");","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final Path WITHOUT_FORMATS_TEST_CONFIG_FILES \u003d loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_withoutformats_test\");","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private static final Path GROUPS_TEST_CONFIG_FILES \u003d loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_groups_test\");","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private static final Path OVERRIDE_STANDALONE_TEST_CONFIG_FILE \u003d loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_overrideStandAlone_test\");","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" private static final Path IGNORE_AUTHORS_TEST_CONFIG_FILE \u003d loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_ignoreAuthors_test\");","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" private static final Path IGNORE_STANDALONE_FLAG_OVERRIDE_CSV_TEST \u003d loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_ignoreStandaloneOverrideCsv_test\");","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" private static final Path IGNORE_FILESIZE_LIMIT_TEST_CONFIG_FILES \u003d loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_ignoreFileSizeLimit_test\");","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" private static final Path IGNORE_FILESIZE_LIMIT_OVERRIDE_CSV_TEST_CONFIG_FILES \u003d","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_ignoreFileSizeLimitOverrideCsv_test\");","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" private static final Path SHALLOW_CLONING_TEST_CONFIG_FILES \u003d","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" loadResource(RepoConfigurationTest.class, \"RepoConfigurationTest/repoconfig_shallowCloning_test\");","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" private static final Path SHALLOW_CLONING_FLAG_OVERRIDE_TEST_CONFIG_FILES \u003d","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_shallowCloningOverrideCsv_test\");","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" private static final Path FIND_PREVIOUS_AUTHORS_TEST_CONFIG_FILES \u003d","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_findPreviousAuthors_test\");","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" private static final Path FIND_PREVIOUS_AUTHORS_FLAG_OVERRIDE_TEST_CONFIG_FILES \u003d","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" loadResource(RepoConfigurationTest.class,","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" \"RepoConfigurationTest/repoconfig_findPreviousAuthorsOverrideCsv_test\");","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_BETA \u003d \"https://github.com/reposense/testrepo-Beta.git\";","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_DELTA \u003d \"https://github.com/reposense/testrepo-Delta.git\";","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_MINIMAL_STANDALONE_CONFIG \u003d","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" \"https://github.com/reposense/testrepo-minimalstandaloneconfig.git\";","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" private static final Author FIRST_AUTHOR \u003d new Author(\"lithiumlkid\");","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" private static final Author SECOND_AUTHOR \u003d new Author(\"codeeong\");","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" private static final Author THIRD_AUTHOR \u003d new Author(\"jordancjq\");","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" private static final Author FOURTH_AUTHOR \u003d new Author(\"lohtianwei\");","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e FIRST_AUTHOR_ALIASES \u003d Collections.singletonList(\"Ahmad Syafiq\");","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e SECOND_AUTHOR_ALIASES \u003d Collections.emptyList();","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e THIRD_AUTHOR_ALIASES \u003d Collections.singletonList(\"Jordan Chong\");","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e FOURTH_AUTHOR_ALIASES \u003d Collections.singletonList(\"Tianwei\");","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e REPO_LEVEL_GLOB_LIST \u003d Collections.singletonList(\"collated**\");","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e FIRST_AUTHOR_GLOB_LIST \u003d","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" Arrays.asList(\"*.aa1\", \"**.aa2\", \"**.java\", \"collated**\");","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e SECOND_AUTHOR_GLOB_LIST \u003d Arrays.asList(\"\", \"collated**\");","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e THIRD_AUTHOR_GLOB_LIST \u003d Arrays.asList(\"**[!(.md)]\", \"collated**\");","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e FOURTH_AUTHOR_GLOB_LIST \u003d Collections.singletonList(\"collated**\");","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" private static final List\u003cFileType\u003e CONFIG_FORMATS \u003d FileType.convertFormatStringsToFileTypes(Arrays.asList(","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" \"java\", \"adoc\", \"md\"));","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" private static final List\u003cFileType\u003e FIRST_CONFIG_GROUPS \u003d Arrays.asList(","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" new FileType(\"test\", Collections.singletonList(\"src/test**\")),","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" new FileType(\"code\", Collections.singletonList(\"**.java\")),","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" new FileType(\"docs\", Collections.singletonList(\"docs**\")));","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" private static final List\u003cFileType\u003e SECOND_CONFIG_GROUPS \u003d Arrays.asList(","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" new FileType(\"docs\", Collections.singletonList(\"docs**\")));","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e CLI_FORMATS \u003d Arrays.asList(\"css\", \"html\");","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" private static RepoConfiguration repoDeltaStandaloneConfig;","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" private ReportGenerator reportGenerator \u003d new ReportGenerator();","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" @BeforeAll","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" public static void setUp() throws Exception {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" FIRST_AUTHOR.setAuthorAliases(FIRST_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" SECOND_AUTHOR.setAuthorAliases(SECOND_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" THIRD_AUTHOR.setAuthorAliases(THIRD_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" FOURTH_AUTHOR.setAuthorAliases(FOURTH_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" FIRST_AUTHOR.setIgnoreGlobList(FIRST_AUTHOR_GLOB_LIST);","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" SECOND_AUTHOR.setIgnoreGlobList(SECOND_AUTHOR_GLOB_LIST);","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" THIRD_AUTHOR.setIgnoreGlobList(THIRD_AUTHOR_GLOB_LIST);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" FOURTH_AUTHOR.setIgnoreGlobList(FOURTH_AUTHOR_GLOB_LIST);","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e expectedAuthors \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" expectedAuthors.add(FIRST_AUTHOR);","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" expectedAuthors.add(SECOND_AUTHOR);","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" expectedAuthors.add(THIRD_AUTHOR);","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" expectedAuthors.add(FOURTH_AUTHOR);","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"asdfghjkxd"},"content":" repoDeltaStandaloneConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.setAuthorList(expectedAuthors);","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.addAuthorNamesToAuthorMapEntry(FIRST_AUTHOR, FIRST_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.addAuthorNamesToAuthorMapEntry(FOURTH_AUTHOR, FOURTH_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.setAuthorDisplayName(FIRST_AUTHOR, \"Ahm\");","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.setAuthorDisplayName(SECOND_AUTHOR, \"Cod\");","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.setAuthorDisplayName(THIRD_AUTHOR, \"Jor\");","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.setAuthorDisplayName(FOURTH_AUTHOR, \"Loh\");","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" SECOND_AUTHOR.setEmails(Arrays.asList(\"codeeong@gmail.com\", \"33129797+codeeong@users.noreply.github.com\"));","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" for (Author author : expectedAuthors) {","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.addAuthorEmailsToAuthorMapEntry(author, author.getEmails());","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" repoDeltaStandaloneConfig.setFormats(CONFIG_FORMATS);","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" public void repoConfig_usesStandaloneConfig_success() throws Exception {","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaStandaloneConfig, actualConfig);","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" public void repoConfig_ignoresStandaloneConfig_success() throws Exception {","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e expectedAuthors \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" Author author \u003d new Author(FIRST_AUTHOR);","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" author.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" expectedAuthors.add(author);","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorList(expectedAuthors);","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" expectedConfig.addAuthorNamesToAuthorMapEntry(author, FIRST_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorDisplayName(author, \"Ahm\");","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" expectedConfig.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(CONFIG_FORMATS);","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" expectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(IGNORE_STANDALONE_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e authorConfigs \u003d","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" new AuthorConfigCsvParser(cliArguments.getAuthorConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" RepoConfiguration.merge(actualConfigs, authorConfigs);","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" public void repoConfig_ignoresStandaloneConfigInCli_success() throws Exception {","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" expectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" .addIgnoreStandaloneConfig()","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d RunConfigurationDecider","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" .getRunConfiguration(cliArguments)","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" .getRepoConfigurations();","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" RepoConfiguration.setFormatsToRepoConfigs(actualConfigs, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" cliArguments.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" public void repoConfig_ignoreStandaloneConfigInCli_overrideCsv() throws Exception {","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoBetaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA))","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoDeltaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(IGNORE_STANDALONE_FLAG_OVERRIDE_CSV_TEST)","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" .addIgnoreStandaloneConfig()","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" cliArguments.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" RepoConfiguration repoBetaActualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" RepoConfiguration repoDeltaActualConfig \u003d actualConfigs.get(1);","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoBetaExpectedConfig, repoBetaActualConfig);","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaExpectedConfig, repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" public void repoConfig_ignoreFileSizeLimit_success() throws Exception {","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" expectedConfig.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(CONFIG_FORMATS);","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" expectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" expectedConfig.setFileSizeLimitIgnored(true);","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(IGNORE_FILESIZE_LIMIT_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" public void repoConfig_ignoreFileSizeLimitInCli_overrideCsv() throws Exception {","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoBetaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA))","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFileSizeLimitIgnored(true);","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoDeltaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setFileSizeLimitIgnored(true);","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(IGNORE_FILESIZE_LIMIT_OVERRIDE_CSV_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" .addIgnoreFilesizeLimit()","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" RepoConfiguration.setFileSizeLimitIgnoredToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" cliArguments.isFileSizeLimitIgnored());","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":" RepoConfiguration repoBetaActualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" RepoConfiguration repoDeltaActualConfig \u003d actualConfigs.get(1);","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoBetaExpectedConfig, repoBetaActualConfig);","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaExpectedConfig, repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" public void repoConfig_withoutIgnoreStandaloneConfigInCli_useCsv() throws Exception {","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoBetaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA))","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(IGNORE_STANDALONE_FLAG_OVERRIDE_CSV_TEST).build();","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" cliArguments.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":" RepoConfiguration repoBetaActualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" RepoConfiguration repoDeltaActualConfig \u003d actualConfigs.get(1);","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoBetaExpectedConfig, repoBetaActualConfig);","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaStandaloneConfig, repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":" public void repoConfig_wrongKeywordUseStandaloneConfig_success() throws Exception {","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(IGNORE_STANDALONE_KEYWORD_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaStandaloneConfig, actualConfig);","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":" public void repoConfig_shallowCloning_success() throws Exception {","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" expectedConfig.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(CONFIG_FORMATS);","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":" expectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"-"},"content":" expectedConfig.setIsShallowCloningPerformed(true);","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(SHALLOW_CLONING_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"-"},"content":" public void repoConfig_shallowCloningInCli_success() throws Exception {","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"-"},"content":" expectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"-"},"content":" expectedConfig.setIsShallowCloningPerformed(true);","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"-"},"content":" .addShallowCloning()","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d RunConfigurationDecider","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"-"},"content":" .getRunConfiguration(cliArguments)","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"-"},"content":" .getRepoConfigurations();","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"-"},"content":" RepoConfiguration.setFormatsToRepoConfigs(actualConfigs, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsShallowCloningPerformedToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"-"},"content":" cliArguments.isShallowCloningPerformed());","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"-"},"content":" public void repoConfig_shallowCloningInCli_overrideCsv() throws Exception {","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoBetaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA))","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setIsShallowCloningPerformed(true);","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoDeltaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setIsShallowCloningPerformed(true);","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(SHALLOW_CLONING_FLAG_OVERRIDE_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"-"},"content":" .addShallowCloning()","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsShallowCloningPerformedToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"-"},"content":" cliArguments.isShallowCloningPerformed());","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"-"},"content":" RepoConfiguration repoBetaActualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"-"},"content":" RepoConfiguration repoDeltaActualConfig \u003d actualConfigs.get(1);","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoBetaExpectedConfig, repoBetaActualConfig);","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaExpectedConfig, repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"-"},"content":" public void repoConfig_withoutShallowCloningInInCli_useCsv() throws Exception {","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoBetaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA))","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setIsShallowCloningPerformed(true);","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoDeltaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(SHALLOW_CLONING_FLAG_OVERRIDE_TEST_CONFIG_FILES).build();","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsShallowCloningPerformedToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"-"},"content":" cliArguments.isShallowCloningPerformed());","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"-"},"content":" RepoConfiguration repoBetaActualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"-"},"content":" RepoConfiguration repoDeltaActualConfig \u003d actualConfigs.get(1);","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoBetaExpectedConfig, repoBetaActualConfig);","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaExpectedConfig, repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"-"},"content":" public void repoConfig_findPreviousAuthors_success() throws Exception {","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"-"},"content":" expectedConfig.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(CONFIG_FORMATS);","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"-"},"content":" expectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"-"},"content":" expectedConfig.setIsFindingPreviousAuthorsPerformed(true);","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(FIND_PREVIOUS_AUTHORS_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":504,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":505,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":506,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":507,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":508,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":509,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":510,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":511,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":512,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":513,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":514,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":515,"author":{"gitId":"-"},"content":" public void repoConfig_findPreviousAuthorsInCli_success() throws Exception {","isFullCredit":false},{"lineNumber":516,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":517,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":518,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":519,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":520,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":521,"author":{"gitId":"-"},"content":" expectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":522,"author":{"gitId":"-"},"content":" expectedConfig.setIsFindingPreviousAuthorsPerformed(true);","isFullCredit":false},{"lineNumber":523,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":524,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":525,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":526,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":527,"author":{"gitId":"-"},"content":" .addFindPreviousAuthors()","isFullCredit":false},{"lineNumber":528,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":529,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":530,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d RunConfigurationDecider","isFullCredit":false},{"lineNumber":531,"author":{"gitId":"-"},"content":" .getRunConfiguration(cliArguments)","isFullCredit":false},{"lineNumber":532,"author":{"gitId":"-"},"content":" .getRepoConfigurations();","isFullCredit":false},{"lineNumber":533,"author":{"gitId":"-"},"content":" RepoConfiguration.setFormatsToRepoConfigs(actualConfigs, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":534,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":535,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsFindingPreviousAuthorsPerformedToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":536,"author":{"gitId":"-"},"content":" cliArguments.isFindingPreviousAuthorsPerformed());","isFullCredit":false},{"lineNumber":537,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":538,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":539,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":540,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":541,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":542,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":543,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":544,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":545,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":546,"author":{"gitId":"-"},"content":" public void repoConfig_findPreviousAuthorsInCli_overrideCsv() throws Exception {","isFullCredit":false},{"lineNumber":547,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoBetaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":548,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA))","isFullCredit":false},{"lineNumber":549,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":550,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":551,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":552,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":553,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setIsFindingPreviousAuthorsPerformed(true);","isFullCredit":false},{"lineNumber":554,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoDeltaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":555,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":556,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":557,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":558,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":559,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setIsFindingPreviousAuthorsPerformed(true);","isFullCredit":false},{"lineNumber":560,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":561,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(FIND_PREVIOUS_AUTHORS_FLAG_OVERRIDE_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":562,"author":{"gitId":"-"},"content":" .addShallowCloning()","isFullCredit":false},{"lineNumber":563,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":564,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":565,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":566,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":567,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":568,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsFindingPreviousAuthorsPerformedToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":569,"author":{"gitId":"-"},"content":" cliArguments.isFindingPreviousAuthorsPerformed());","isFullCredit":false},{"lineNumber":570,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":571,"author":{"gitId":"-"},"content":" RepoConfiguration repoBetaActualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":572,"author":{"gitId":"-"},"content":" RepoConfiguration repoDeltaActualConfig \u003d actualConfigs.get(1);","isFullCredit":false},{"lineNumber":573,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":574,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":575,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":576,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":577,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoBetaExpectedConfig, repoBetaActualConfig);","isFullCredit":false},{"lineNumber":578,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaExpectedConfig, repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":579,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":580,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":581,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":582,"author":{"gitId":"-"},"content":" public void repoConfig_withoutFindPreviousAuthorsInCli_useCsv() throws Exception {","isFullCredit":false},{"lineNumber":583,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoBetaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":584,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA))","isFullCredit":false},{"lineNumber":585,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":586,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":587,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":588,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":589,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setIsFindingPreviousAuthorsPerformed(true);","isFullCredit":false},{"lineNumber":590,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoDeltaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":591,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":592,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":593,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":594,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":595,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":596,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(FIND_PREVIOUS_AUTHORS_FLAG_OVERRIDE_TEST_CONFIG_FILES).build();","isFullCredit":false},{"lineNumber":597,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":598,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":599,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":600,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":601,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsFindingPreviousAuthorsPerformedToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":602,"author":{"gitId":"-"},"content":" cliArguments.isFindingPreviousAuthorsPerformed());","isFullCredit":false},{"lineNumber":603,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":604,"author":{"gitId":"-"},"content":" RepoConfiguration repoBetaActualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":605,"author":{"gitId":"-"},"content":" RepoConfiguration repoDeltaActualConfig \u003d actualConfigs.get(1);","isFullCredit":false},{"lineNumber":606,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":607,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":608,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":609,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":610,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoBetaExpectedConfig, repoBetaActualConfig);","isFullCredit":false},{"lineNumber":611,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaExpectedConfig, repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":612,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":613,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":614,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":615,"author":{"gitId":"-"},"content":" public void repoConfig_userEnvironmentCannotRunFindPreviousAuthors_setFindPreviousAuthorsToFalseInAllRepoConfigs()","isFullCredit":false},{"lineNumber":616,"author":{"gitId":"-"},"content":" throws Exception {","isFullCredit":false},{"lineNumber":617,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoBetaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":618,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA))","isFullCredit":false},{"lineNumber":619,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":620,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":621,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setFormats(FileType.convertFormatStringsToFileTypes(CLI_FORMATS));","isFullCredit":false},{"lineNumber":622,"author":{"gitId":"-"},"content":" repoBetaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":623,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration repoDeltaExpectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":624,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":625,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":626,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":627,"author":{"gitId":"-"},"content":" repoDeltaExpectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":628,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":629,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(FIND_PREVIOUS_AUTHORS_FLAG_OVERRIDE_TEST_CONFIG_FILES).build();","isFullCredit":false},{"lineNumber":630,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":631,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":632,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":633,"author":{"gitId":"-"},"content":" RepoConfiguration.setStandaloneConfigIgnoredToRepoConfigs(actualConfigs, true);","isFullCredit":false},{"lineNumber":634,"author":{"gitId":"-"},"content":" RepoConfiguration.setIsFindingPreviousAuthorsPerformedToRepoConfigs(actualConfigs,","isFullCredit":false},{"lineNumber":635,"author":{"gitId":"-"},"content":" cliArguments.isFindingPreviousAuthorsPerformed());","isFullCredit":false},{"lineNumber":636,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":637,"author":{"gitId":"-"},"content":" RepoConfiguration repoBetaActualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":638,"author":{"gitId":"-"},"content":" RepoConfiguration repoDeltaActualConfig \u003d actualConfigs.get(1);","isFullCredit":false},{"lineNumber":639,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":640,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":641,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoBetaActualConfig);","isFullCredit":false},{"lineNumber":642,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":643,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoBetaExpectedConfig, repoBetaActualConfig);","isFullCredit":false},{"lineNumber":644,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(repoDeltaExpectedConfig, repoDeltaActualConfig);","isFullCredit":false},{"lineNumber":645,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":646,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":647,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":648,"author":{"gitId":"-"},"content":" public void repoConfig_withFormats_ignoreCliFormats() throws Exception {","isFullCredit":false},{"lineNumber":649,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":650,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(FORMATS_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":651,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":652,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":653,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":654,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":655,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":656,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":657,"author":{"gitId":"-"},"content":" RepoConfiguration.setFormatsToRepoConfigs(actualConfigs, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":658,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":659,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, actualConfigs.size());","isFullCredit":false},{"lineNumber":660,"author":{"gitId":"-"},"content":" Assertions.assertEquals(CONFIG_FORMATS, actualConfigs.get(0).getFileTypeManager().getFormats());","isFullCredit":false},{"lineNumber":661,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":662,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":663,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":664,"author":{"gitId":"-"},"content":" public void repoConfig_withoutFormats_useCliFormats() throws Exception {","isFullCredit":false},{"lineNumber":665,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":666,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(WITHOUT_FORMATS_TEST_CONFIG_FILES)","isFullCredit":false},{"lineNumber":667,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":668,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":669,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":670,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":671,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":672,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":673,"author":{"gitId":"-"},"content":" RepoConfiguration.setFormatsToRepoConfigs(actualConfigs, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":674,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":675,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, actualConfigs.size());","isFullCredit":false},{"lineNumber":676,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":677,"author":{"gitId":"-"},"content":" List\u003cFileType\u003e actualFormats \u003d actualConfigs.get(0).getFileTypeManager().getFormats();","isFullCredit":false},{"lineNumber":678,"author":{"gitId":"-"},"content":" Assertions.assertEquals(FileType.convertFormatStringsToFileTypes(CLI_FORMATS), actualFormats);","isFullCredit":false},{"lineNumber":679,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":680,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":681,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":682,"author":{"gitId":"-"},"content":" public void repoConfig_withCustomGroups_useCustomGroups() throws Exception {","isFullCredit":false},{"lineNumber":683,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(GROUPS_TEST_CONFIG_FILES).build();","isFullCredit":false},{"lineNumber":684,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":685,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":686,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":687,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":688,"author":{"gitId":"-"},"content":" List\u003cGroupConfiguration\u003e groupConfigs \u003d","isFullCredit":false},{"lineNumber":689,"author":{"gitId":"-"},"content":" new GroupConfigCsvParser(cliArguments.getGroupConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":690,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":691,"author":{"gitId":"-"},"content":" RepoConfiguration.setGroupConfigsToRepos(actualConfigs, groupConfigs);","isFullCredit":false},{"lineNumber":692,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":693,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, actualConfigs.size());","isFullCredit":false},{"lineNumber":694,"author":{"gitId":"-"},"content":" Assertions.assertEquals(FIRST_CONFIG_GROUPS, actualConfigs.get(0).getFileTypeManager().getGroups());","isFullCredit":false},{"lineNumber":695,"author":{"gitId":"-"},"content":" Assertions.assertEquals(SECOND_CONFIG_GROUPS, actualConfigs.get(1).getFileTypeManager().getGroups());","isFullCredit":false},{"lineNumber":696,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":697,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":698,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":699,"author":{"gitId":"-"},"content":" public void repoConfig_withoutFormatsAndCliFormats_useAllFormats() throws Exception {","isFullCredit":false},{"lineNumber":700,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(WITHOUT_FORMATS_TEST_CONFIG_FILES).build();","isFullCredit":false},{"lineNumber":701,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":702,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":703,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":704,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":705,"author":{"gitId":"-"},"content":" RepoConfiguration.setFormatsToRepoConfigs(actualConfigs, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":706,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":707,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, actualConfigs.size());","isFullCredit":false},{"lineNumber":708,"author":{"gitId":"-"},"content":" Assertions.assertEquals(FileTypeTest.NO_SPECIFIED_FORMATS, actualConfigs.get(0).getFileTypeManager()","isFullCredit":false},{"lineNumber":709,"author":{"gitId":"-"},"content":" .getFormats());","isFullCredit":false},{"lineNumber":710,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":711,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":712,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":713,"author":{"gitId":"-"},"content":" public void repoConfig_emptyLocationDifferentBranch_equal() throws Exception {","isFullCredit":false},{"lineNumber":714,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration emptyLocationEmptyBranchRepoConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":715,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(\"\"))","isFullCredit":false},{"lineNumber":716,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"\")","isFullCredit":false},{"lineNumber":717,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":718,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration emptyLocationDefaultBranchRepoConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":719,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(\"\")).build();","isFullCredit":false},{"lineNumber":720,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration emptyLocationWithBranchRepoConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":721,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(\"\"))","isFullCredit":false},{"lineNumber":722,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":723,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":724,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":725,"author":{"gitId":"-"},"content":" Assertions.assertEquals(emptyLocationDefaultBranchRepoConfig, emptyLocationEmptyBranchRepoConfig);","isFullCredit":false},{"lineNumber":726,"author":{"gitId":"-"},"content":" Assertions.assertEquals(emptyLocationWithBranchRepoConfig, emptyLocationEmptyBranchRepoConfig);","isFullCredit":false},{"lineNumber":727,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":728,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":729,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":730,"author":{"gitId":"-"},"content":" public void repoConfig_sameLocationDifferentBranch_notEqual() throws Exception {","isFullCredit":false},{"lineNumber":731,"author":{"gitId":"-"},"content":" RepoConfiguration validLocationValidBranchRepoConfig \u003d","isFullCredit":false},{"lineNumber":732,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":733,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":734,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":735,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":736,"author":{"gitId":"-"},"content":" RepoConfiguration validLocationDefaultBranchRepoConfig \u003d","isFullCredit":false},{"lineNumber":737,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder().location(new RepoLocation(TEST_REPO_DELTA)).build();","isFullCredit":false},{"lineNumber":738,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":739,"author":{"gitId":"-"},"content":" Assertions.assertNotEquals(validLocationDefaultBranchRepoConfig, validLocationValidBranchRepoConfig);","isFullCredit":false},{"lineNumber":740,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":741,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":742,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":743,"author":{"gitId":"-"},"content":" public void repoConfig_overrideStandaloneConfig_success() throws Exception {","isFullCredit":false},{"lineNumber":744,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":745,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":746,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":747,"author":{"gitId":"asdfghjkxd"},"content":" .fileTypeManager(Collections.emptyList())","isFullCredit":false},{"lineNumber":748,"author":{"gitId":"asdfghjkxd"},"content":" .ignoreGlobList(Collections.emptyList())","isFullCredit":false},{"lineNumber":749,"author":{"gitId":"asdfghjkxd"},"content":" .fileSizeLimit(RepoConfiguration.DEFAULT_FILE_SIZE_LIMIT)","isFullCredit":false},{"lineNumber":750,"author":{"gitId":"asdfghjkxd"},"content":" .isStandaloneConfigIgnored(false)","isFullCredit":false},{"lineNumber":751,"author":{"gitId":"asdfghjkxd"},"content":" .isFileSizeLimitIgnored(false)","isFullCredit":false},{"lineNumber":752,"author":{"gitId":"asdfghjkxd"},"content":" .ignoreCommitList(Collections.emptyList())","isFullCredit":false},{"lineNumber":753,"author":{"gitId":"asdfghjkxd"},"content":" .isFormatsOverriding(true)","isFullCredit":false},{"lineNumber":754,"author":{"gitId":"asdfghjkxd"},"content":" .isIgnoreGlobListOverriding(true)","isFullCredit":false},{"lineNumber":755,"author":{"gitId":"asdfghjkxd"},"content":" .isIgnoreCommitListOverriding(true)","isFullCredit":false},{"lineNumber":756,"author":{"gitId":"asdfghjkxd"},"content":" .isFileSizeLimitOverriding(false)","isFullCredit":false},{"lineNumber":757,"author":{"gitId":"asdfghjkxd"},"content":" .isShallowCloningPerformed(false)","isFullCredit":false},{"lineNumber":758,"author":{"gitId":"asdfghjkxd"},"content":" .isFindingPreviousAuthorsPerformed(false)","isFullCredit":false},{"lineNumber":759,"author":{"gitId":"asdfghjkxd"},"content":" .isIgnoredFileAnalysisSkipped(false)","isFullCredit":false},{"lineNumber":760,"author":{"gitId":"asdfghjkxd"},"content":" .ignoredAuthorsList(Arrays.asList(\"lithiumlkid\"))","isFullCredit":false},{"lineNumber":761,"author":{"gitId":"asdfghjkxd"},"content":" .isIgnoredAuthorsListOverriding(true)","isFullCredit":false},{"lineNumber":762,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":763,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":764,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e expectedAuthorList \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":765,"author":{"gitId":"-"},"content":" Author[] authors \u003d new Author[]{FIRST_AUTHOR, SECOND_AUTHOR, THIRD_AUTHOR, FOURTH_AUTHOR};","isFullCredit":false},{"lineNumber":766,"author":{"gitId":"-"},"content":" for (Author author : authors) {","isFullCredit":false},{"lineNumber":767,"author":{"gitId":"-"},"content":" Author expectedAuthor \u003d new Author(author);","isFullCredit":false},{"lineNumber":768,"author":{"gitId":"-"},"content":" List\u003cString\u003e expectedAuthorIgnoreGlobList \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":769,"author":{"gitId":"-"},"content":" expectedAuthorIgnoreGlobList.addAll(author.getIgnoreGlobList());","isFullCredit":false},{"lineNumber":770,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":771,"author":{"gitId":"-"},"content":" // Authors\u0027 original ignoreGlobList contains values from StandaloneConfig repo level, thus need to remove","isFullCredit":false},{"lineNumber":772,"author":{"gitId":"-"},"content":" expectedAuthorIgnoreGlobList.removeAll(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":773,"author":{"gitId":"-"},"content":" expectedAuthor.setIgnoreGlobList(expectedAuthorIgnoreGlobList);","isFullCredit":false},{"lineNumber":774,"author":{"gitId":"-"},"content":" expectedAuthorList.add(expectedAuthor);","isFullCredit":false},{"lineNumber":775,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":776,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorList(expectedAuthorList);","isFullCredit":false},{"lineNumber":777,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorDisplayNameMap(repoDeltaStandaloneConfig.getAuthorDisplayNameMap());","isFullCredit":false},{"lineNumber":778,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorNamesToAuthorMap(repoDeltaStandaloneConfig.getAuthorNamesToAuthorMap());","isFullCredit":false},{"lineNumber":779,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorEmailsToAuthorMap(repoDeltaStandaloneConfig.getAuthorEmailsToAuthorMap());","isFullCredit":false},{"lineNumber":780,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":781,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":782,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(OVERRIDE_STANDALONE_TEST_CONFIG_FILE)","isFullCredit":false},{"lineNumber":783,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":784,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":785,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":786,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":787,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":788,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":789,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":790,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":791,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":792,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":793,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":794,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":795,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":796,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":797,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":798,"author":{"gitId":"-"},"content":" public void repoConfig_minimalStandaloneConfig_fieldsAssignedDefaultValues() throws Exception {","isFullCredit":false},{"lineNumber":799,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":800,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":801,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":802,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":803,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":804,"author":{"gitId":"-"},"content":" Author firstAuthor \u003d new Author(\"bluein-green\");","isFullCredit":false},{"lineNumber":805,"author":{"gitId":"-"},"content":" Author secondAuthor \u003d new Author(\"jylee-git\");","isFullCredit":false},{"lineNumber":806,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e expectedAuthors \u003d Arrays.asList(firstAuthor, secondAuthor);","isFullCredit":false},{"lineNumber":807,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorList(expectedAuthors);","isFullCredit":false},{"lineNumber":808,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":809,"author":{"gitId":"-"},"content":" expectedConfig.setIgnoreGlobList(Collections.emptyList());","isFullCredit":false},{"lineNumber":810,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(Collections.emptyList());","isFullCredit":false},{"lineNumber":811,"author":{"gitId":"-"},"content":" expectedConfig.setIgnoreCommitList(Collections.emptyList());","isFullCredit":false},{"lineNumber":812,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":813,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":814,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":815,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":816,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":817,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":818,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":819,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":820,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":821,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":822,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":823,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":824,"author":{"gitId":"-"},"content":" public void repoConfig_removeIgnoredAuthors_success() throws Exception {","isFullCredit":false},{"lineNumber":825,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e expectedAuthors \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":826,"author":{"gitId":"-"},"content":" Author author \u003d new Author(FIRST_AUTHOR);","isFullCredit":false},{"lineNumber":827,"author":{"gitId":"-"},"content":" author.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":828,"author":{"gitId":"-"},"content":" expectedAuthors.add(author);","isFullCredit":false},{"lineNumber":829,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":830,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":831,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA))","isFullCredit":false},{"lineNumber":832,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":833,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":834,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorList(expectedAuthors);","isFullCredit":false},{"lineNumber":835,"author":{"gitId":"-"},"content":" expectedConfig.addAuthorNamesToAuthorMapEntry(author, FIRST_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":836,"author":{"gitId":"-"},"content":" expectedConfig.setAuthorDisplayName(author, \"Ahm\");","isFullCredit":false},{"lineNumber":837,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":838,"author":{"gitId":"-"},"content":" expectedConfig.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":839,"author":{"gitId":"-"},"content":" expectedConfig.setFormats(CONFIG_FORMATS);","isFullCredit":false},{"lineNumber":840,"author":{"gitId":"-"},"content":" expectedConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":841,"author":{"gitId":"-"},"content":" expectedConfig.setIgnoredAuthorsList(Arrays.asList(\"jordancjq\", \"Eugene Peh\"));","isFullCredit":false},{"lineNumber":842,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":843,"author":{"gitId":"-"},"content":" String formats \u003d String.join(\" \", CLI_FORMATS);","isFullCredit":false},{"lineNumber":844,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(IGNORE_AUTHORS_TEST_CONFIG_FILE)","isFullCredit":false},{"lineNumber":845,"author":{"gitId":"-"},"content":" .addFormats(formats)","isFullCredit":false},{"lineNumber":846,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":847,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":848,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":849,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":850,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":851,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e authorConfigs \u003d","isFullCredit":false},{"lineNumber":852,"author":{"gitId":"-"},"content":" new AuthorConfigCsvParser(cliArguments.getAuthorConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":853,"author":{"gitId":"-"},"content":" RepoConfiguration.merge(actualConfigs, authorConfigs);","isFullCredit":false},{"lineNumber":854,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":855,"author":{"gitId":"-"},"content":" RepoConfiguration actualConfig \u003d actualConfigs.get(0);","isFullCredit":false},{"lineNumber":856,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(actualConfig);","isFullCredit":false},{"lineNumber":857,"author":{"gitId":"-"},"content":" reportGenerator.updateRepoConfig(actualConfig);","isFullCredit":false},{"lineNumber":858,"author":{"gitId":"-"},"content":" Method updateAuthorList \u003d ReportGenerator.class.getDeclaredMethod(\"updateAuthorList\", RepoConfiguration.class);","isFullCredit":false},{"lineNumber":859,"author":{"gitId":"-"},"content":" updateAuthorList.setAccessible(true);","isFullCredit":false},{"lineNumber":860,"author":{"gitId":"-"},"content":" updateAuthorList.invoke(reportGenerator, actualConfig);","isFullCredit":false},{"lineNumber":861,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":862,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfig, actualConfig);","isFullCredit":false},{"lineNumber":863,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":864,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":865,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":866,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_displayName_success() throws Exception {","isFullCredit":false},{"lineNumber":867,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":868,"author":{"gitId":"asdfghjkxd"},"content":" .displayName(\"CS3281\")","isFullCredit":false},{"lineNumber":869,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":870,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":871,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":872,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":873,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(actualConfig.getDisplayName(), \"CS3281\");","isFullCredit":false},{"lineNumber":874,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":875,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":876,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":877,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_outputFolderName_success() throws Exception {","isFullCredit":false},{"lineNumber":878,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":879,"author":{"gitId":"asdfghjkxd"},"content":" .outputFolderName(\"CS3281 Folder\")","isFullCredit":false},{"lineNumber":880,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":881,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":882,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":883,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":884,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(actualConfig.getOutputFolderName(), \"CS3281 Folder\");","isFullCredit":false},{"lineNumber":885,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":886,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":887,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":888,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_repoFolderName_success() throws Exception {","isFullCredit":false},{"lineNumber":889,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":890,"author":{"gitId":"asdfghjkxd"},"content":" .repoFolderName(\"CS3281 Folder\")","isFullCredit":false},{"lineNumber":891,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":892,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":893,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":894,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":895,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(actualConfig.getRepoFolderName(), \"CS3281 Folder\");","isFullCredit":false},{"lineNumber":896,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":897,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":898,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":899,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_zoneID_success() throws Exception {","isFullCredit":false},{"lineNumber":900,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":901,"author":{"gitId":"asdfghjkxd"},"content":" .zoneId(ZoneId.systemDefault())","isFullCredit":false},{"lineNumber":902,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":903,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":904,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":905,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":906,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(actualConfig.getZoneId(), ZoneId.systemDefault());","isFullCredit":false},{"lineNumber":907,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":908,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":909,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":910,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_sinceDate_success() throws Exception {","isFullCredit":false},{"lineNumber":911,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":912,"author":{"gitId":"asdfghjkxd"},"content":" .sinceDate(LocalDateTime.of(2024, 1, 1, 12, 0, 0))","isFullCredit":false},{"lineNumber":913,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":914,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":915,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":916,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":917,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(actualConfig.getSinceDate(),","isFullCredit":false},{"lineNumber":918,"author":{"gitId":"asdfghjkxd"},"content":" LocalDateTime.of(2024, 1, 1, 12, 0, 0));","isFullCredit":false},{"lineNumber":919,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":920,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":921,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":922,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_untilDate_success() throws Exception {","isFullCredit":false},{"lineNumber":923,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":924,"author":{"gitId":"asdfghjkxd"},"content":" .untilDate(LocalDateTime.of(2024, 1, 1, 12, 0, 0))","isFullCredit":false},{"lineNumber":925,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":926,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":927,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":928,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":929,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(actualConfig.getUntilDate(),","isFullCredit":false},{"lineNumber":930,"author":{"gitId":"asdfghjkxd"},"content":" LocalDateTime.of(2024, 1, 1, 12, 0, 0));","isFullCredit":false},{"lineNumber":931,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":932,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":933,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":934,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_authorConfig_success() throws Exception {","isFullCredit":false},{"lineNumber":935,"author":{"gitId":"asdfghjkxd"},"content":" RepoLocation loc \u003d new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG);","isFullCredit":false},{"lineNumber":936,"author":{"gitId":"asdfghjkxd"},"content":" String branch \u003d \"master\";","isFullCredit":false},{"lineNumber":937,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":938,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":939,"author":{"gitId":"asdfghjkxd"},"content":" .authorConfig(new AuthorConfiguration(loc, branch))","isFullCredit":false},{"lineNumber":940,"author":{"gitId":"asdfghjkxd"},"content":" .location(loc)","isFullCredit":false},{"lineNumber":941,"author":{"gitId":"asdfghjkxd"},"content":" .branch(branch)","isFullCredit":false},{"lineNumber":942,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":943,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":944,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(actualConfig.getAuthorConfig(),","isFullCredit":false},{"lineNumber":945,"author":{"gitId":"asdfghjkxd"},"content":" new AuthorConfiguration(loc, branch));","isFullCredit":false},{"lineNumber":946,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":947,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":948,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":949,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_isLastModifiedDateIncluded_success() throws Exception {","isFullCredit":false},{"lineNumber":950,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":951,"author":{"gitId":"asdfghjkxd"},"content":" .isLastModifiedDateIncluded(true)","isFullCredit":false},{"lineNumber":952,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_MINIMAL_STANDALONE_CONFIG))","isFullCredit":false},{"lineNumber":953,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":954,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":955,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":956,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertTrue(actualConfig.isLastModifiedDateIncluded());","isFullCredit":false},{"lineNumber":957,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":958,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":959,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":960,"author":{"gitId":"asdfghjkxd"},"content":" public void repoBuilder_buildWithInvalid_failure() {","isFullCredit":false},{"lineNumber":961,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertThrows(ConfigurationBuildException.class, () -\u003e new RepoConfiguration.Builder().build());","isFullCredit":false},{"lineNumber":962,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":963,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":244,"-":719}},{"path":"src/test/java/reposense/model/RepoLocationTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.model;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.model.RepoLocation.UNSUPPORTED_DOMAIN_NAME;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import static reposense.model.RepoLocation.getDomainNameFromDomain;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import static reposense.model.RepoLocation.isLocalRepo;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assumptions;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidLocationException;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.util.AssertUtil;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import reposense.util.SystemUtil;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"public class RepoLocationTest {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_VALID_WITHOUT_DOT_GIT_ONE \u003d \"repo\";","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_VALID_WITHOUT_DOT_GIT_TWO \u003d \"../path/to/repo\";","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_VALID_WITHOUT_DOT_GIT_THREE \u003d \"/path/to/repo\";","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_VALID_WITH_DOT_GIT_ONE \u003d \"path/to/repo/.git\";","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_VALID_WITH_DOT_GIT_TWO \u003d \"file://path/to/repo.git\";","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_FILE_URL_ONE \u003d \"file://path/to/repo\";","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_FILE_URL_TWO \u003d \"file:///path/to/repo\";","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_WINDOWS_VALID_WITHOUT_DOT_GIT_ONE \u003d \"path\\\\to\\\\repo\\\\\";","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_WINDOWS_VALID_WITHOUT_DOT_GIT_TWO \u003d \"..\\\\path\\\\to\\\\repo\";","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_WINDOWS_VALID_WITH_DOT_GIT_ONE \u003d \"path\\\\to\\\\repo\\\\.git\";","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_WINDOWS_DISK_DRIVE \u003d \"C:\\\\path\\\\to\\\\repo.git\";","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_WINDOWS_VALID_MIXED_ONE \u003d \"..\\\\path/to\\\\repo\";","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_WINDOWS_VALID_MIXED_TWO \u003d \"file://path\\\\to\\\\repo.git\";","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static final String LOCAL_REPO_WINDOWS_DISK_DRIVE_MIXED \u003d \"C:\\\\path/to/repo.git\";","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private static final String EXPECTED_REPO_NAME \u003d \"repo\";","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private static final String EXPECTED_ORGANIZATION \u003d \"path-to\";","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final String EXPECTED_DOMAIN_NAME \u003d \"github\";","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private static final String EXPECTED_UNRECOGNISED_DOMAIN_NAME \u003d UNSUPPORTED_DOMAIN_NAME;","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" public void repoLocation_parseEmptyString_success() throws Exception {","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" RepoLocation repoLocation \u003d new RepoLocation(\"\");","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" public void isLocalRepo_validLocalRepos_success() throws Exception {","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" Assertions.assertTrue(isLocalRepo(LOCAL_REPO_VALID_WITH_DOT_GIT_ONE));","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" Assertions.assertTrue(isLocalRepo(LOCAL_REPO_WINDOWS_VALID_MIXED_ONE));","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" Assertions.assertTrue(isLocalRepo(\"./abc:def\"));","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" public void isLocalRepo_remoteRepos_returnsFalse() throws Exception {","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" Assertions.assertFalse(isLocalRepo(\"https://github.com/reposense/RepoSense.git/\"));","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" Assertions.assertFalse(isLocalRepo(\"git@github.com:reposense/RepoSense.git/\"));","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" public void repoLocation_parseLocalRepoLocation_success() throws Exception {","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" // local paths not containing \".git\" should be valid","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_VALID_WITHOUT_DOT_GIT_ONE,","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"\", EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" // relative pathing should be considered part of the \u0027organization\u0027 for differentiation","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_VALID_WITHOUT_DOT_GIT_TWO,","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"..-\" + EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_VALID_WITHOUT_DOT_GIT_THREE,","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"-\" + EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" // local paths containing \".git\" should also be valid","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_VALID_WITH_DOT_GIT_ONE,","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_VALID_WITH_DOT_GIT_TWO,","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" // file-type url protocol (file://) is accepted by git clone","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_FILE_URL_ONE,","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_FILE_URL_TWO,","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"-\" + EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" public void repoLocation_parseWindowsLocalRepoLocation_success() throws Exception {","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" Assumptions.assumeTrue(SystemUtil.isWindows());","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" // repeated tests but with windows file separators","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_WINDOWS_VALID_WITHOUT_DOT_GIT_ONE,","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_WINDOWS_VALID_WITHOUT_DOT_GIT_TWO,","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"..-\" + EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_WINDOWS_VALID_WITH_DOT_GIT_ONE,","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_WINDOWS_DISK_DRIVE,","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"C--\" + EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_WINDOWS_VALID_MIXED_ONE,","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"..-\" + EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_WINDOWS_VALID_MIXED_TWO,","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" assertParsableLocation(LOCAL_REPO_WINDOWS_DISK_DRIVE_MIXED,","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"C--\" + EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" public void repoLocation_parseValidRemoteRepoUrl_success() throws Exception {","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" // valid url without specifying branch","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense/testrepo-Beta.git\",","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" \"testrepo-Beta\", \"reposense\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense/testrepo-Delta.git\",","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" \"testrepo-Delta\", \"reposense\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://gitlab.com/reposense/RepoSense.git\",","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" \"RepoSense\", \"reposense\", \"gitlab\");","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense.git\",","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" \"reposense\", \"\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" // valid url to parse for obtaining repo and organization, just not a valid git clone target","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense/.git\",","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" \"reposense\", \"\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" // valid url from other domains","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://bitbucket.org/reposense/RepoSense.git\",","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" \"RepoSense\", \"reposense\", \"bitbucket\");","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" // valid url from unsupported domain with longer path to git directory than the standard organization/reponame","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://opensource.ncsa.illinois.edu/bitbucket/scm/u3d/3dutilities.git\",","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" \"3dutilities\", \"bitbucket-scm-u3d\", EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" // treated as valid but will be caught when git clone fails","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense/testrepo-Beta/tree/add-config-json\",","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" \"add-config-json\", \"reposense-testrepo-Beta-tree\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense/testrepo-Beta.git/tree/add-config-json\",","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" \"add-config-json\", \"reposense-testrepo-Beta.git-tree\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" // URLs without \".git\" should be accepted as git clone works even without it","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense\",","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" \"reposense\", \"\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense/RepoSense\",","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" \"RepoSense\", \"reposense\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" // Test against other types of URL protocols that are valid for git clone","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" assertParsableLocation(\"ssh://git@github.com/path/to/repo.git/\",","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" assertParsableLocation(\"git://github.com/path/to/repo.git\",","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://host.xz:9000/path/to/repo.git\",","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" // Test against the conventional ssh protocol used for GitHub, e.g. git@github.com:reposense/RepoSense.git","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" assertParsableLocation(\"repo@organization.com:path/to/repo.git/\",","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" assertParsableLocation(\"git@github.com:reposense/RepoSense.git\",","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" \"RepoSense\", \"reposense\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" public void repoLocation_parseNormalizableRepoLocations_success() throws Exception {","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" assertParsableLocation(\"https://github.com/reposense/redundant/directories/../../RepoSense.git\",","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" \"RepoSense\", \"reposense\", EXPECTED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" assertParsableLocation(\"/path/with/redundant/directories/../.././../to/repo\",","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"-\" + EXPECTED_ORGANIZATION, EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" // Tests if there is an additional \u0027../\u0027 it is not consumed by accident","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" assertParsableLocation(\"path/with/redundant/directories/../../../../../to/repo\",","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" EXPECTED_REPO_NAME, \"..-to\", EXPECTED_UNRECOGNISED_DOMAIN_NAME);","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" public void repoLocation_parseInvalidRemoteRepo_throwsInvalidLocationException() throws Exception {","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" // Invalid URL protocol","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" assertUnparsableLocation(\"ttp://github.com/reposense.RepoSense.git\");","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" assertUnparsableLocation(\"not-valid-protocol://abc.com/reposense/RepoSense.git\");","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" // URL contains illegal characters","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" assertUnparsableLocation(\"https://github.com/contains-illegal-chars/^\\\\/\");","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" public void getDomainNameFromMatcher_parseValidDomain_success() throws Exception {","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"github\", getDomainNameFromDomain(\"www.github.com\"));","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"github\", getDomainNameFromDomain(\"github.com\"));","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"gitlab\", getDomainNameFromDomain(\"www.gitlab.org\"));","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"bitbucket\", getDomainNameFromDomain(\"ww2.bitbucket.com\"));","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" // valid but unsupported","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" Assertions.assertEquals(UNSUPPORTED_DOMAIN_NAME, getDomainNameFromDomain(\"opensource.ncsa.illinois.edu\"));","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" public void getDomainNameFromMatcher_parseInvalidDomain_throwsInvalidLocationException() throws Exception {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" // no top level domain specified","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" AssertUtil.assertThrows(InvalidLocationException.class, () -\u003e getDomainNameFromDomain(\"www.github\"));","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" AssertUtil.assertThrows(InvalidLocationException.class, () -\u003e getDomainNameFromDomain(\"github\"));","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" // has a dot but still no top level domain specified","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" AssertUtil.assertThrows(InvalidLocationException.class, () -\u003e getDomainNameFromDomain(\"github.\"));","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" * Compares the information of {@code rawLocation} parsed by the RepoLocation model with {@code expectedRepoName}","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" * and {@code expectedOrganization}.","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" public void assertParsableLocation(String rawLocation, String expectedRepoName,","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" String expectedOrganization, String expectedDomainName) throws Exception {","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" RepoLocation repoLocation \u003d new RepoLocation(rawLocation);","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedRepoName, repoLocation.getRepoName());","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedOrganization, repoLocation.getOrganization());","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedDomainName, repoLocation.getDomainName());","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" private void assertUnparsableLocation(String rawLocation) {","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" AssertUtil.assertThrows(InvalidLocationException.class, () -\u003e new RepoLocation(rawLocation));","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":207}},{"path":"src/test/java/reposense/parser/ArgsParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.apache.tools.ant.types.Commandline.translateCommandline;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.io.File;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.io.IOException;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.time.Month;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import java.time.format.DateTimeFormatter;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.AfterEach;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeEach;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import net.sourceforge.argparse4j.helper.HelpScreenException;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import reposense.model.CliArguments;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import reposense.model.FileType;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"import reposense.model.FileTypeTest;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"import reposense.model.RunConfigurationDecider;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.ParseException;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.types.SinceDateArgumentType;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"import reposense.util.InputBuilder;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"import reposense.util.TestUtil;","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"import reposense.util.TimeUtil;","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"public class ArgsParserTest {","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private static final Path PROJECT_DIRECTORY \u003d Paths.get(System.getProperty(\"user.dir\"));","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" private static final Path CONFIG_DIRECTORY \u003d Paths.get(System.getProperty(\"user.dir\")","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" + File.separator + \"config\" + File.separator);","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" private static final Path CONFIG_FOLDER_ABSOLUTE \u003d loadResource(ArgsParserTest.class, \"cli_location_test\");","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" private static final Path OUTPUT_DIRECTORY_ABSOLUTE \u003d loadResource(ArgsParserTest.class, \"output\");","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" private static final Path CONFIG_FOLDER_RELATIVE \u003d PROJECT_DIRECTORY.relativize(CONFIG_FOLDER_ABSOLUTE);","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" private static final Path OUTPUT_DIRECTORY_RELATIVE \u003d PROJECT_DIRECTORY.relativize(OUTPUT_DIRECTORY_ABSOLUTE);","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_CSV_FILE \u003d","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" CONFIG_FOLDER_ABSOLUTE.resolve(RepoConfigCsvParser.REPO_CONFIG_FILENAME);","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_CSV_FILE \u003d","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" CONFIG_FOLDER_ABSOLUTE.resolve(AuthorConfigCsvParser.AUTHOR_CONFIG_FILENAME);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" private static final String NONEXISTENT_DIRECTORY \u003d \"some_non_existent_dir/\";","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" private static final InputBuilder DEFAULT_INPUT_BUILDER \u003d new InputBuilder();","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_REPOSENSE \u003d \"https://github.com/reposense/RepoSense.git\";","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_BETA \u003d \"https://github.com/reposense/testrepo-Beta.git\";","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_CHARLIE \u003d \"https://github.com/reposense/testrepo-Charlie.git\";","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_DELTA \u003d \"https://github.com/reposense/testrepo-Delta.git\";","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" private static final String DEFAULT_TIME_ZONE_STRING \u003d \"Asia/Singapore\";","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" private static final ZoneId DEFAULT_TIME_ZONE_ID \u003d TestUtil.getZoneId(DEFAULT_TIME_ZONE_STRING);","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" @BeforeEach","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" public void before() {","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" DEFAULT_INPUT_BUILDER.reset().addConfig(CONFIG_FOLDER_ABSOLUTE);","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" @AfterEach","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" public void after() {","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" FileUtil.deleteDirectory(PROJECT_DIRECTORY.resolve(NONEXISTENT_DIRECTORY).toString());","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" } catch (IOException e) {","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" System.err.println(e.getMessage());","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" public void parse_d1CorrectTimeZone_success() throws Exception {","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE)","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" .addSinceDate(SinceDateArgumentType.FIRST_COMMIT_DATE_SHORTHAND)","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" .addUntilDate(\"30/11/2017\")","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING)","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" LocalDateTime expectedSinceDate \u003d TimeUtil.getArbitraryFirstCommitDateConverted(DEFAULT_TIME_ZONE_ID);","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" LocalDateTime expectedUntilDate \u003d TestUtil.getUntilDate(2017, Month.NOVEMBER.getValue(), 30);","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedSinceDate, cliArguments.getSinceDate());","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedUntilDate, cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" Assertions.assertEquals(DEFAULT_TIME_ZONE_ID, cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" public void parse_allCorrectInputs_success() throws Exception {","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE)","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" .addOutput(OUTPUT_DIRECTORY_ABSOLUTE)","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" .addSinceDate(\"01/07/2017\")","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" .addUntilDate(\"30/11/2017\")","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" .addFormats(\"java adoc html css js\")","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" .addIgnoreStandaloneConfig()","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" .addIgnoreFilesizeLimit()","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" .addView()","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING)","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" OUTPUT_DIRECTORY_ABSOLUTE.resolve(ArgsParser.DEFAULT_REPORT_NAME), cliArguments.getOutputFilePath()));","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" LocalDateTime expectedSinceDate \u003d TestUtil.getSinceDate(2017, Month.JULY.getValue(), 1);","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" LocalDateTime expectedUntilDate \u003d TestUtil.getUntilDate(2017, Month.NOVEMBER.getValue(), 30);","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedSinceDate, cliArguments.getSinceDate());","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedUntilDate, cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" List\u003cFileType\u003e expectedFormats \u003d FileType.convertFormatStringsToFileTypes(","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" Arrays.asList(\"java\", \"adoc\", \"html\", \"css\", \"js\"));","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedFormats, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isFileSizeLimitIgnored());","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" Assertions.assertEquals(DEFAULT_TIME_ZONE_ID, cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" public void parse_help_throwsHelpScreenException() {","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" String input \u003d \"--help\";","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" Assertions.assertThrows(HelpScreenException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" public void parse_allCorrectInputsAlias_success() throws Exception {","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" String input \u003d String.format(","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" \"-c \\\"%s\\\" -o \\\"%s\\\" -s 01/07/2017 -u 30/11/2017 -f java adoc html css js -i -I -v -t %s\",","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" CONFIG_FOLDER_ABSOLUTE, OUTPUT_DIRECTORY_ABSOLUTE, DEFAULT_TIME_ZONE_STRING);","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" OUTPUT_DIRECTORY_ABSOLUTE.resolve(ArgsParser.DEFAULT_REPORT_NAME), cliArguments.getOutputFilePath()));","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" LocalDateTime expectedSinceDate \u003d TestUtil.getSinceDate(2017, Month.JULY.getValue(), 1);","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" LocalDateTime expectedUntilDate \u003d TestUtil.getUntilDate(2017, Month.NOVEMBER.getValue(), 30);","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedSinceDate, cliArguments.getSinceDate());","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedUntilDate, cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" List\u003cFileType\u003e expectedFormats \u003d FileType.convertFormatStringsToFileTypes(","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" Arrays.asList(\"java\", \"adoc\", \"html\", \"css\", \"js\"));","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedFormats, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isFileSizeLimitIgnored());","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" Assertions.assertEquals(DEFAULT_TIME_ZONE_ID, cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" public void parse_withExtraWhitespaces_success() throws Exception {","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE).addWhiteSpace(5)","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" .addOutput(OUTPUT_DIRECTORY_ABSOLUTE).addWhiteSpace(4)","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" .addSinceDate(\"01/07/2017\").addWhiteSpace(3)","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" .addUntilDate(\"30/11/2017\").addWhiteSpace(6)","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" .addFormats(\"java adoc html css js \")","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" .addIgnoreStandaloneConfig().addWhiteSpace(1)","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" .addIgnoreFilesizeLimit().addWhiteSpace(2)","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" .addView().addWhiteSpace(4)","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING).addWhiteSpace(5)","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" OUTPUT_DIRECTORY_ABSOLUTE.resolve(ArgsParser.DEFAULT_REPORT_NAME), cliArguments.getOutputFilePath()));","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" LocalDateTime expectedSinceDate \u003d TestUtil.getSinceDate(2017, Month.JULY.getValue(), 1);","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" LocalDateTime expectedUntilDate \u003d TestUtil.getUntilDate(2017, Month.NOVEMBER.getValue(), 30);","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedSinceDate, cliArguments.getSinceDate());","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedUntilDate, cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" List\u003cFileType\u003e expectedFormats \u003d FileType.convertFormatStringsToFileTypes(Arrays.asList(","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" \"java\", \"adoc\", \"html\", \"css\", \"js\"));","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedFormats, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isFileSizeLimitIgnored());","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" Assertions.assertEquals(DEFAULT_TIME_ZONE_ID, cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" public void parse_configFolderOnly_success() throws Exception {","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE).build();","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" // Optional arguments have default values","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" assertDateDiffOneMonth(cliArguments.getSinceDate(), cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" assertDateDiffEndOfDay(cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" Assertions.assertEquals(ArgsParser.DEFAULT_REPORT_NAME,","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" cliArguments.getOutputFilePath().getFileName().toString());","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" Assertions.assertEquals(FileTypeTest.NO_SPECIFIED_FORMATS, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" Assertions.assertFalse(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_RELATIVE).build();","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" // Optional arguments have default values","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" assertDateDiffOneMonth(cliArguments.getSinceDate(), cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" assertDateDiffEndOfDay(cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" Assertions.assertEquals(ArgsParser.DEFAULT_REPORT_NAME,","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" cliArguments.getOutputFilePath().getFileName().toString());","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" Assertions.assertEquals(FileTypeTest.NO_SPECIFIED_FORMATS, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" Assertions.assertFalse(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" Assertions.assertEquals(ZoneId.systemDefault(), cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" public void parse_viewOnly_success() throws Exception {","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addView(OUTPUT_DIRECTORY_ABSOLUTE).build();","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" OUTPUT_DIRECTORY_ABSOLUTE, cliArguments.getReportDirectoryPath()));","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" public void parse_withIgnore_success() throws Exception {","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":" .addIgnoreStandaloneConfig()","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" String inputWithAlias \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" .add(\"-i\")","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" CliArguments cliArgumentsWithAlias \u003d ArgsParser.parse(translateCommandline(inputWithAlias));","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArgumentsWithAlias.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.equals(cliArgumentsWithAlias));","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" Assertions.assertEquals(cliArguments, cliArgumentsWithAlias);","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" public void parse_withoutIgnore_success() throws Exception {","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA).build();","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" Assertions.assertFalse(cliArguments.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" public void parse_viewOnlyWithoutArgs_returnsConfigCliArguments() throws Exception {","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addView().build();","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" Assertions.assertEquals(CONFIG_DIRECTORY.toString(), (","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" cliArguments).getConfigFolderPath().toString());","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" public void parse_configFolderAndOutputDirectory_success() throws Exception {","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" Path expectedRelativeOutputDirectoryPath \u003d OUTPUT_DIRECTORY_RELATIVE.resolve(ArgsParser.DEFAULT_REPORT_NAME);","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" Path expectedAbsoluteOutputDirectoryPath \u003d OUTPUT_DIRECTORY_ABSOLUTE.resolve(ArgsParser.DEFAULT_REPORT_NAME);","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE)","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" .addOutput(OUTPUT_DIRECTORY_RELATIVE)","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(expectedRelativeOutputDirectoryPath, cliArguments.getOutputFilePath()));","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":" input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_RELATIVE)","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" .addOutput(OUTPUT_DIRECTORY_ABSOLUTE)","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(expectedAbsoluteOutputDirectoryPath, cliArguments.getOutputFilePath()));","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" public void parse_configFolderAndViewWithouthArgs_returnsConfigCliArguments() throws Exception {","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE)","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" .addView()","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":" input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_RELATIVE)","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":" .addView()","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":" public void parse_configFolderAndViewWithArgs_returnsConfigCliArguments() throws Exception {","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE)","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" .addView(OUTPUT_DIRECTORY_ABSOLUTE)","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":" REPO_CONFIG_CSV_FILE, cliArguments.getRepoConfigFilePath()));","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_CSV_FILE, cliArguments.getAuthorConfigFilePath()));","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" public void sinceDate_correctFormat_success() throws Exception {","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":" .addSinceDate(\"01/07/2017\")","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING)","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"-"},"content":" LocalDateTime expectedSinceDate \u003d TestUtil.getSinceDate(2017, Month.JULY.getValue(), 1);","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedSinceDate, cliArguments.getSinceDate());","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":" public void untilDate_correctFormat_success() throws Exception {","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":" .addUntilDate(\"30/11/2017\")","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING)","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" LocalDateTime expectedUntilDate \u003d TestUtil.getUntilDate(2017, Month.NOVEMBER.getValue(), 30);","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedUntilDate, cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" public void sinceDate_withExtraDate_success() throws Exception {","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"-"},"content":" .addSinceDate(\"\\\"01/07/2017 01/07/2018\\\"\")","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING)","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":" LocalDateTime expectedSinceDate \u003d TestUtil.getSinceDate(2017, Month.JULY.getValue(), 1);","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedSinceDate, cliArguments.getSinceDate());","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"-"},"content":" public void untilDate_withExtraTime_success() throws Exception {","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"-"},"content":" .addUntilDate(\"\\\"30/11/2017 10:10:10\\\"\")","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING)","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"-"},"content":" LocalDateTime expectedUntilDate \u003d TestUtil.getUntilDate(2017, Month.NOVEMBER.getValue(), 30);","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedUntilDate, cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":393,"author":{"gitId":"-"},"content":" public void period_inDaysWithSinceDate_success() throws Exception {","isFullCredit":false},{"lineNumber":394,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER","isFullCredit":false},{"lineNumber":395,"author":{"gitId":"-"},"content":" .addSinceDate(\"01/07/2017\")","isFullCredit":false},{"lineNumber":396,"author":{"gitId":"-"},"content":" .addPeriod(\"2d\")","isFullCredit":false},{"lineNumber":397,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING)","isFullCredit":false},{"lineNumber":398,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":399,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":400,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":401,"author":{"gitId":"-"},"content":" LocalDateTime expectedUntilDate \u003d TestUtil.getUntilDate(2017, Month.JULY.getValue(), 3);","isFullCredit":false},{"lineNumber":402,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedUntilDate, cliArguments.getUntilDate());","isFullCredit":false},{"lineNumber":403,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":404,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":405,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":406,"author":{"gitId":"-"},"content":" public void period_inWeeksWithUntilDate_success() throws Exception {","isFullCredit":false},{"lineNumber":407,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER","isFullCredit":false},{"lineNumber":408,"author":{"gitId":"-"},"content":" .addUntilDate(\"14/07/2017\")","isFullCredit":false},{"lineNumber":409,"author":{"gitId":"-"},"content":" .addTimezone(DEFAULT_TIME_ZONE_STRING)","isFullCredit":false},{"lineNumber":410,"author":{"gitId":"-"},"content":" .addPeriod(\"2w\")","isFullCredit":false},{"lineNumber":411,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":412,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":413,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":414,"author":{"gitId":"-"},"content":" LocalDateTime expectedSinceDate \u003d TestUtil.getSinceDate(2017, Month.JUNE.getValue(), 30);","isFullCredit":false},{"lineNumber":415,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedSinceDate, cliArguments.getSinceDate());","isFullCredit":false},{"lineNumber":416,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":417,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":418,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":419,"author":{"gitId":"-"},"content":" public void formats_inAlphanumeric_success() throws Exception {","isFullCredit":false},{"lineNumber":420,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addFormats(\"java js css 7z\").build();","isFullCredit":false},{"lineNumber":421,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":422,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":423,"author":{"gitId":"-"},"content":" List\u003cFileType\u003e expectedFormats \u003d FileType.convertFormatStringsToFileTypes(","isFullCredit":false},{"lineNumber":424,"author":{"gitId":"-"},"content":" Arrays.asList(\"java\", \"js\", \"css\", \"7z\"));","isFullCredit":false},{"lineNumber":425,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedFormats, cliArguments.getFormats());","isFullCredit":false},{"lineNumber":426,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":427,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":428,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":429,"author":{"gitId":"-"},"content":" public void numCloningThreads_default_success() throws Exception {","isFullCredit":false},{"lineNumber":430,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.build();","isFullCredit":false},{"lineNumber":431,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":432,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":433,"author":{"gitId":"-"},"content":" int expectedNumThreads \u003d ArgsParser.DEFAULT_NUM_CLONING_THREADS;","isFullCredit":false},{"lineNumber":434,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedNumThreads, cliArguments.getNumCloningThreads());","isFullCredit":false},{"lineNumber":435,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":436,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":437,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":438,"author":{"gitId":"-"},"content":" public void numCloningThreads_isNumeric_success() throws Exception {","isFullCredit":false},{"lineNumber":439,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER","isFullCredit":false},{"lineNumber":440,"author":{"gitId":"-"},"content":" .addNumCloningThreads(2)","isFullCredit":false},{"lineNumber":441,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":442,"author":{"gitId":"-"},"content":" System.out.println(input);","isFullCredit":false},{"lineNumber":443,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":444,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":445,"author":{"gitId":"-"},"content":" int expectedNumThreads \u003d 2;","isFullCredit":false},{"lineNumber":446,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedNumThreads, cliArguments.getNumCloningThreads());","isFullCredit":false},{"lineNumber":447,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":448,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":449,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":450,"author":{"gitId":"-"},"content":" public void numAnalysisThreads_default_success() throws Exception {","isFullCredit":false},{"lineNumber":451,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.build();","isFullCredit":false},{"lineNumber":452,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":453,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":454,"author":{"gitId":"-"},"content":" int expectedNumThreads \u003d ArgsParser.DEFAULT_NUM_ANALYSIS_THREADS;","isFullCredit":false},{"lineNumber":455,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedNumThreads, cliArguments.getNumAnalysisThreads());","isFullCredit":false},{"lineNumber":456,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":457,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":458,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":459,"author":{"gitId":"-"},"content":" public void numAnalysisThreads_isNumeric_success() throws Exception {","isFullCredit":false},{"lineNumber":460,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER","isFullCredit":false},{"lineNumber":461,"author":{"gitId":"-"},"content":" .addNumAnalysisThreads(2)","isFullCredit":false},{"lineNumber":462,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":463,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":464,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":465,"author":{"gitId":"-"},"content":" int expectedNumThreads \u003d 2;","isFullCredit":false},{"lineNumber":466,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedNumThreads, cliArguments.getNumAnalysisThreads());","isFullCredit":false},{"lineNumber":467,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":468,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":469,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":470,"author":{"gitId":"-"},"content":" public void parse_validGitRepoLocations_repoConfigurationListCorrectSize() throws Exception {","isFullCredit":false},{"lineNumber":471,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA).build();","isFullCredit":false},{"lineNumber":472,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":473,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e repoConfigs \u003d RunConfigurationDecider","isFullCredit":false},{"lineNumber":474,"author":{"gitId":"-"},"content":" .getRunConfiguration(cliArguments)","isFullCredit":false},{"lineNumber":475,"author":{"gitId":"-"},"content":" .getRepoConfigurations();","isFullCredit":false},{"lineNumber":476,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, repoConfigs.size());","isFullCredit":false},{"lineNumber":477,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":478,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":479,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":480,"author":{"gitId":"-"},"content":" public void parse_repoLocationsAndView_returnsLocationCliArguments() throws Exception {","isFullCredit":false},{"lineNumber":481,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":482,"author":{"gitId":"-"},"content":" .addView()","isFullCredit":false},{"lineNumber":483,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":484,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":485,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":486,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":487,"author":{"gitId":"-"},"content":" List\u003cString\u003e expectedLocations \u003d Arrays.asList(TEST_REPO_REPOSENSE, TEST_REPO_DELTA);","isFullCredit":false},{"lineNumber":488,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedLocations, cliArguments.getLocations());","isFullCredit":false},{"lineNumber":489,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":490,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":491,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":492,"author":{"gitId":"-"},"content":" public void parse_repoLocationsOnly_success() throws Exception {","isFullCredit":false},{"lineNumber":493,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA).build();","isFullCredit":false},{"lineNumber":494,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":495,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":496,"author":{"gitId":"-"},"content":" Assertions.assertFalse(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":497,"author":{"gitId":"-"},"content":" List\u003cString\u003e expectedLocations \u003d Arrays.asList(TEST_REPO_REPOSENSE, TEST_REPO_DELTA);","isFullCredit":false},{"lineNumber":498,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedLocations, cliArguments.getLocations());","isFullCredit":false},{"lineNumber":499,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":500,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":501,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":502,"author":{"gitId":"-"},"content":" public void parse_repoLocationsAndViewWithArgs_returnsLocationsCliArguments() throws Exception {","isFullCredit":false},{"lineNumber":503,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":504,"author":{"gitId":"-"},"content":" .addView(OUTPUT_DIRECTORY_ABSOLUTE)","isFullCredit":false},{"lineNumber":505,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":506,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":507,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":508,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAutomaticallyLaunching());","isFullCredit":false},{"lineNumber":509,"author":{"gitId":"-"},"content":" List\u003cString\u003e expectedLocations \u003d Arrays.asList(TEST_REPO_REPOSENSE, TEST_REPO_DELTA);","isFullCredit":false},{"lineNumber":510,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedLocations, cliArguments.getLocations());","isFullCredit":false},{"lineNumber":511,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":512,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":513,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":514,"author":{"gitId":"-"},"content":" public void parse_configOrLocationsSimilar_success() throws Exception {","isFullCredit":false},{"lineNumber":515,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE).build();","isFullCredit":false},{"lineNumber":516,"author":{"gitId":"-"},"content":" CliArguments configCliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":517,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualRepoConfigs \u003d RunConfigurationDecider","isFullCredit":false},{"lineNumber":518,"author":{"gitId":"-"},"content":" .getRunConfiguration(configCliArguments)","isFullCredit":false},{"lineNumber":519,"author":{"gitId":"-"},"content":" .getRepoConfigurations();","isFullCredit":false},{"lineNumber":520,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":521,"author":{"gitId":"-"},"content":" input \u003d new InputBuilder().addRepos(TEST_REPO_BETA, TEST_REPO_CHARLIE, TEST_REPO_DELTA).build();","isFullCredit":false},{"lineNumber":522,"author":{"gitId":"-"},"content":" CliArguments locationCliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":523,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e expectedRepoConfigs \u003d RunConfigurationDecider","isFullCredit":false},{"lineNumber":524,"author":{"gitId":"-"},"content":" .getRunConfiguration(locationCliArguments)","isFullCredit":false},{"lineNumber":525,"author":{"gitId":"-"},"content":" .getRepoConfigurations();","isFullCredit":false},{"lineNumber":526,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":527,"author":{"gitId":"-"},"content":" Assertions.assertEquals(actualRepoConfigs, expectedRepoConfigs);","isFullCredit":false},{"lineNumber":528,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":529,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":530,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":531,"author":{"gitId":"-"},"content":" public void emptyArgs_defaultConfigFolderPath() throws Exception {","isFullCredit":false},{"lineNumber":532,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(new String[] {});","isFullCredit":false},{"lineNumber":533,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":534,"author":{"gitId":"-"},"content":" Assertions.assertEquals(CONFIG_DIRECTORY.toString(), cliArguments.getConfigFolderPath().toString());","isFullCredit":false},{"lineNumber":535,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":536,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":537,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":538,"author":{"gitId":"-"},"content":" public void parse_repoAliases_sameResult() throws Exception {","isFullCredit":false},{"lineNumber":539,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_BETA).build();","isFullCredit":false},{"lineNumber":540,"author":{"gitId":"-"},"content":" CliArguments repoAliasCliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":541,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":542,"author":{"gitId":"-"},"content":" input \u003d new InputBuilder().add(String.format(\"--repos %s\", TEST_REPO_BETA)).build();","isFullCredit":false},{"lineNumber":543,"author":{"gitId":"-"},"content":" CliArguments reposAliasCliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":544,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":545,"author":{"gitId":"-"},"content":" Assertions.assertEquals(repoAliasCliArguments, reposAliasCliArguments);","isFullCredit":false},{"lineNumber":546,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":547,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":548,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":549,"author":{"gitId":"-"},"content":" public void absoluteConfigFolder_withoutRequiredConfigFiles_throwsParseException() {","isFullCredit":false},{"lineNumber":550,"author":{"gitId":"-"},"content":" Path absDirectory \u003d PROJECT_DIRECTORY.getParent().toAbsolutePath();","isFullCredit":false},{"lineNumber":551,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(absDirectory).build();","isFullCredit":false},{"lineNumber":552,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":553,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":554,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":555,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":556,"author":{"gitId":"-"},"content":" public void relativeConfigFolder_withoutRequiredConfigFiles_throwsParseException() {","isFullCredit":false},{"lineNumber":557,"author":{"gitId":"-"},"content":" Path relDirectory \u003d PROJECT_DIRECTORY.getParent();","isFullCredit":false},{"lineNumber":558,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(relDirectory).build();","isFullCredit":false},{"lineNumber":559,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":560,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":561,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":562,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":563,"author":{"gitId":"-"},"content":" public void parse_notExistsConfigFolder_throwsParseException() {","isFullCredit":false},{"lineNumber":564,"author":{"gitId":"-"},"content":" Path absConfigFolder \u003d PROJECT_DIRECTORY.resolve(\"non_existing_random_folder\");","isFullCredit":false},{"lineNumber":565,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(absConfigFolder).build();","isFullCredit":false},{"lineNumber":566,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":567,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":568,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":569,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":570,"author":{"gitId":"-"},"content":" public void parse_configCsvFileAsConfigFolder_throwsParseException() {","isFullCredit":false},{"lineNumber":571,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(REPO_CONFIG_CSV_FILE).build();","isFullCredit":false},{"lineNumber":572,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":573,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":574,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":575,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":576,"author":{"gitId":"-"},"content":" public void parse_missingConfigValue_throwsParseException() {","isFullCredit":false},{"lineNumber":577,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(new File(\"\").toPath()).build();","isFullCredit":false},{"lineNumber":578,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":579,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":580,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":581,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":582,"author":{"gitId":"-"},"content":" public void outputPath_nonExistentDirectory_success() throws Exception {","isFullCredit":false},{"lineNumber":583,"author":{"gitId":"-"},"content":" Path nonExistentDirectory \u003d PROJECT_DIRECTORY.resolve(NONEXISTENT_DIRECTORY);","isFullCredit":false},{"lineNumber":584,"author":{"gitId":"-"},"content":" Path expectedRelativeOutputDirectoryPath \u003d nonExistentDirectory.resolve(ArgsParser.DEFAULT_REPORT_NAME);","isFullCredit":false},{"lineNumber":585,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addOutput(nonExistentDirectory).build();","isFullCredit":false},{"lineNumber":586,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":587,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":588,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.isSameFile(","isFullCredit":false},{"lineNumber":589,"author":{"gitId":"-"},"content":" expectedRelativeOutputDirectoryPath, cliArguments.getOutputFilePath()));","isFullCredit":false},{"lineNumber":590,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":591,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":592,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":593,"author":{"gitId":"-"},"content":" public void sinceDate_unsupportedFormats_throwsParseException() {","isFullCredit":false},{"lineNumber":594,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addSinceDate(\"01 July 17\").build();","isFullCredit":false},{"lineNumber":595,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":596,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":597,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":598,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":599,"author":{"gitId":"-"},"content":" public void untilDate_unsupportedFormats_throwsParseException() {","isFullCredit":false},{"lineNumber":600,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addUntilDate(\"11/31/2017\").build();","isFullCredit":false},{"lineNumber":601,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":602,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":603,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":604,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":605,"author":{"gitId":"-"},"content":" public void sinceDate_laterThanUntilDate_throwsParseException() {","isFullCredit":false},{"lineNumber":606,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addSinceDate(\"01/12/2017\")","isFullCredit":false},{"lineNumber":607,"author":{"gitId":"-"},"content":" .addUntilDate(\"30/11/2017\")","isFullCredit":false},{"lineNumber":608,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":609,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":610,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":611,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":612,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":613,"author":{"gitId":"-"},"content":" public void sinceDate_laterThanCurrentDate_throwsParseException() {","isFullCredit":false},{"lineNumber":614,"author":{"gitId":"-"},"content":" LocalDateTime tomorrowDateTime \u003d LocalDateTime.now()","isFullCredit":false},{"lineNumber":615,"author":{"gitId":"-"},"content":" .plusDays(1L);","isFullCredit":false},{"lineNumber":616,"author":{"gitId":"-"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(\"dd/MM/yyyy\");","isFullCredit":false},{"lineNumber":617,"author":{"gitId":"-"},"content":" String tomorrow \u003d tomorrowDateTime.format(formatter);","isFullCredit":false},{"lineNumber":618,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":619,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":620,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addSinceDate(tomorrow)","isFullCredit":false},{"lineNumber":621,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":622,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":623,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":624,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":625,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":626,"author":{"gitId":"-"},"content":" public void sinceDate_beforeUntilDateAndLaterThanCurrentDate_throwsParseException() {","isFullCredit":false},{"lineNumber":627,"author":{"gitId":"-"},"content":" LocalDateTime tomorrowDateTime \u003d LocalDateTime.now()","isFullCredit":false},{"lineNumber":628,"author":{"gitId":"-"},"content":" .plusDays(1L);","isFullCredit":false},{"lineNumber":629,"author":{"gitId":"-"},"content":" LocalDateTime dayAfterDateTime \u003d LocalDateTime.now()","isFullCredit":false},{"lineNumber":630,"author":{"gitId":"-"},"content":" .plusDays(2L);","isFullCredit":false},{"lineNumber":631,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":632,"author":{"gitId":"-"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(\"dd/MM/yyyy\");","isFullCredit":false},{"lineNumber":633,"author":{"gitId":"-"},"content":" String tomorrow \u003d tomorrowDateTime.format(formatter);","isFullCredit":false},{"lineNumber":634,"author":{"gitId":"-"},"content":" String dayAfter \u003d dayAfterDateTime.format(formatter);","isFullCredit":false},{"lineNumber":635,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":636,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addSinceDate(tomorrow)","isFullCredit":false},{"lineNumber":637,"author":{"gitId":"-"},"content":" .addUntilDate(dayAfter)","isFullCredit":false},{"lineNumber":638,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":639,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":640,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":641,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":642,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":643,"author":{"gitId":"-"},"content":" public void period_withBothSinceDateAndUntilDate_throwsParseException() {","isFullCredit":false},{"lineNumber":644,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addPeriod(\"18d\")","isFullCredit":false},{"lineNumber":645,"author":{"gitId":"-"},"content":" .addSinceDate(\"30/11/2017\")","isFullCredit":false},{"lineNumber":646,"author":{"gitId":"-"},"content":" .addUntilDate(\"01/12/2017\")","isFullCredit":false},{"lineNumber":647,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":648,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":649,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":650,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":651,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":652,"author":{"gitId":"-"},"content":" public void period_notNumeric_throwsParseExcpetion() {","isFullCredit":false},{"lineNumber":653,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addPeriod(\"abcd\").build();","isFullCredit":false},{"lineNumber":654,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":655,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":656,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":657,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":658,"author":{"gitId":"-"},"content":" public void period_isZero_throwsParseExcpetion() {","isFullCredit":false},{"lineNumber":659,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addPeriod(\"0w\").build();","isFullCredit":false},{"lineNumber":660,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":661,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":662,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":663,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":664,"author":{"gitId":"-"},"content":" public void formats_notInAlphanumeric_throwsParseException() {","isFullCredit":false},{"lineNumber":665,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addFormats(\".java\").build();","isFullCredit":false},{"lineNumber":666,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":667,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":668,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":669,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":670,"author":{"gitId":"-"},"content":" public void parse_mutuallyExclusiveArgumentsConfigAndReposTogether_throwsParseException() {","isFullCredit":false},{"lineNumber":671,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE)","isFullCredit":false},{"lineNumber":672,"author":{"gitId":"-"},"content":" .addRepos(TEST_REPO_REPOSENSE)","isFullCredit":false},{"lineNumber":673,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":674,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":675,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":676,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":677,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":678,"author":{"gitId":"-"},"content":" public void parse_extraArgumentForIgnore_throwsParseException() {","isFullCredit":false},{"lineNumber":679,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addIgnoreStandaloneConfig().add(\"true\").build();","isFullCredit":false},{"lineNumber":680,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":681,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":682,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":683,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":684,"author":{"gitId":"-"},"content":" public void parse_withTimezone_success() throws Exception {","isFullCredit":false},{"lineNumber":685,"author":{"gitId":"-"},"content":" String zoneId \u003d \"UTC+11\";","isFullCredit":false},{"lineNumber":686,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addTimezone(zoneId).build();","isFullCredit":false},{"lineNumber":687,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":688,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":689,"author":{"gitId":"-"},"content":" Assertions.assertEquals(ZoneId.of(zoneId), cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":690,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":691,"author":{"gitId":"-"},"content":" zoneId \u003d \"UTC-1030\";","isFullCredit":false},{"lineNumber":692,"author":{"gitId":"-"},"content":" input \u003d DEFAULT_INPUT_BUILDER.addTimezone(zoneId).build();","isFullCredit":false},{"lineNumber":693,"author":{"gitId":"-"},"content":" cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":694,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":695,"author":{"gitId":"-"},"content":" Assertions.assertEquals(ZoneId.of(zoneId), cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":696,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":697,"author":{"gitId":"-"},"content":" zoneId \u003d \"UTC\";","isFullCredit":false},{"lineNumber":698,"author":{"gitId":"-"},"content":" input \u003d DEFAULT_INPUT_BUILDER.addTimezone(zoneId).build();","isFullCredit":false},{"lineNumber":699,"author":{"gitId":"-"},"content":" cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":700,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":701,"author":{"gitId":"-"},"content":" Assertions.assertEquals(ZoneId.of(zoneId), cliArguments.getZoneId());","isFullCredit":false},{"lineNumber":702,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":703,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":704,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":705,"author":{"gitId":"-"},"content":" public void parse_incorrectTimezone_throwsParseException() {","isFullCredit":false},{"lineNumber":706,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addTimezone(\"UTC+\").build();","isFullCredit":false},{"lineNumber":707,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":708,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":709,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":710,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":711,"author":{"gitId":"-"},"content":" public void parse_timezoneWithoutArgument_throwsParseException() {","isFullCredit":false},{"lineNumber":712,"author":{"gitId":"-"},"content":" String input \u003d DEFAULT_INPUT_BUILDER.addTimezone(\"\").build();","isFullCredit":false},{"lineNumber":713,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":714,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":715,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":716,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":717,"author":{"gitId":"-"},"content":" public void parse_shallowCloning_success() throws Exception {","isFullCredit":false},{"lineNumber":718,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE)","isFullCredit":false},{"lineNumber":719,"author":{"gitId":"-"},"content":" .addOutput(OUTPUT_DIRECTORY_ABSOLUTE)","isFullCredit":false},{"lineNumber":720,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":721,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":722,"author":{"gitId":"-"},"content":" Assertions.assertEquals(false, cliArguments.isShallowCloningPerformed());","isFullCredit":false},{"lineNumber":723,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":724,"author":{"gitId":"-"},"content":" String inputShallow \u003d new InputBuilder().addConfig(CONFIG_FOLDER_ABSOLUTE)","isFullCredit":false},{"lineNumber":725,"author":{"gitId":"-"},"content":" .addOutput(OUTPUT_DIRECTORY_ABSOLUTE)","isFullCredit":false},{"lineNumber":726,"author":{"gitId":"-"},"content":" .addShallowCloning()","isFullCredit":false},{"lineNumber":727,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":728,"author":{"gitId":"-"},"content":" CliArguments cliArgumentsShallow \u003d ArgsParser.parse(translateCommandline(inputShallow));","isFullCredit":false},{"lineNumber":729,"author":{"gitId":"-"},"content":" Assertions.assertEquals(true, cliArgumentsShallow.isShallowCloningPerformed());","isFullCredit":false},{"lineNumber":730,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":731,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":732,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":733,"author":{"gitId":"-"},"content":" public void parse_withAnalyzeAuthorship_success() throws Exception {","isFullCredit":false},{"lineNumber":734,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":735,"author":{"gitId":"-"},"content":" .addAnalyzeAuthorship()","isFullCredit":false},{"lineNumber":736,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":737,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":738,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":739,"author":{"gitId":"-"},"content":" String inputWithAlias \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_DELTA)","isFullCredit":false},{"lineNumber":740,"author":{"gitId":"-"},"content":" .add(\"-A\")","isFullCredit":false},{"lineNumber":741,"author":{"gitId":"-"},"content":" .build();","isFullCredit":false},{"lineNumber":742,"author":{"gitId":"-"},"content":" CliArguments cliArgumentsWithAlias \u003d ArgsParser.parse(translateCommandline(inputWithAlias));","isFullCredit":false},{"lineNumber":743,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":744,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArguments.isAuthorshipAnalyzed());","isFullCredit":false},{"lineNumber":745,"author":{"gitId":"-"},"content":" Assertions.assertTrue(cliArgumentsWithAlias.isAuthorshipAnalyzed());","isFullCredit":false},{"lineNumber":746,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":747,"author":{"gitId":"-"},"content":" Assertions.assertEquals(cliArguments, cliArgumentsWithAlias);","isFullCredit":false},{"lineNumber":748,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":749,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":750,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":751,"author":{"gitId":"-"},"content":" public void parse_withoutAnalyzeAuthorship_success() throws Exception {","isFullCredit":false},{"lineNumber":752,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addRepos(TEST_REPO_REPOSENSE, TEST_REPO_BETA).build();","isFullCredit":false},{"lineNumber":753,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":754,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":755,"author":{"gitId":"-"},"content":" Assertions.assertFalse(cliArguments.isAuthorshipAnalyzed());","isFullCredit":false},{"lineNumber":756,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":757,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":758,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":759,"author":{"gitId":"-"},"content":" public void parse_withOriginalityThreshold_success() throws Exception {","isFullCredit":false},{"lineNumber":760,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addOriginalityThreshold(0.1234).build();","isFullCredit":false},{"lineNumber":761,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":762,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":763,"author":{"gitId":"-"},"content":" String inputWithAlias \u003d new InputBuilder().add(\"-ot 0.9876\").build();","isFullCredit":false},{"lineNumber":764,"author":{"gitId":"-"},"content":" CliArguments cliArgumentsWithAlias \u003d ArgsParser.parse(translateCommandline(inputWithAlias));","isFullCredit":false},{"lineNumber":765,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":766,"author":{"gitId":"-"},"content":" Assertions.assertEquals(0.1234, cliArguments.getOriginalityThreshold());","isFullCredit":false},{"lineNumber":767,"author":{"gitId":"-"},"content":" Assertions.assertEquals(0.9876, cliArgumentsWithAlias.getOriginalityThreshold());","isFullCredit":false},{"lineNumber":768,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":769,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":770,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":771,"author":{"gitId":"-"},"content":" public void parse_originalityThresholdWithoutArgument_throwsParseException() {","isFullCredit":false},{"lineNumber":772,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().add(\"-ot\").build();","isFullCredit":false},{"lineNumber":773,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(input)));","isFullCredit":false},{"lineNumber":774,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":775,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":776,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":777,"author":{"gitId":"-"},"content":" public void parse_originalityThresholdOutOfBound_throwsParseException() {","isFullCredit":false},{"lineNumber":778,"author":{"gitId":"-"},"content":" String inputBelowBound \u003d new InputBuilder().addOriginalityThreshold(-0.001).build();","isFullCredit":false},{"lineNumber":779,"author":{"gitId":"-"},"content":" String inputAboveBound \u003d new InputBuilder().addOriginalityThreshold(1.0001).build();","isFullCredit":false},{"lineNumber":780,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":781,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(inputBelowBound)));","isFullCredit":false},{"lineNumber":782,"author":{"gitId":"-"},"content":" Assertions.assertThrows(ParseException.class, () -\u003e ArgsParser.parse(translateCommandline(inputAboveBound)));","isFullCredit":false},{"lineNumber":783,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":784,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":785,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":786,"author":{"gitId":"-"},"content":" * Ensures that {@code actualSinceDate} is exactly one month before {@code untilDate}.","isFullCredit":false},{"lineNumber":787,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":788,"author":{"gitId":"-"},"content":" * @throws AssertionError if {@code actualSinceDate} is not one month before {@code untilDate}.","isFullCredit":false},{"lineNumber":789,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":790,"author":{"gitId":"-"},"content":" private void assertDateDiffOneMonth(LocalDateTime actualSinceDate, LocalDateTime untilDate) {","isFullCredit":false},{"lineNumber":791,"author":{"gitId":"-"},"content":" LocalDateTime oneMonthBeforeUntilDate \u003d untilDate.withHour(0).withMinute(0).withSecond(0).minusMonths(1);","isFullCredit":false},{"lineNumber":792,"author":{"gitId":"-"},"content":" Assertions.assertTrue(actualSinceDate.equals(oneMonthBeforeUntilDate));","isFullCredit":false},{"lineNumber":793,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":794,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":795,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":796,"author":{"gitId":"-"},"content":" * Ensures that {@code actualUntilDate} falls on the date of report generation with time at 23:59:59.","isFullCredit":false},{"lineNumber":797,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":798,"author":{"gitId":"-"},"content":" * @throws AssertionError if {@code actualUntilDate} does not fall on the date of report generation","isFullCredit":false},{"lineNumber":799,"author":{"gitId":"-"},"content":" * with time at 23:59:59.","isFullCredit":false},{"lineNumber":800,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":801,"author":{"gitId":"-"},"content":" private void assertDateDiffEndOfDay(LocalDateTime actualUntilDate) {","isFullCredit":false},{"lineNumber":802,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":803,"author":{"gitId":"-"},"content":" LocalDateTime currentDate \u003d LocalDateTime.now().withHour(23).withMinute(59).withSecond(59).withNano(0);","isFullCredit":false},{"lineNumber":804,"author":{"gitId":"-"},"content":" Assertions.assertTrue(actualUntilDate.equals(currentDate));","isFullCredit":false},{"lineNumber":805,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":806,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":804}},{"path":"src/test/java/reposense/parser/AuthorConfigParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.AbstractMap.SimpleEntry;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.stream.Stream;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.model.AuthorConfiguration;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidCsvException;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidHeaderException;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"public class AuthorConfigParserTest {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_EMPTY_LOCATION_FILE \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_emptyLocation_test.csv\");","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_EMPTY_CONFIG_FILE \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/require_trailing_whitespaces/authorconfig_emptyConfig_test.csv\");","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_NO_SPECIAL_CHARACTER_FILE \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_noSpecialCharacter_test.csv\");","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_SPECIAL_CHARACTER_FILE \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_specialCharacter_test.csv\");","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_COMMAS_AND_DOUBLEQUOTES_FILE \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_commasAndDoubleQuotes_test.csv\");","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_MULTIPLE_EMAILS_FILE \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_multipleEmails_test.csv\");","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_DIFFERENT_COLUMN_ORDER \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_differentColumnOrder_test.csv\");","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_MISSING_OPTIONAL_HEADER \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_missingOptionalHeader_test.csv\");","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_MISSING_MANDATORY_HEADER \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_missingMandatoryHeader_test.csv\");","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_UNKNOWN_HEADER \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_unknownHeaders_test.csv\");","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_GITHUB_ID_HEADER \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_gitHubIdHeader_test.csv\");","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_GIT_HOST_ID_HEADER \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_gitHostIdHeader_test.csv\");","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_MULTIPLE_REPO_IN_ROW_FILE \u003d loadResource(AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_multipleReposInRow_test.csv\");","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_MULTIPLE_REPO_IN_ROW_SINGLE_BRANCH_PER_REPO_FILE \u003d loadResource(","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_multipleReposInRowSingleBranchPerRepo_test.csv\");","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" private static final Path AUTHOR_CONFIG_MULTIPLE_REPO_IN_ROW_MULTIPLE_BRANCH_PER_REPO_FILE \u003d loadResource(","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" AuthorConfigParserTest.class,","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" \"AuthorConfigParserTest/authorconfig_multipleReposInRowMultipleBranchPerRepo_test.csv\");","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_BETA_LOCATION \u003d \"https://github.com/reposense/testrepo-Beta.git\";","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_BETA_MASTER_BRANCH \u003d \"master\";","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" private static final Author FIRST_AUTHOR \u003d new Author(\"nbriannl\");","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" private static final Author SECOND_AUTHOR \u003d new Author(\"zacharytang\");","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" private static final List\u003cAuthor\u003e AUTHOR_CONFIG_NO_SPECIAL_CHARACTER_AUTHORS \u003d","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" Arrays.asList(FIRST_AUTHOR, SECOND_AUTHOR);","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" private static final Author FIRST_SPECIAL_CHARACTER_AUTHOR \u003d new Author(\"‘Processed�‘Cooked�\");","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" private static final Author SECOND_SPECIAL_CHARACTER_AUTHOR \u003d new Author(\"(codeeong)\");","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" private static final Author THIRD_SPECIAL_CHARACTER_AUTHOR \u003d new Author(\"^:jordancjq;$\");","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" private static final List\u003cAuthor\u003e AUTHOR_CONFIG_SPECIAL_CHARACTER_AUTHORS \u003d Arrays.asList(","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" FIRST_SPECIAL_CHARACTER_AUTHOR, SECOND_SPECIAL_CHARACTER_AUTHOR, THIRD_SPECIAL_CHARACTER_AUTHOR);","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" private static final Author FIRST_COMMAS_AND_DOUBLEQUOTES_AUTHOR \u003d new Author(\"ProcessedCooked\");","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" private static final Author SECOND_COMMAS_AND_DOUBLEQUOTES_AUTHOR \u003d new Author(\"codeeong\");","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" private static final Author THIRD_COMMAS_AND_DOUBLEQUOTES_AUTHOR \u003d new Author(\"jordancjq\");","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" private static final String FIRST_COMMAS_AND_DOUBLEQUOTES_DISPLAY_NAME \u003d \"Tay Fan Gao, Douya\";","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" private static final String SECOND_COMMAS_AND_DOUBLEQUOTES_DISPLAY_NAME \u003d \"\\\"\\\"Tora, S/O,\\\" Doyua, T.\\\"\";","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" private static final String THIRD_COMMAS_AND_DOUBLEQUOTES_DISPLAY_NAME \u003d \"jordancjq\";","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e FIRST_COMMAS_AND_DOUBLEQUOTES_ALIAS \u003d","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" Collections.singletonList(\"Tay Fan Gao, Douya \\\"SOC, Y2S1\\\"\");","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e SECOND_COMMAS_AND_DOUBLEQUOTES_ALIAS \u003d Collections.emptyList();","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e THIRD_COMMAS_AND_DOUBLEQUOTES_ALIAS \u003d","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" Arrays.asList(\"Borex T\\\"ony Tong\");","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" private static final Map\u003cAuthor, List\u003cString\u003e\u003e AUTHOR_ALIAS_COMMAS_AND_DOUBLE_QUOTES_MAP \u003d","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" Stream.of(new SimpleEntry\u003c\u003e(FIRST_COMMAS_AND_DOUBLEQUOTES_AUTHOR, FIRST_COMMAS_AND_DOUBLEQUOTES_ALIAS),","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" new SimpleEntry\u003c\u003e(SECOND_COMMAS_AND_DOUBLEQUOTES_AUTHOR, SECOND_COMMAS_AND_DOUBLEQUOTES_ALIAS),","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" new SimpleEntry\u003c\u003e(THIRD_COMMAS_AND_DOUBLEQUOTES_AUTHOR, THIRD_COMMAS_AND_DOUBLEQUOTES_ALIAS))","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" .collect(Collectors.toMap(entry -\u003e entry.getKey(), entry -\u003e entry.getValue()));","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" private static final Map\u003cAuthor, String\u003e AUTHOR_DISPLAY_NAME_COMMAS_AND_DOUBLE_QUOTES_MAP \u003d","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" Stream.of(new SimpleEntry\u003c\u003e(FIRST_COMMAS_AND_DOUBLEQUOTES_AUTHOR,","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" FIRST_COMMAS_AND_DOUBLEQUOTES_DISPLAY_NAME),","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" new SimpleEntry\u003c\u003e(SECOND_COMMAS_AND_DOUBLEQUOTES_AUTHOR,","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" SECOND_COMMAS_AND_DOUBLEQUOTES_DISPLAY_NAME),","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" new SimpleEntry\u003c\u003e(THIRD_COMMAS_AND_DOUBLEQUOTES_AUTHOR, THIRD_COMMAS_AND_DOUBLEQUOTES_DISPLAY_NAME))","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" .collect(Collectors.toMap(entry -\u003e entry.getKey(), entry -\u003e entry.getValue()));","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e FIRST_AUTHOR_EMAIL_LIST \u003d","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" Arrays.asList(\"nbr@example.com\", \"nbriannl@test.net\", \"nbriannl@users.noreply.github.com\",","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" \"nbriannl@users.noreply.gitlab.com\");","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" public void authorConfig_noSpecialCharacter_success() throws Exception {","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" new AuthorConfigCsvParser(AUTHOR_CONFIG_NO_SPECIAL_CHARACTER_FILE);","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" Assertions.assertEquals(AUTHOR_CONFIG_NO_SPECIAL_CHARACTER_AUTHORS, config.getAuthorList());","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" public void authorConfig_emptyLocation_success() throws Exception {","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" AuthorConfiguration expectedConfig \u003d new AuthorConfiguration(new RepoLocation(\"\"));","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_EMPTY_LOCATION_FILE);","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e authorConfigs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" AuthorConfiguration authorConfig \u003d authorConfigs.get(0);","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, authorConfigs.size());","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedConfig.getLocation(), authorConfig.getLocation());","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedConfig.getBranch(), authorConfig.getBranch());","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" Assertions.assertEquals(AUTHOR_CONFIG_NO_SPECIAL_CHARACTER_AUTHORS, authorConfig.getAuthorList());","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" public void authorConfig_emptyConfig_throwsInvalidCsvException() throws Exception {","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_EMPTY_CONFIG_FILE);","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidCsvException.class, () -\u003e authorConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" public void authorConfig_specialCharacter_success() throws Exception {","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_SPECIAL_CHARACTER_FILE);","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" Assertions.assertEquals(AUTHOR_CONFIG_SPECIAL_CHARACTER_AUTHORS, config.getAuthorList());","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" public void authorConfig_multipleEmails_success() throws Exception {","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_MULTIPLE_EMAILS_FILE);","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" Author actualAuthor \u003d config.getAuthorList().get(0);","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" Assertions.assertEquals(FIRST_AUTHOR_EMAIL_LIST.size(), actualAuthor.getEmails().size());","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" Assertions.assertTrue(actualAuthor.getEmails().containsAll(FIRST_AUTHOR_EMAIL_LIST));","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" public void authorConfig_differentColumnOrder_success() throws Exception {","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" new AuthorConfigCsvParser(AUTHOR_CONFIG_DIFFERENT_COLUMN_ORDER);","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" Assertions.assertEquals(AUTHOR_CONFIG_NO_SPECIAL_CHARACTER_AUTHORS, config.getAuthorList());","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" public void authorConfig_missingOptionalHeader_success() throws Exception {","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_MISSING_OPTIONAL_HEADER);","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" Assertions.assertEquals(4, config.getAuthorList().size());","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" public void authorConfig_newGitHostIdHeader_success() throws Exception {","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser;","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_GIT_HOST_ID_HEADER);","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configsWithGitHostIdHeader \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_GITHUB_ID_HEADER);","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configsWithGitHubIdHeader \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" Assertions.assertEquals(configsWithGitHubIdHeader, configsWithGitHostIdHeader);","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" public void authorConfig_missingMandatoryHeader_throwsInvalidCsvException() throws Exception {","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_MISSING_MANDATORY_HEADER);","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidCsvException.class, () -\u003e authorConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" public void authorConfig_unknownHeaders_throwsInvalidHeaderException() throws Exception {","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(AUTHOR_CONFIG_UNKNOWN_HEADER);","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidHeaderException.class, () -\u003e authorConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" public void parse_multipleColumnsWithCommasAndDoubleQuotes_success() throws Exception {","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" new AuthorConfigCsvParser(AUTHOR_CONFIG_COMMAS_AND_DOUBLEQUOTES_FILE);","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" Assertions.assertEquals(AUTHOR_DISPLAY_NAME_COMMAS_AND_DOUBLE_QUOTES_MAP, config.getAuthorDisplayNameMap());","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" Assertions.assertEquals(AUTHOR_ALIAS_COMMAS_AND_DOUBLE_QUOTES_MAP.size(), config.getAuthorList().size());","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" config.getAuthorList().forEach(author -\u003e {","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" Assertions.assertEquals(AUTHOR_ALIAS_COMMAS_AND_DOUBLE_QUOTES_MAP.get(author), author.getAuthorAliases());","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" public void authorConfig_multipleReposInRow_success() throws Exception {","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_MULTIPLE_REPO_IN_ROW_FILE);","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" String defaultSpecifiedBranch \u003d \"master\";","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" Assertions.assertEquals(4, configs.size());","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"https://github.com/reposense/reposense.git\"), config.getLocation());","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" Assertions.assertEquals(defaultSpecifiedBranch, config.getBranch());","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" config \u003d configs.get(1);","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"https://github.com/markbind/markbind.git\"), config.getLocation());","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":" Assertions.assertEquals(defaultSpecifiedBranch, config.getBranch());","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" config \u003d configs.get(2);","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"https://github.com/TEAMMATES/teammates.git\"), config.getLocation());","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" Assertions.assertEquals(defaultSpecifiedBranch, config.getBranch());","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":" config \u003d configs.get(3);","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"https://github.com/CATcher-org/CATcher.git\"), config.getLocation());","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" Assertions.assertEquals(defaultSpecifiedBranch, config.getBranch());","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" public void authorConfig_multipleReposInRowSingleBranchPerRepo_success() throws Exception {","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_MULTIPLE_REPO_IN_ROW_SINGLE_BRANCH_PER_REPO_FILE);","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" Assertions.assertEquals(4, configs.size());","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" config \u003d configs.get(1);","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"add-config-json\", config.getBranch());","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" config \u003d configs.get(2);","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"https://github.com/reposense/RepoSense.git\"), config.getLocation());","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"release\", config.getBranch());","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" config \u003d configs.get(3);","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"/Users/sikai/RepoSense\"), config.getLocation());","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"master\", config.getBranch());","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":" public void authorConfig_multipleReposInRowMultipleBranchPerRepo_success() throws Exception {","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" AuthorConfigCsvParser authorConfigCsvParser \u003d new AuthorConfigCsvParser(","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":" AUTHOR_CONFIG_MULTIPLE_REPO_IN_ROW_MULTIPLE_BRANCH_PER_REPO_FILE);","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e configs \u003d authorConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" Assertions.assertEquals(5, configs.size());","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":" AuthorConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"add-config-json\", config.getBranch());","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" config \u003d configs.get(1);","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" config \u003d configs.get(2);","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"/Users/sikai/RepoSense\"), config.getLocation());","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"master\", config.getBranch());","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":" config \u003d configs.get(3);","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"/Users/sikai/RepoSense\"), config.getLocation());","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"release\", config.getBranch());","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":" config \u003d configs.get(4);","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(\"/Users/sikai/RepoSense\"), config.getLocation());","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" Assertions.assertEquals(\"gh-pages\", config.getBranch());","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":315}},{"path":"src/test/java/reposense/parser/BlurbMarkdownParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"import java.util.Map;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidMarkdownException;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"asdfghjkxd"},"content":"public class BlurbMarkdownParserTest {","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":" private static final Path EMPTY_BLURB_TESTER \u003d loadResource(BlurbMarkdownParserTest.class,","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":" \"BlurbMarkdownParserTest/empty_blurbs.md\");","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"asdfghjkxd"},"content":" private static final Path MALFORMED_URL_TESTER \u003d loadResource(BlurbMarkdownParserTest.class,","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"asdfghjkxd"},"content":" \"BlurbMarkdownParserTest/malformed_url_blurb.md\");","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"asdfghjkxd"},"content":" private static final Path MALFORMED_DELIMITER_TESTER \u003d loadResource(BlurbMarkdownParserTest.class,","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"asdfghjkxd"},"content":" \"BlurbMarkdownParserTest/malformed_delimiter_blurb.md\");","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"asdfghjkxd"},"content":" private static final Path MULTILINE_BLURB_TESTER \u003d loadResource(BlurbMarkdownParserTest.class,","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":" \"BlurbMarkdownParserTest/multiline_blurb.md\");","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":" private static final Path MULTIPLE_BLURB_TESTER \u003d loadResource(BlurbMarkdownParser.class,","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"asdfghjkxd"},"content":" \"BlurbMarkdownParserTest/multiple_blurbs.md\");","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"asdfghjkxd"},"content":" public void parse_emptyBlurbTest_throwsException() {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertThrows(","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"asdfghjkxd"},"content":" InvalidMarkdownException.class, () -\u003e new BlurbMarkdownParser(EMPTY_BLURB_TESTER).parse()","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"asdfghjkxd"},"content":" public void parse_malformedUrlBlurbTest_throwsException() {","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertThrows(","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"asdfghjkxd"},"content":" InvalidMarkdownException.class, () -\u003e new BlurbMarkdownParser(MALFORMED_URL_TESTER).parse()","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"asdfghjkxd"},"content":" public void parse_malformedDelimiterBlurbTest_success() throws Exception {","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMarkdownParser bmp \u003d new BlurbMarkdownParser(MALFORMED_DELIMITER_TESTER);","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":" Map\u003cString, String\u003e bm \u003d bmp.parse().getAllMappings();","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertTrue(bm.containsKey(\"https://github.com/reposense/testrepo-Alpha/tree/master\"));","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"asdfghjkxd"},"content":" bm.get(\"https://github.com/reposense/testrepo-Alpha/tree/master\"),","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"asdfghjkxd"},"content":" \"Master branch of testrepo-Alpha\\n\"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"asdfghjkxd"},"content":" + \"\u003c!--repo--bunchofcharacters that don\u0027t count\u003e\\n\"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"asdfghjkxd"},"content":" + \"https://github.com/reposense/testrepo-Alpha/tree/master\\n\"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"asdfghjkxd"},"content":" + \"Master branch of testrepo-Alpha\\n\"","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"asdfghjkxd"},"content":" + \"\u003c!--repo - this is not legal and will be captured as part of the text --\u003e\"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"asdfghjkxd"},"content":" public void parse_multilineBlurbTest_success() throws Exception {","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMarkdownParser bmp \u003d new BlurbMarkdownParser(MULTILINE_BLURB_TESTER);","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"asdfghjkxd"},"content":" Map\u003cString, String\u003e bm \u003d bmp.parse().getAllMappings();","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertTrue(bm.containsKey(\"https://github.com/reposense/testrepo-Alpha/tree/master\"));","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"asdfghjkxd"},"content":" bm.get(\"https://github.com/reposense/testrepo-Alpha/tree/master\"),","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"asdfghjkxd"},"content":" \"Master branch of testrepo-Alpha\\n\"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"asdfghjkxd"},"content":" + \"A\\n\"","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"asdfghjkxd"},"content":" + \"long\\n\"","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"asdfghjkxd"},"content":" + \"line\\n\"","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"asdfghjkxd"},"content":" + \"of\\n\"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"asdfghjkxd"},"content":" + \"description\\n\"","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"asdfghjkxd"},"content":" + \"of\\n\"","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"asdfghjkxd"},"content":" + \"testrepo\\n\"","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"asdfghjkxd"},"content":" + \"Alpha\"","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"asdfghjkxd"},"content":"","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"asdfghjkxd"},"content":" @Test","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"asdfghjkxd"},"content":" public void parse_multipleBlurbTest_success() throws Exception {","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"asdfghjkxd"},"content":" BlurbMarkdownParser bmp \u003d new BlurbMarkdownParser(MULTIPLE_BLURB_TESTER);","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"asdfghjkxd"},"content":" Map\u003cString, String\u003e bm \u003d bmp.parse().getAllMappings();","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertTrue(bm.keySet().containsAll(","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"asdfghjkxd"},"content":" List.of(\"https://github.com/reposense/testrepo-Alpha/tree/master\",","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"asdfghjkxd"},"content":" \"https://github.com/reposense/testrepo-Beta/tree/master\",","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"asdfghjkxd"},"content":" \"https://github.com/reposense/testrepo-Gamma/tree/master\",","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"asdfghjkxd"},"content":" \"https://github.com/reposense/testrepo-Sigma/tree/master\")","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"asdfghjkxd"},"content":" ));","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"asdfghjkxd"},"content":" bm.get(\"https://github.com/reposense/testrepo-Alpha/tree/master\"),","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"asdfghjkxd"},"content":" \"Master branch of testrepo-Alpha\"","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"asdfghjkxd"},"content":" bm.get(\"https://github.com/reposense/testrepo-Beta/tree/master\"),","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"asdfghjkxd"},"content":" \"Master branch of testrepo-Beta\"","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"asdfghjkxd"},"content":" bm.get(\"https://github.com/reposense/testrepo-Gamma/tree/master\"),","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"asdfghjkxd"},"content":" \"Master branch of testrepo-Gamma\"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"asdfghjkxd"},"content":" Assertions.assertEquals(","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"asdfghjkxd"},"content":" bm.get(\"https://github.com/reposense/testrepo-Sigma/tree/master\"),","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"asdfghjkxd"},"content":" \"Master branch of testrepo-Sigma\"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"asdfghjkxd"},"content":" );","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"asdfghjkxd"},"content":" }","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"asdfghjkxd"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":101}},{"path":"src/test/java/reposense/parser/GroupConfigParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import reposense.model.FileType;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.model.GroupConfiguration;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidCsvException;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidHeaderException;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"public class GroupConfigParserTest {","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" private static final Path GROUP_CONFIG_MULTI_LOCATION_FILE \u003d loadResource(GroupConfigParserTest.class,","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" \"GroupConfigParserTest/groupconfig_multipleLocation_test.csv\");","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" private static final Path GROUP_CONFIG_EMPTY_LOCATION_FILE \u003d loadResource(GroupConfigParserTest.class,","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" \"GroupConfigParserTest/groupconfig_emptyLocation_test.csv\");","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" private static final Path GROUP_CONFIG_DIFFERENT_COLUMN_ORDER_FILE \u003d loadResource(GroupConfigParserTest.class,","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" \"GroupConfigParserTest/groupconfig_differentColumnOrder_test.csv\");","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private static final Path GROUP_CONFIG_MISSING_OPTIONAL_HEADER_FILE \u003d loadResource(GroupConfigParserTest.class,","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" \"GroupConfigParserTest/groupconfig_missingOptionalHeader_test.csv\");","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final Path GROUP_CONFIG_MISSING_MANDATORY_HEADER_FILE \u003d loadResource(GroupConfigParserTest.class,","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" \"GroupConfigParserTest/groupconfig_missingMandatoryHeader_test.csv\");","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private static final Path GROUP_CONFIG_UNKNOWN_HEADER_FILE \u003d loadResource(GroupConfigParserTest.class,","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" \"GroupConfigParserTest/groupconfig_unknownHeader_test.csv\");","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_BETA_LOCATION \u003d \"https://github.com/reposense/testrepo-Beta.git\";","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" private static final List\u003cFileType\u003e TEST_REPO_BETA_GROUPS \u003d Arrays.asList(","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" new FileType(\"Code\", Arrays.asList(\"**/*.java\", \"**/*.py\")),","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" new FileType(\"Docs\", Collections.singletonList(\"docs/**\")));","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_DELTA_LOCATION \u003d \"https://github.com/reposense/testrepo-Delta.git\";","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" private static final List\u003cFileType\u003e TEST_REPO_DELTA_GROUPS \u003d Arrays.asList(","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" new FileType(\"Main\", Collections.singletonList(\"src/main/**\")),","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" new FileType(\"Test\", Arrays.asList(\"src/test/**\", \"src/systest/**\")));","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" public void groupConfig_emptyLocation_success() throws Exception {","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" GroupConfigCsvParser groupConfigCsvParser \u003d new GroupConfigCsvParser(GROUP_CONFIG_EMPTY_LOCATION_FILE);","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" List\u003cGroupConfiguration\u003e groupConfigs \u003d groupConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, groupConfigs.size());","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" GroupConfiguration actualReposenseConfig \u003d groupConfigs.get(0);","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, actualReposenseConfig.getGroupsList().size());","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" GroupConfiguration actualEmptyLocationConfig \u003d groupConfigs.get(1);","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, actualEmptyLocationConfig.getGroupsList().size());","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" public void groupConfig_multipleLocations_success() throws Exception {","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" GroupConfigCsvParser groupConfigCsvParser \u003d new GroupConfigCsvParser(GROUP_CONFIG_MULTI_LOCATION_FILE);","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" List\u003cGroupConfiguration\u003e groupConfigs \u003d groupConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, groupConfigs.size());","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" GroupConfiguration actualBetaConfig \u003d groupConfigs.get(0);","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_LOCATION, actualBetaConfig.getLocation().toString());","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_GROUPS, actualBetaConfig.getGroupsList());","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" GroupConfiguration actualDeltaConfig \u003d groupConfigs.get(1);","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_DELTA_LOCATION, actualDeltaConfig.getLocation().toString());","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_DELTA_GROUPS, actualDeltaConfig.getGroupsList());","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" public void groupConfig_differentColumnOrder_success() throws Exception {","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" GroupConfigCsvParser groupConfigCsvParser \u003d new GroupConfigCsvParser(GROUP_CONFIG_DIFFERENT_COLUMN_ORDER_FILE);","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" List\u003cGroupConfiguration\u003e groupConfigs \u003d groupConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, groupConfigs.size());","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" GroupConfiguration actualBetaConfig \u003d groupConfigs.get(0);","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_LOCATION, actualBetaConfig.getLocation().toString());","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_GROUPS, actualBetaConfig.getGroupsList());","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" GroupConfiguration actualDeltaConfig \u003d groupConfigs.get(1);","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_DELTA_LOCATION, actualDeltaConfig.getLocation().toString());","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_DELTA_GROUPS, actualDeltaConfig.getGroupsList());","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" public void groupConfig_missingOptionalHeader_success() throws Exception {","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" GroupConfigCsvParser groupConfigCsvParser \u003d new GroupConfigCsvParser(GROUP_CONFIG_MISSING_OPTIONAL_HEADER_FILE);","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" List\u003cGroupConfiguration\u003e groupConfigs \u003d groupConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, groupConfigs.size());","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" Assertions.assertEquals(3, groupConfigs.get(0).getGroupsList().size());","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" public void groupConfig_missingMandatoryHeader_throwsInvalidCsvException() throws Exception {","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" GroupConfigCsvParser groupConfigCsvParser \u003d new GroupConfigCsvParser(","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" GROUP_CONFIG_MISSING_MANDATORY_HEADER_FILE);","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidCsvException.class, () -\u003e groupConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" public void groupConfig_unknownHeader_throwsInvalidHeaderException() throws Exception {","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" GroupConfigCsvParser groupConfigCsvParser \u003d new GroupConfigCsvParser(","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" GROUP_CONFIG_UNKNOWN_HEADER_FILE);","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidHeaderException.class, () -\u003e groupConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2,"-":109}},{"path":"src/test/java/reposense/parser/RepoConfigParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.apache.tools.ant.types.Commandline.translateCommandline;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import static reposense.model.RepoConfiguration.DEFAULT_FILE_SIZE_LIMIT;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.ArrayList;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import reposense.model.AuthorConfiguration;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.model.CliArguments;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.model.CommitHash;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.model.FileType;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidCsvException;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidHeaderException;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import reposense.util.InputBuilder;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import reposense.util.TestUtil;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"public class RepoConfigParserTest {","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" private static final Path TEST_CONFIG_FOLDER \u003d loadResource(RepoConfigParserTest.class, \"repoconfig_merge_test\");","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private static final Path TEST_EMPTY_BRANCH_CONFIG_FOLDER \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" \"repoconfig_empty_branch_test\");","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_NO_SPECIAL_CHARACTER_FILE \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_noSpecialCharacter_test.csv\");","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_OVERRIDE_KEYWORD_FILE \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_overrideKeyword_test.csv\");","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_REDUNDANT_LINES_FILE \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/require_trailing_whitespaces/repoconfig_redundantLines_test.csv\");","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_UNRECOGNIZED_VALUES_FOR_YES_KEYWORD_HEADERS_FILE \u003d","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_unrecognizedValuesForYesKeywordHeaders_test.csv\");","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_DUPLICATE_HEADERS_CASE_SENSITIVE_FILE \u003d","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_duplicateHeadersCaseSensitive_test.csv\");","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_DUPLICATE_HEADERS_CASE_INSENSITIVE_FILE \u003d","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_duplicateHeadersCaseInsensitive_test.csv\");","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_DIFFERENT_COLUMN_ORDER_FILE \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_differentColumnOrder_test.csv\");","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_OPTIONAL_HEADER_MISSING_FILE \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_missingOptionalHeader_test.csv\");","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_MANDATORY_HEADER_MISSING_FILE \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_missingMandatoryHeader_test.csv\");","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" private static final Path MERGE_EMPTY_LOCATION_FOLDER \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_merge_empty_location_test\");","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_UNKNOWN_HEADER_FILE \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_unknownHeaders_test.csv\");","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_INVALID_FILE_SIZE_LIMIT \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_invalidFileSizeLimit_test.csv\");","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_IGNORE_FILE_SIZE_LIMIT \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" \"RepoConfigParserTest/repoconfig_ignoreFileSizeLimit_test.csv\");","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" private static final Path REPO_CONFIG_ZERO_VALID_RECORDS \u003d loadResource(RepoConfigParserTest.class,","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" \"CsvParserTest/repoconfig_zeroValidRecords_test.csv\");","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_BETA_LOCATION \u003d \"https://github.com/reposense/testrepo-Beta.git\";","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_BETA_MASTER_BRANCH \u003d \"master\";","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_BETA_ADD_CONFIG_JSON_BRANCH \u003d \"add-config-json\";","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_DELTA_LOCATION \u003d \"https://github.com/reposense/testrepo-Delta.git\";","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_DELTA_BRANCH \u003d \"HEAD\";","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" private static final List\u003cFileType\u003e TEST_REPO_DELTA_FORMATS \u003d","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" FileType.convertFormatStringsToFileTypes(Arrays.asList(\"java\", \"fxml\"));","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" private static final List\u003cFileType\u003e TEST_REPO_BETA_CONFIG_FORMATS \u003d","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" FileType.convertFormatStringsToFileTypes(Arrays.asList(\"java\", \"adoc\", \"md\"));","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e TEST_REPO_BETA_CONFIG_IGNORED_COMMITS \u003d","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" Arrays.asList(\"abcde12345\", \"67890fdecba\");","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" private static final int FILE_SIZE_LIMIT_VALUE \u003d 100000;","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_CHARLIE_LOCATION \u003d \"https://github.com/reposense/testrepo-Charlie.git\";","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_CHARLIE_BRANCH \u003d \"HEAD\";","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" private static final Author FIRST_AUTHOR \u003d new Author(\"nbriannl\");","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" private static final Author SECOND_AUTHOR \u003d new Author(\"zacharytang\");","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e SECOND_AUTHOR_ALIASES \u003d Arrays.asList(\"Zachary Tang\");","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e REPO_LEVEL_GLOB_LIST \u003d Arrays.asList(\"collated**\");","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e FIRST_AUTHOR_GLOB_LIST \u003d Arrays.asList(\"**.java\", \"collated**\");","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" private static final List\u003cString\u003e SECOND_AUTHOR_GLOB_LIST \u003d Arrays.asList(\"**.doc\", \"collated**\");","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" public void repoConfig_noSpecialCharacter_success() throws Exception {","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d new RepoConfigCsvParser(REPO_CONFIG_NO_SPECIAL_CHARACTER_FILE);","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d repoConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" RepoConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_CONFIG_FORMATS, config.getFileTypeManager().getFormats());","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" Assertions.assertEquals(config.getIgnoreCommitList(),","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" CommitHash.convertStringsToCommits(TEST_REPO_BETA_CONFIG_IGNORED_COMMITS));","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" Assertions.assertEquals(config.getFileSizeLimit(), FILE_SIZE_LIMIT_VALUE);","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isShallowCloningPerformed());","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isFormatsOverriding());","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isIgnoreGlobListOverriding());","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isIgnoreCommitListOverriding());","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isFileSizeLimitOverriding());","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isFileSizeLimitIgnored());","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isIgnoredFileAnalysisSkipped());","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" public void merge_twoRepoConfigs_success() throws Exception {","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" FIRST_AUTHOR.setIgnoreGlobList(FIRST_AUTHOR_GLOB_LIST);","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" SECOND_AUTHOR.setIgnoreGlobList(SECOND_AUTHOR_GLOB_LIST);","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" SECOND_AUTHOR.setAuthorAliases(SECOND_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e expectedAuthors \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" expectedAuthors.add(FIRST_AUTHOR);","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" expectedAuthors.add(SECOND_AUTHOR);","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration firstRepo \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA_LOCATION))","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"asdfghjkxd"},"content":" .branch(TEST_REPO_BETA_MASTER_BRANCH)","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" firstRepo.setAuthorList(expectedAuthors);","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" firstRepo.setAuthorDisplayName(FIRST_AUTHOR, \"Nbr\");","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" firstRepo.setAuthorDisplayName(SECOND_AUTHOR, \"Zac\");","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" firstRepo.addAuthorNamesToAuthorMapEntry(SECOND_AUTHOR, Arrays.asList(\"Zachary Tang\"));","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" firstRepo.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration secondRepo \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA_LOCATION))","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"asdfghjkxd"},"content":" .branch(TEST_REPO_BETA_ADD_CONFIG_JSON_BRANCH)","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" secondRepo.setAuthorList(Arrays.asList(SECOND_AUTHOR));","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" secondRepo.setAuthorDisplayName(SECOND_AUTHOR, \"Zac\");","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" secondRepo.addAuthorNamesToAuthorMapEntry(SECOND_AUTHOR, Arrays.asList(\"Zachary Tang\"));","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" secondRepo.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(TEST_CONFIG_FOLDER).build();","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e authorConfigs \u003d","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" new AuthorConfigCsvParser(cliArguments.getAuthorConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" RepoConfiguration.merge(actualConfigs, authorConfigs);","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, actualConfigs.size());","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(firstRepo, actualConfigs.get(0));","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(secondRepo, actualConfigs.get(1));","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" public void merge_emptyLocation_success() throws Exception {","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" FIRST_AUTHOR.setIgnoreGlobList(FIRST_AUTHOR_GLOB_LIST);","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" SECOND_AUTHOR.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" SECOND_AUTHOR.setAuthorAliases(SECOND_AUTHOR_ALIASES);","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e expectedBetaAuthors \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":" expectedBetaAuthors.add(FIRST_AUTHOR);","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" expectedBetaAuthors.add(SECOND_AUTHOR);","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" List\u003cAuthor\u003e expectedDeltaAuthors \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" expectedDeltaAuthors.add(FIRST_AUTHOR);","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" RepoConfiguration expectedBetaConfig \u003d","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA_LOCATION))","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"asdfghjkxd"},"content":" .branch(TEST_REPO_BETA_MASTER_BRANCH)","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" expectedBetaConfig.setAuthorList(expectedBetaAuthors);","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" expectedBetaConfig.setAuthorDisplayName(FIRST_AUTHOR, \"Nbr\");","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" expectedBetaConfig.setAuthorDisplayName(SECOND_AUTHOR, \"Zac\");","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" expectedBetaConfig.addAuthorNamesToAuthorMapEntry(SECOND_AUTHOR, Arrays.asList(\"Zachary Tang\"));","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" expectedBetaConfig.setIgnoreGlobList(REPO_LEVEL_GLOB_LIST);","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" expectedBetaConfig.setIsShallowCloningPerformed(true);","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" RepoConfiguration expectedDeltaConfig \u003d","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_DELTA_LOCATION))","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"asdfghjkxd"},"content":" .branch(TEST_REPO_DELTA_BRANCH)","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" expectedDeltaConfig.setAuthorList(expectedDeltaAuthors);","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" expectedDeltaConfig.setAuthorDisplayName(FIRST_AUTHOR, \"Nbr\");","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" expectedDeltaConfig.setStandaloneConfigIgnored(true);","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" expectedDeltaConfig.setFormats(TEST_REPO_DELTA_FORMATS);","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e expectedConfigs \u003d new ArrayList\u003c\u003e();","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" expectedConfigs.add(expectedBetaConfig);","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" expectedConfigs.add(expectedDeltaConfig);","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(MERGE_EMPTY_LOCATION_FOLDER).build();","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e authorConfigs \u003d","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" new AuthorConfigCsvParser(cliArguments.getAuthorConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" RepoConfiguration.merge(actualConfigs, authorConfigs);","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, actualConfigs.size());","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedConfigs, actualConfigs);","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfigs.get(0), actualConfigs.get(0));","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedConfigs.get(1), actualConfigs.get(1));","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" public void repoConfig_defaultBranch_success() throws Exception {","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration expectedConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_BETA_LOCATION))","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"asdfghjkxd"},"content":" .branch(RepoConfiguration.DEFAULT_BRANCH)","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":" String input \u003d new InputBuilder().addConfig(TEST_EMPTY_BRANCH_CONFIG_FOLDER).build();","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" CliArguments cliArguments \u003d ArgsParser.parse(translateCommandline(input));","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e actualConfigs \u003d","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(cliArguments.getRepoConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" List\u003cAuthorConfiguration\u003e authorConfigs \u003d","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" new AuthorConfigCsvParser(cliArguments.getAuthorConfigFilePath()).parse();","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" RepoConfiguration.merge(actualConfigs, authorConfigs);","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, actualConfigs.size());","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedConfig.getBranch(), actualConfigs.get(0).getBranch());","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedConfig.getBranch(), authorConfigs.get(0).getBranch());","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":" public void repoConfig_overrideKeyword_success() throws Exception {","isFullCredit":false},{"lineNumber":241,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d new RepoConfigCsvParser(REPO_CONFIG_OVERRIDE_KEYWORD_FILE);","isFullCredit":false},{"lineNumber":242,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d repoConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":243,"author":{"gitId":"-"},"content":" RepoConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":244,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":245,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":246,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":247,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":248,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_CONFIG_FORMATS, config.getFileTypeManager().getFormats());","isFullCredit":false},{"lineNumber":249,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":250,"author":{"gitId":"-"},"content":" Assertions.assertEquals(CommitHash.convertStringsToCommits(TEST_REPO_BETA_CONFIG_IGNORED_COMMITS),","isFullCredit":false},{"lineNumber":251,"author":{"gitId":"-"},"content":" config.getIgnoreCommitList());","isFullCredit":false},{"lineNumber":252,"author":{"gitId":"-"},"content":" Assertions.assertEquals(FILE_SIZE_LIMIT_VALUE, config.getFileSizeLimit());","isFullCredit":false},{"lineNumber":253,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":254,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isFormatsOverriding());","isFullCredit":false},{"lineNumber":255,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isIgnoreGlobListOverriding());","isFullCredit":false},{"lineNumber":256,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isIgnoreCommitListOverriding());","isFullCredit":false},{"lineNumber":257,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isFileSizeLimitOverriding());","isFullCredit":false},{"lineNumber":258,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":259,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":260,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":261,"author":{"gitId":"-"},"content":" public void repoConfig_redundantLines_success() throws Exception {","isFullCredit":false},{"lineNumber":262,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d new RepoConfigCsvParser(REPO_CONFIG_REDUNDANT_LINES_FILE);","isFullCredit":false},{"lineNumber":263,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d repoConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":264,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":265,"author":{"gitId":"-"},"content":" Assertions.assertEquals(3, configs.size());","isFullCredit":false},{"lineNumber":266,"author":{"gitId":"-"},"content":" RepoConfiguration betaConfig \u003d configs.get(0);","isFullCredit":false},{"lineNumber":267,"author":{"gitId":"-"},"content":" RepoConfiguration charlieConfig \u003d configs.get(1);","isFullCredit":false},{"lineNumber":268,"author":{"gitId":"-"},"content":" RepoConfiguration deltaConfig \u003d configs.get(2);","isFullCredit":false},{"lineNumber":269,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":270,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), betaConfig.getLocation());","isFullCredit":false},{"lineNumber":271,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, betaConfig.getBranch());","isFullCredit":false},{"lineNumber":272,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_CHARLIE_LOCATION), charlieConfig.getLocation());","isFullCredit":false},{"lineNumber":273,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_CHARLIE_BRANCH, charlieConfig.getBranch());","isFullCredit":false},{"lineNumber":274,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_DELTA_LOCATION), deltaConfig.getLocation());","isFullCredit":false},{"lineNumber":275,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_DELTA_BRANCH, deltaConfig.getBranch());","isFullCredit":false},{"lineNumber":276,"author":{"gitId":"-"},"content":" Assertions.assertTrue(deltaConfig.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":277,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":278,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":279,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":280,"author":{"gitId":"-"},"content":" public void repoConfig_differentColumnOrder_success() throws Exception {","isFullCredit":false},{"lineNumber":281,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d new RepoConfigCsvParser(REPO_CONFIG_DIFFERENT_COLUMN_ORDER_FILE);","isFullCredit":false},{"lineNumber":282,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d repoConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":283,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":284,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":285,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":286,"author":{"gitId":"-"},"content":" RepoConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":287,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":288,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":289,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":290,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":291,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_CONFIG_FORMATS, config.getFileTypeManager().getFormats());","isFullCredit":false},{"lineNumber":292,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":293,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":294,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":295,"author":{"gitId":"-"},"content":" Assertions.assertEquals(config.getIgnoreCommitList(),","isFullCredit":false},{"lineNumber":296,"author":{"gitId":"-"},"content":" CommitHash.convertStringsToCommits(TEST_REPO_BETA_CONFIG_IGNORED_COMMITS));","isFullCredit":false},{"lineNumber":297,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":298,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isFormatsOverriding());","isFullCredit":false},{"lineNumber":299,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isIgnoreGlobListOverriding());","isFullCredit":false},{"lineNumber":300,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isIgnoreCommitListOverriding());","isFullCredit":false},{"lineNumber":301,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":302,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":303,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":304,"author":{"gitId":"-"},"content":" public void repoConfig_missingOptionalHeader_success() throws Exception {","isFullCredit":false},{"lineNumber":305,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d new RepoConfigCsvParser(REPO_CONFIG_OPTIONAL_HEADER_MISSING_FILE);","isFullCredit":false},{"lineNumber":306,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d repoConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":307,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":308,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, configs.size());","isFullCredit":false},{"lineNumber":309,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":310,"author":{"gitId":"-"},"content":" RepoConfiguration config \u003d configs.get(0);","isFullCredit":false},{"lineNumber":311,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":312,"author":{"gitId":"-"},"content":" Assertions.assertEquals(new RepoLocation(TEST_REPO_BETA_LOCATION), config.getLocation());","isFullCredit":false},{"lineNumber":313,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_MASTER_BRANCH, config.getBranch());","isFullCredit":false},{"lineNumber":314,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":315,"author":{"gitId":"-"},"content":" Assertions.assertEquals(TEST_REPO_BETA_CONFIG_FORMATS, config.getFileTypeManager().getFormats());","isFullCredit":false},{"lineNumber":316,"author":{"gitId":"-"},"content":" Assertions.assertEquals(DEFAULT_FILE_SIZE_LIMIT, config.getFileSizeLimit());","isFullCredit":false},{"lineNumber":317,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":318,"author":{"gitId":"-"},"content":" Assertions.assertTrue(config.isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":319,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":320,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isFormatsOverriding());","isFullCredit":false},{"lineNumber":321,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isIgnoreGlobListOverriding());","isFullCredit":false},{"lineNumber":322,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isIgnoreCommitListOverriding());","isFullCredit":false},{"lineNumber":323,"author":{"gitId":"-"},"content":" Assertions.assertFalse(config.isFileSizeLimitOverriding());","isFullCredit":false},{"lineNumber":324,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":325,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":326,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":327,"author":{"gitId":"-"},"content":" public void repoConfig_withUnrecognizedValuesForYesKeywordHeaders_valuesIgnored() throws Exception {","isFullCredit":false},{"lineNumber":328,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":329,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(REPO_CONFIG_UNRECOGNIZED_VALUES_FOR_YES_KEYWORD_HEADERS_FILE);","isFullCredit":false},{"lineNumber":330,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d repoConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":331,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":332,"author":{"gitId":"-"},"content":" Assertions.assertFalse(configs.get(0).isStandaloneConfigIgnored());","isFullCredit":false},{"lineNumber":333,"author":{"gitId":"-"},"content":" Assertions.assertFalse(configs.get(0).isShallowCloningPerformed());","isFullCredit":false},{"lineNumber":334,"author":{"gitId":"-"},"content":" Assertions.assertFalse(configs.get(0).isFindingPreviousAuthorsPerformed());","isFullCredit":false},{"lineNumber":335,"author":{"gitId":"-"},"content":" Assertions.assertFalse(configs.get(0).isFileSizeLimitIgnored());","isFullCredit":false},{"lineNumber":336,"author":{"gitId":"-"},"content":" Assertions.assertFalse(configs.get(0).isIgnoredFileAnalysisSkipped());","isFullCredit":false},{"lineNumber":337,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":338,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":339,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":340,"author":{"gitId":"-"},"content":" public void repoConfig_invalidFileSizeLimit_valueIgnored() throws Exception {","isFullCredit":false},{"lineNumber":341,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":342,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(REPO_CONFIG_INVALID_FILE_SIZE_LIMIT);","isFullCredit":false},{"lineNumber":343,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d repoConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":344,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":345,"author":{"gitId":"-"},"content":" Assertions.assertEquals(configs.get(0).getFileSizeLimit(), DEFAULT_FILE_SIZE_LIMIT);","isFullCredit":false},{"lineNumber":346,"author":{"gitId":"-"},"content":" Assertions.assertFalse(configs.get(0).isFileSizeLimitOverriding());","isFullCredit":false},{"lineNumber":347,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":348,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":349,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":350,"author":{"gitId":"-"},"content":" public void repoConfig_ignoreFileSizeLimit_ignoreFileSizeColumns() throws Exception {","isFullCredit":false},{"lineNumber":351,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":352,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(REPO_CONFIG_IGNORE_FILE_SIZE_LIMIT);","isFullCredit":false},{"lineNumber":353,"author":{"gitId":"-"},"content":" List\u003cRepoConfiguration\u003e configs \u003d repoConfigCsvParser.parse();","isFullCredit":false},{"lineNumber":354,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":355,"author":{"gitId":"-"},"content":" Assertions.assertTrue(configs.get(0).isFileSizeLimitIgnored());","isFullCredit":false},{"lineNumber":356,"author":{"gitId":"-"},"content":" Assertions.assertFalse(configs.get(0).isFileSizeLimitOverriding());","isFullCredit":false},{"lineNumber":357,"author":{"gitId":"-"},"content":" Assertions.assertFalse(configs.get(0).isIgnoredFileAnalysisSkipped());","isFullCredit":false},{"lineNumber":358,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":359,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":360,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":361,"author":{"gitId":"-"},"content":" public void repoConfig_mandatoryHeaderMissing_throwsInvalidCsvException() throws Exception {","isFullCredit":false},{"lineNumber":362,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d new RepoConfigCsvParser(REPO_CONFIG_MANDATORY_HEADER_MISSING_FILE);","isFullCredit":false},{"lineNumber":363,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidCsvException.class, () -\u003e repoConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":364,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":365,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":366,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":367,"author":{"gitId":"-"},"content":" public void repoConfig_zeroValidRecords_throwsInvalidCsvException() throws Exception {","isFullCredit":false},{"lineNumber":368,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d new RepoConfigCsvParser(REPO_CONFIG_ZERO_VALID_RECORDS);","isFullCredit":false},{"lineNumber":369,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidCsvException.class, () -\u003e repoConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":370,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":371,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":372,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":373,"author":{"gitId":"-"},"content":" public void repoConfig_duplicateHeadersCaseSensitive_throwsInvalidCsvException() throws Exception {","isFullCredit":false},{"lineNumber":374,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":375,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(REPO_CONFIG_DUPLICATE_HEADERS_CASE_SENSITIVE_FILE);","isFullCredit":false},{"lineNumber":376,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidCsvException.class, () -\u003e repoConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":377,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":378,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":379,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":380,"author":{"gitId":"-"},"content":" public void repoConfig_duplicateHeadersCaseInsensitive_throwsInvalidCsvException() throws Exception {","isFullCredit":false},{"lineNumber":381,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":382,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(REPO_CONFIG_DUPLICATE_HEADERS_CASE_INSENSITIVE_FILE);","isFullCredit":false},{"lineNumber":383,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidCsvException.class, () -\u003e repoConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":384,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":385,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":386,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":387,"author":{"gitId":"-"},"content":" public void repoConfig_unknownHeaders_throwsInvalidHeaderException() throws Exception {","isFullCredit":false},{"lineNumber":388,"author":{"gitId":"-"},"content":" RepoConfigCsvParser repoConfigCsvParser \u003d","isFullCredit":false},{"lineNumber":389,"author":{"gitId":"-"},"content":" new RepoConfigCsvParser(REPO_CONFIG_UNKNOWN_HEADER_FILE);","isFullCredit":false},{"lineNumber":390,"author":{"gitId":"-"},"content":" Assertions.assertThrows(InvalidHeaderException.class, () -\u003e repoConfigCsvParser.parse());","isFullCredit":false},{"lineNumber":391,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":392,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":22,"-":370}},{"path":"src/test/java/reposense/parser/StandaloneConfigJsonParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.parser;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static reposense.util.TestUtil.loadResource;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeAll;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import com.google.gson.JsonSyntaxException;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import reposense.model.CommitHash;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import reposense.model.FileType;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.model.FileTypeTest;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import reposense.model.StandaloneConfig;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import reposense.util.TestUtil;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"public class StandaloneConfigJsonParserTest {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private static final Path STANDALONE_MALFORMED_CONFIG \u003d loadResource(","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" StandaloneConfigJsonParserTest.class, \"StandaloneConfigJsonParserTest/standaloneConfig_malformedJson.json\");","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" private static final Path STANDALONE_UNKNOWN_PROPERTY_CONFIG \u003d loadResource(","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" StandaloneConfigJsonParserTest.class,","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" \"StandaloneConfigJsonParserTest/standaloneConfig_unknownPropertyInJson.json\");","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" private static final Path STANDALONE_CONFIG_FULL \u003d loadResource(","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" StandaloneConfigJsonParserTest.class,","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" \"StandaloneConfigJsonParserTest/standaloneConfig_full.json\");","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" private static final Path STANDALONE_CONFIG_EMPTY_TEXT_FILE \u003d loadResource(","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" StandaloneConfigJsonParserTest.class,","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" \"StandaloneConfigJsonParserTest/standaloneConfig_emptyText.json\");","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" private static final Path STANDALONE_CONFIG_EMPTY_JSON_FILE \u003d loadResource(","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" StandaloneConfigJsonParserTest.class,","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" \"StandaloneConfigJsonParserTest/standaloneConfig_emptyJson.json\");","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" private static final Path STANDALONE_CONFIG_GITHUBID_ONLY \u003d loadResource(","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" StandaloneConfigJsonParserTest.class,","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" \"StandaloneConfigJsonParserTest/standaloneConfig_githubId_only.json\");","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" private static final String TEST_DUMMY_LOCATION \u003d \"https://github.com/reposense/RepoSense.git\";","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" private static RepoConfiguration expectedGithubIdOnlyRepoconfig;","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" private static RepoConfiguration expectedFullRepoConfig;","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" @BeforeAll","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" public static void setUp() throws Exception {","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" Author author \u003d new Author(\"yong24s\");","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" author.setAuthorAliases(Arrays.asList(\"Yong Hao TENG\"));","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" author.setIgnoreGlobList(Arrays.asList(\"**.css\", \"**.html\", \"**.jade\", \"**.js\"));","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"asdfghjkxd"},"content":" expectedGithubIdOnlyRepoconfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_DUMMY_LOCATION)).build();","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" expectedGithubIdOnlyRepoconfig.setFormats(FileTypeTest.NO_SPECIFIED_FORMATS);","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" expectedGithubIdOnlyRepoconfig.setAuthorList(Arrays.asList(new Author(\"yong24s\")));","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" expectedGithubIdOnlyRepoconfig.addAuthorEmailsToAuthorMapEntry(author, author.getEmails());","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"asdfghjkxd"},"content":" expectedFullRepoConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_DUMMY_LOCATION)).build();","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.setFormats(FileType.convertFormatStringsToFileTypes(","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" Arrays.asList(\"gradle\", \"jade\", \"java\", \"js\", \"md\", \"scss\", \"yml\")));","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.setIgnoreCommitList(Arrays.asList(new CommitHash(","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" \"7b96c563eb2d3612aa5275364333664a18f01491\")));","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.setIgnoreGlobList(Arrays.asList(\"**.adoc\", \"collate**\"));","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.setIgnoredAuthorsList(Arrays.asList(\"yong24s\"));","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.setAuthorList(Arrays.asList(author));","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.setAuthorDisplayName(author, \"Yong Hao\");","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.addAuthorNamesToAuthorMapEntry(author, Arrays.asList(author.getGitId()));","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.addAuthorNamesToAuthorMapEntry(author, author.getAuthorAliases());","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" expectedFullRepoConfig.addAuthorEmailsToAuthorMapEntry(author, author.getEmails());","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" public void standaloneConfig_parseEmptyTextFile_success() throws Exception {","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" new StandaloneConfigJsonParser().parse(STANDALONE_CONFIG_EMPTY_TEXT_FILE);","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" public void standaloneConfig_parseEmptyJsonFile_success() throws Exception {","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" new StandaloneConfigJsonParser().parse(STANDALONE_CONFIG_EMPTY_JSON_FILE);","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" public void standaloneConfig_ignoresUnknownProperty_success() throws Exception {","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" new StandaloneConfigJsonParser().parse(STANDALONE_UNKNOWN_PROPERTY_CONFIG);","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" public void standaloneConfig_correctConfig_success() throws Exception {","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" StandaloneConfig config \u003d new StandaloneConfigJsonParser().parse(STANDALONE_CONFIG_FULL);","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" assertSameConfig(expectedFullRepoConfig, config);","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":" public void standaloneConfig_githubIdOnlyConfig_success() throws Exception {","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" StandaloneConfig config \u003d new StandaloneConfigJsonParser().parse(STANDALONE_CONFIG_GITHUBID_ONLY);","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" assertSameConfig(expectedGithubIdOnlyRepoconfig, config);","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" public void standaloneConfig_malformedJsonFile_throwsJsonSyntaxException() {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" Assertions.assertThrows(JsonSyntaxException.class, () -\u003e new StandaloneConfigJsonParser()","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" .parse(STANDALONE_MALFORMED_CONFIG));","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" private void assertSameConfig(RepoConfiguration expectedRepoConfig, StandaloneConfig actualStandaloneConfig)","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" throws Exception {","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration actualRepoConfig \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_DUMMY_LOCATION)).build();","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" actualRepoConfig.update(actualStandaloneConfig);","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" TestUtil.compareRepoConfig(expectedRepoConfig, actualRepoConfig);","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":6,"-":114}},{"path":"src/test/java/reposense/report/ErrorSummaryTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.report;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"import reposense.parser.exceptions.InvalidLocationException;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"public class ErrorSummaryTest {","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":" public void errorSummary_addRepeatedErrorMessage_containsNoDuplicates() {","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":" String invalidLocation1 \u003d \"ttp://github.com/reposense.RepoSense.git\";","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":" String invalidLocation2 \u003d \"https://github.com/contains-illegal-chars/^\\\\/\";","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":" String invalidLocation3 \u003d \"not-valid-protocol://abc.com/reposense/RepoSense.git\";","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":" ErrorSummary errorSummaryInstance \u003d ErrorSummary.getInstance();","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" errorSummaryInstance.clearErrorSet();","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" new RepoLocation(invalidLocation1);","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":" } catch (InvalidLocationException e) {","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" // not relevant to the test","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, errorSummaryInstance.getErrorSet().size());","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" new RepoLocation(invalidLocation1);","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" } catch (InvalidLocationException e) {","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" // not relevant to the test","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" Assertions.assertEquals(1, errorSummaryInstance.getErrorSet().size());","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" new RepoLocation(invalidLocation2);","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" } catch (InvalidLocationException e) {","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" // not relevant to the test","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, errorSummaryInstance.getErrorSet().size());","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" new RepoLocation(invalidLocation1);","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" } catch (InvalidLocationException e) {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" // not relevant to the test","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" Assertions.assertEquals(2, errorSummaryInstance.getErrorSet().size());","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" new RepoLocation(invalidLocation3);","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" } catch (InvalidLocationException e) {","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" // not relevant to the test","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" Assertions.assertEquals(3, errorSummaryInstance.getErrorSet().size());","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":1,"-":53}},{"path":"src/test/java/reposense/report/RepoClonerTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.report;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import reposense.util.TestRepoCloner;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"public class RepoClonerTest {","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_EMPTY_GIT_LOCATION \u003d \"https://github.com/reposense/testrepo-Empty.git\";","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":" private static final String TEST_REPO_GIT_LOCATION \u003d \"https://github.com/reposense/testrepo-Alpha.git\";","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":" private static final Path REPOCLONE_LOCAL_TEST_PATH \u003d","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":" Paths.get(FileUtil.REPOS_ADDRESS, \"repoclone test/dummy-repo\");","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" public void repoCloner_emptyRepo_failsGracefully() throws Exception {","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":" RepoConfiguration emptyRepositoryRepoConfig \u003d","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_EMPTY_GIT_LOCATION)).build();","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":" RepoCloner repoCloner \u003d new RepoCloner();","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" repoCloner.cloneBare(emptyRepositoryRepoConfig);","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" RepoLocation clonedRepoLocation \u003d repoCloner.getClonedRepoLocation();","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":" Assertions.assertNull(clonedRepoLocation);","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" @Test","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" public void repoCloner_validRepoLocationWithRelativePathingAndSpaces_success() throws Exception {","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" // Clones a test repository into the test directory for testing of relative pathing","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"asdfghjkxd"},"content":" RepoConfiguration tempRemoteConfiguration \u003d new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_GIT_LOCATION)).build();","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneBare(tempRemoteConfiguration, Paths.get(\".\"), REPOCLONE_LOCAL_TEST_PATH.toString());","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" RepoConfiguration repoWithRelativePathingAndSpacesAndEndingBackslash \u003d","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"asdfghjkxd"},"content":" new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(REPOCLONE_LOCAL_TEST_PATH.toString())).build();","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" RepoCloner repoCloner \u003d new RepoCloner();","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" repoCloner.cloneBare(repoWithRelativePathingAndSpacesAndEndingBackslash);","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" Assertions.assertTrue(Files.exists(REPOCLONE_LOCAL_TEST_PATH));","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":6,"-":43}},{"path":"src/test/java/reposense/template/GitTestTemplate.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.template;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import static reposense.parser.ArgsParser.DEFAULT_ORIGINALITY_THRESHOLD;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.io.File;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.util.Arrays;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.util.Collections;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.Iterator;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.function.Supplier;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.AfterEach;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeAll;","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.BeforeEach;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.authorship.FileInfoAnalyzer;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"import reposense.authorship.FileInfoExtractor;","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"import reposense.authorship.model.FileInfo;","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":"import reposense.authorship.model.FileResult;","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":"import reposense.authorship.model.LineInfo;","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"import reposense.git.GitCheckout;","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":"import reposense.git.GitShow;","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":"import reposense.git.exception.CommitNotFoundException;","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"import reposense.model.CommitHash;","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":"import reposense.model.FileTypeTest;","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":"import reposense.model.RepoLocation;","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"import reposense.util.FileUtil;","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":"import reposense.util.TestRepoCloner;","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":" * Contains templates for git testing.","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":"public class GitTestTemplate {","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" protected static final String TEST_REPO_GIT_LOCATION \u003d \"https://github.com/reposense/testrepo-Alpha.git\";","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" protected static final String IGNORE_REVS_FILE_NAME \u003d \".git-blame-ignore-revs\";","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" protected static final String TEST_REPO_BLAME_WITH_PREVIOUS_AUTHORS_BRANCH \u003d \"1565-find-previous-authors\";","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" protected static final String FIRST_COMMIT_HASH \u003d \"7d7584f\";","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" protected static final String ROOT_COMMIT_HASH \u003d \"fd425072e12004b71d733a58d819d845509f8db3\";","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":" protected static final String TEST_COMMIT_HASH \u003d \"2fb6b9b\";","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" protected static final String TEST_COMMIT_HASH_LONG \u003d \"2fb6b9b2dd9fa40bf0f9815da2cb0ae8731436c7\";","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" protected static final String TEST_COMMIT_HASH_PARENT \u003d \"c5a6dc774e22099cd9ddeb0faff1e75f9cf4f151\";","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" protected static final String SECOND_COMMIT_HASH \u003d \"05310e79fe8e54c5096bacc97b886ab24304d12b\";","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" protected static final String MERGE_COMMIT_HASH \u003d \"7937ff5334ee45cb51e8cfd83a2237d33568a20c\";","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" protected static final List\u003cString\u003e MERGE_COMMIT_PARENTS_HASHES \u003d Arrays.asList(","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" \"22aec0be218b0c71065e65460ab48a2d95c8c681\", \"271bfbb0f0624481825abd812ff1d27768f9aba0\");","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" protected static final String MAIN_AUTHOR_NAME \u003d \"harryggg\";","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":" protected static final String FAKE_AUTHOR_NAME \u003d \"fakeAuthor\";","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" protected static final String UNCONVENTIONAL_AUTHOR_NAME \u003d \"-unconventional_author-\";","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":" protected static final String WHITESPACE_AUTHOR_NAME \u003d \"whitespace author\";","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"-"},"content":" protected static final String IGNORED_AUTHOR_NAME \u003d \"FH-30\";","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"-"},"content":" protected static final String EUGENE_AUTHOR_NAME \u003d \"eugenepeh\";","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"-"},"content":" protected static final String YONG_AUTHOR_NAME \u003d \"Yong Hao TENG\";","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"-"},"content":" protected static final String MINGYI_AUTHOR_NAME \u003d \"myteo\";","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":" protected static final String SHICHEN_AUTHOR_NAME \u003d \"SkyBlaise\";","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" protected static final String JAMES_AUTHOR_NAME \u003d \"jamessspanggg\";","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" protected static final String JAMES_ALTERNATIVE_AUTHOR_NAME \u003d \"James Pang\";","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" protected static final String JINYAO_AUTHOR_NAME \u003d \"jylee-git\";","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" protected static final String CHENGYU_AUTHOR_NAME \u003d \"HCY123902\";","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" protected static final String LATEST_COMMIT_HASH \u003d \"abbd5888d5cd4e411c6a8e58e661b0eafdae1335\";","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" protected static final String LATEST_COMMIT_HASH_PARENT \u003d \"f768b9b1d9d1478f8ac8cf3b4c7f868479edc07a\";","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" protected static final String EMPTY_TREE_HASH \u003d \"4b825dc642cb6eb9a060e54bf8d69288fbee4904\";","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" protected static final String EUGENE_AUTHOR_README_FILE_COMMIT_07052018_STRING \u003d","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" \"2d87a431fcbb8f73a731b6df0fcbee962c85c250\";","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" protected static final CommitHash EUGENE_AUTHOR_README_FILE_COMMIT_07052018 \u003d","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" new CommitHash(EUGENE_AUTHOR_README_FILE_COMMIT_07052018_STRING);","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" protected static final String FAKE_AUTHOR_BLAME_TEST_FILE_COMMIT_08022018_STRING \u003d","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" \"768015345e70f06add2a8b7d1f901dc07bf70582\";","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" protected static final CommitHash FAKE_AUTHOR_BLAME_TEST_FILE_COMMIT_08022018 \u003d","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" new CommitHash(FAKE_AUTHOR_BLAME_TEST_FILE_COMMIT_08022018_STRING);","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" protected static final String MAIN_AUTHOR_BLAME_TEST_FILE_COMMIT_06022018_STRING \u003d","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" \"8d0ac2ee20f04dce8df0591caed460bffacb65a4\";","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":" protected static final CommitHash MAIN_AUTHOR_BLAME_TEST_FILE_COMMIT_06022018 \u003d","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" new CommitHash(MAIN_AUTHOR_BLAME_TEST_FILE_COMMIT_06022018_STRING);","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" protected static final String AUTHOR_TO_IGNORE_BLAME_TEST_FILE_COMMIT_07082021_STRING \u003d","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" \"1d29339e7d16eb5b2bc8fb542e08acedd3d4b0eb\";","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" protected static final CommitHash AUTHOR_TO_IGNORE_BLAME_TEST_FILE_COMMIT_07082021 \u003d","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" new CommitHash(AUTHOR_TO_IGNORE_BLAME_TEST_FILE_COMMIT_07082021_STRING);","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" protected static final String FAKE_AUTHOR_BLAME_RANGED_COMMIT_ONE_06022018_STRING \u003d","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" \"7d7584fc204922cc5ff3bd5ca073cad6bed2c46a\";","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" protected static final String FAKE_AUTHOR_BLAME_RANGED_COMMIT_TWO_06022018_STRING \u003d","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" \"8d0ac2ee20f04dce8df0591caed460bffacb65a4\";","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" protected static final String FAKE_AUTHOR_BLAME_RANGED_COMMIT_THREE_07022018_STRING \u003d","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":" \"8e4ca1da5d413e9ab84a1e8d1474918afa97f7a1\";","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" protected static final String FAKE_AUTHOR_BLAME_RANGED_COMMIT_FOUR_08022018_STRING \u003d","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" \"768015345e70f06add2a8b7d1f901dc07bf70582\";","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" protected static final List\u003cCommitHash\u003e FAKE_AUTHOR_BLAME_RANGED_COMMIT_LIST_09022018 \u003d Arrays.asList(","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":" new CommitHash(FAKE_AUTHOR_BLAME_RANGED_COMMIT_ONE_06022018_STRING),","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" new CommitHash(FAKE_AUTHOR_BLAME_RANGED_COMMIT_TWO_06022018_STRING),","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" new CommitHash(FAKE_AUTHOR_BLAME_RANGED_COMMIT_THREE_07022018_STRING),","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" new CommitHash(FAKE_AUTHOR_BLAME_RANGED_COMMIT_FOUR_08022018_STRING));","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" protected static final List\u003cCommitHash\u003e AUTHOR_TO_IGNORE_BLAME_COMMIT_LIST_07082021 \u003d Collections.singletonList(","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" new CommitHash(AUTHOR_TO_IGNORE_BLAME_TEST_FILE_COMMIT_07082021_STRING)","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" );","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" protected static final String NONEXISTENT_COMMIT_HASH \u003d \"nonExistentCommitHash\";","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" protected static final ZoneId TIME_ZONE_ID \u003d ZoneId.of(\"Asia/Singapore\");","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" protected static final Author MAIN_AUTHOR \u003d new Author(MAIN_AUTHOR_NAME);","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" protected static final Author FAKE_AUTHOR \u003d new Author(FAKE_AUTHOR_NAME);","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" protected static final Author UNCONVENTIONAL_AUTHOR \u003d new Author(UNCONVENTIONAL_AUTHOR_NAME);","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" protected static final Author WHITESPACE_AUTHOR \u003d new Author(WHITESPACE_AUTHOR_NAME);","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" protected static ThreadLocal\u003cRepoConfiguration\u003e configs \u003d ThreadLocal.withInitial(() -\u003e {","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":" return newRepoConfiguration();","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" } catch (Exception e) {","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" throw new RuntimeException(e);","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" });","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" private static final Supplier\u003cString\u003e EXTRA_OUTPUT_FOLDER_NAME_SUPPLIER \u003d () -\u003e","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" String.valueOf(Thread.currentThread().getId());","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":" private FileInfoExtractor fileInfoExtractor \u003d new FileInfoExtractor();","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" private FileInfoAnalyzer fileInfoAnalyzer \u003d new FileInfoAnalyzer();","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" @BeforeEach","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" public void before() throws Exception {","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" RepoConfiguration config \u003d newRepoConfiguration();","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" config.setAuthorList(Collections.singletonList(getAlphaAllAliasAuthor()));","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" config.setFormats(FileTypeTest.DEFAULT_TEST_FORMATS);","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":" config.setZoneId(TIME_ZONE_ID);","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" config.setIsLastModifiedDateIncluded(false);","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" configs.set(config);","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" @BeforeAll","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":" public static void beforeClass() throws Exception {","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" RepoConfiguration config \u003d newRepoConfiguration();","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" config.setZoneId(TIME_ZONE_ID);","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" configs.set(config);","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" TestRepoCloner.cloneAndBranch(config, EXTRA_OUTPUT_FOLDER_NAME_SUPPLIER.get());","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":" @AfterEach","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" public void after() {","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" GitCheckout.checkout(configs.get().getRepoRoot(), \"master\");","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":" private static RepoConfiguration newRepoConfiguration() throws Exception {","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"asdfghjkxd"},"content":" return new RepoConfiguration.Builder()","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"asdfghjkxd"},"content":" .location(new RepoLocation(TEST_REPO_GIT_LOCATION))","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"asdfghjkxd"},"content":" .branch(\"master\")","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"asdfghjkxd"},"content":" .extraOutputFolderName(EXTRA_OUTPUT_FOLDER_NAME_SUPPLIER.get())","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"asdfghjkxd"},"content":" .build();","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" * Generates the .git-blame-ignore-revs file containing {@link CommitHash}es","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" * from {@code toIgnore} for the test repo.","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" public List\u003cCommitHash\u003e createTestIgnoreRevsFile(List\u003cCommitHash\u003e toIgnore) {","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" String repoRoot \u003d configs.get().getRepoRoot();","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":" List\u003cCommitHash\u003e expandedIgnoreCommitList \u003d toIgnore.stream()","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" .map(CommitHash::toString)","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" .map(commitHash -\u003e {","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" return GitShow.getExpandedCommitHash(repoRoot, commitHash);","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" } catch (CommitNotFoundException e) {","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" return new CommitHash(commitHash);","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" })","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" String fileLocation \u003d repoRoot + IGNORE_REVS_FILE_NAME;","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" FileUtil.writeIgnoreRevsFile(fileLocation, expandedIgnoreCommitList);","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" return expandedIgnoreCommitList;","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" public void removeTestIgnoreRevsFile() {","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" String fileLocation \u003d configs.get().getRepoRoot() + IGNORE_REVS_FILE_NAME;","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" new File(fileLocation).delete();","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" * For each line in {@link FileResult}, assert that it is attributed to the expected author provided by","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" * {@code expectedLineAuthors}.","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" public void assertFileAnalysisCorrectness(FileResult fileResult, List\u003cAuthor\u003e expectedLineAuthors) {","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":" List\u003cLineInfo\u003e lines \u003d fileResult.getLines();","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" assertEquals(expectedLineAuthors.size(), lines.size());","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" Iterator\u003cAuthor\u003e lineAuthorsItr \u003d expectedLineAuthors.iterator();","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" Iterator\u003cLineInfo\u003e linesItr \u003d lines.iterator();","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" while (linesItr.hasNext() \u0026\u0026 lineAuthorsItr.hasNext()) {","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":" assertEquals(lineAuthorsItr.next(), linesItr.next().getAuthor());","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" public FileResult getFileResult(String relativePath) {","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" FileInfo fileInfo \u003d fileInfoExtractor.generateFileInfo(configs.get(), relativePath);","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"-"},"content":" return fileInfoAnalyzer.analyzeTextFile(configs.get(), fileInfo, false, DEFAULT_ORIGINALITY_THRESHOLD);","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" * Returns a {@link Author} that has git id and aliases of all authors in testrepo-Alpha, so that no commits","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" * will be filtered out in the `git log` command.","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":" protected Author getAlphaAllAliasAuthor() {","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" Author author \u003d new Author(MAIN_AUTHOR_NAME);","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" author.setAuthorAliases(Arrays.asList(FAKE_AUTHOR_NAME, EUGENE_AUTHOR_NAME, YONG_AUTHOR_NAME));","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" return author;","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":5,"-":206}},{"path":"src/test/java/reposense/util/TestUtil.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package reposense.util;","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"-"},"content":"import java.net.URISyntaxException;","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.net.URL;","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"-"},"content":"import java.nio.file.Files;","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"-"},"content":"import java.nio.file.Path;","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"-"},"content":"import java.nio.file.Paths;","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"-"},"content":"import java.time.LocalDateTime;","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"-"},"content":"import java.time.ZoneId;","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"-"},"content":"import java.util.HashSet;","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"-"},"content":"import java.util.List;","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"-"},"content":"import java.util.Set;","isFullCredit":false},{"lineNumber":13,"author":{"gitId":"-"},"content":"import java.util.stream.Collectors;","isFullCredit":false},{"lineNumber":14,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":15,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Assertions;","isFullCredit":false},{"lineNumber":16,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":17,"author":{"gitId":"-"},"content":"import reposense.git.GitLog;","isFullCredit":false},{"lineNumber":18,"author":{"gitId":"-"},"content":"import reposense.model.Author;","isFullCredit":false},{"lineNumber":19,"author":{"gitId":"-"},"content":"import reposense.model.RepoConfiguration;","isFullCredit":false},{"lineNumber":20,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":21,"author":{"gitId":"-"},"content":"/**","isFullCredit":false},{"lineNumber":22,"author":{"gitId":"-"},"content":" * Contains testing related functionalities.","isFullCredit":false},{"lineNumber":23,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":24,"author":{"gitId":"-"},"content":"public class TestUtil {","isFullCredit":false},{"lineNumber":25,"author":{"gitId":"-"},"content":" private static final int[] END_OF_DAY_TIME \u003d {23, 59, 59};","isFullCredit":false},{"lineNumber":26,"author":{"gitId":"-"},"content":" private static final int[] START_OF_DAY_TIME \u003d {0, 0, 0};","isFullCredit":false},{"lineNumber":27,"author":{"gitId":"-"},"content":" private static final String MESSAGE_COMPARING_FILES \u003d \"Comparing files %s \u0026 %s\\n\";","isFullCredit":false},{"lineNumber":28,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":29,"author":{"gitId":"-"},"content":" private static final String MESSAGE_LINE_CONTENT_DIFFERENT \u003d \"Content different at line number %d:\\n\"","isFullCredit":false},{"lineNumber":30,"author":{"gitId":"-"},"content":" + \"\u003c\u003c %s\\n\"","isFullCredit":false},{"lineNumber":31,"author":{"gitId":"-"},"content":" + \"\u003e\u003e %s\\n\";","isFullCredit":false},{"lineNumber":32,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":33,"author":{"gitId":"-"},"content":" private static final String MESSAGE_LINES_LENGTH_DIFFERENT \u003d \"The files\u0027 lines count do not match.\";","isFullCredit":false},{"lineNumber":34,"author":{"gitId":"-"},"content":" private static final String MOVED_FILE_INDICATION \u003d \"\u003d\u003e \";","isFullCredit":false},{"lineNumber":35,"author":{"gitId":"-"},"content":" private static final int STAT_FILE_PATH_INDEX \u003d 2;","isFullCredit":false},{"lineNumber":36,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":37,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":38,"author":{"gitId":"-"},"content":" * Returns true if the contents of the files at {@code expected} and {@code actual} are the same.","isFullCredit":false},{"lineNumber":39,"author":{"gitId":"-"},"content":" * Also prints out error message if the lines count are different,","isFullCredit":false},{"lineNumber":40,"author":{"gitId":"-"},"content":" * else prints out the first line of content difference (if any).","isFullCredit":false},{"lineNumber":41,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":42,"author":{"gitId":"-"},"content":" public static boolean compareFileContents(Path expected, Path actual) throws Exception {","isFullCredit":false},{"lineNumber":43,"author":{"gitId":"-"},"content":" return compareFileContents(expected, actual, 1);","isFullCredit":false},{"lineNumber":44,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":45,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":46,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":47,"author":{"gitId":"-"},"content":" * Returns true if the contents of the files at {@code expected} and {@code actual} are the same.","isFullCredit":false},{"lineNumber":48,"author":{"gitId":"-"},"content":" * Also prints out error message if the lines count are different,","isFullCredit":false},{"lineNumber":49,"author":{"gitId":"-"},"content":" * else prints out maximum {@code maxTraceCounts} lines of content difference (if any).","isFullCredit":false},{"lineNumber":50,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":51,"author":{"gitId":"-"},"content":" public static boolean compareFileContents(Path expected, Path actual, int maxTraceCounts) throws Exception {","isFullCredit":false},{"lineNumber":52,"author":{"gitId":"-"},"content":" int traceCounts \u003d 0;","isFullCredit":false},{"lineNumber":53,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":54,"author":{"gitId":"-"},"content":" System.out.println(String.format(MESSAGE_COMPARING_FILES, expected, actual));","isFullCredit":false},{"lineNumber":55,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":56,"author":{"gitId":"asdfghjkxd"},"content":" String[] expectedContent \u003d StringsUtil.NEWLINE.split(new String(Files.readAllBytes(expected))","isFullCredit":false},{"lineNumber":57,"author":{"gitId":"asdfghjkxd"},"content":" .replace(\"\\r\", \"\"));","isFullCredit":false},{"lineNumber":58,"author":{"gitId":"asdfghjkxd"},"content":" String[] actualContent \u003d StringsUtil.NEWLINE.split(new String(Files.readAllBytes(actual))","isFullCredit":false},{"lineNumber":59,"author":{"gitId":"asdfghjkxd"},"content":" .replace(\"\\r\", \"\"));","isFullCredit":false},{"lineNumber":60,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":61,"author":{"gitId":"-"},"content":" for (int i \u003d 0; i \u003c Math.min(expectedContent.length, actualContent.length); i++) {","isFullCredit":false},{"lineNumber":62,"author":{"gitId":"-"},"content":" if (!expectedContent[i].equals(actualContent[i])) {","isFullCredit":false},{"lineNumber":63,"author":{"gitId":"-"},"content":" System.out.println(","isFullCredit":false},{"lineNumber":64,"author":{"gitId":"-"},"content":" String.format(MESSAGE_LINE_CONTENT_DIFFERENT, i + 1, expectedContent[i], actualContent[i]));","isFullCredit":false},{"lineNumber":65,"author":{"gitId":"-"},"content":" if (++traceCounts \u003e\u003d maxTraceCounts) {","isFullCredit":false},{"lineNumber":66,"author":{"gitId":"-"},"content":" break;","isFullCredit":false},{"lineNumber":67,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":68,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":69,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":70,"author":{"gitId":"-"},"content":" if (expectedContent.length !\u003d actualContent.length) {","isFullCredit":false},{"lineNumber":71,"author":{"gitId":"-"},"content":" System.out.println(MESSAGE_LINES_LENGTH_DIFFERENT);","isFullCredit":false},{"lineNumber":72,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":73,"author":{"gitId":"-"},"content":" } else if (traceCounts \u003e\u003d maxTraceCounts) {","isFullCredit":false},{"lineNumber":74,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":75,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":76,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":77,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":78,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":79,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":80,"author":{"gitId":"-"},"content":" * Returns true if {@code expected} directory has all files with same content as {@code actual} directory.","isFullCredit":false},{"lineNumber":81,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":82,"author":{"gitId":"-"},"content":" public static boolean compareDirectories(Path expected, Path actual) throws Exception {","isFullCredit":false},{"lineNumber":83,"author":{"gitId":"-"},"content":" List\u003cPath\u003e expectedPaths \u003d Files.walk(expected)","isFullCredit":false},{"lineNumber":84,"author":{"gitId":"-"},"content":" .sorted()","isFullCredit":false},{"lineNumber":85,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":86,"author":{"gitId":"-"},"content":" List\u003cPath\u003e actualPaths \u003d Files.walk(actual)","isFullCredit":false},{"lineNumber":87,"author":{"gitId":"-"},"content":" .sorted()","isFullCredit":false},{"lineNumber":88,"author":{"gitId":"-"},"content":" .collect(Collectors.toList());","isFullCredit":false},{"lineNumber":89,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":90,"author":{"gitId":"-"},"content":" if (expectedPaths.size() !\u003d actualPaths.size()) {","isFullCredit":false},{"lineNumber":91,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":92,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":93,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":94,"author":{"gitId":"-"},"content":" for (int i \u003d 0; i \u003c expectedPaths.size(); i++) {","isFullCredit":false},{"lineNumber":95,"author":{"gitId":"-"},"content":" if (!(Files.isDirectory(expectedPaths.get(i)) || Files.isDirectory(actualPaths.get(i)))","isFullCredit":false},{"lineNumber":96,"author":{"gitId":"-"},"content":" \u0026\u0026 !TestUtil.compareFileContents(expectedPaths.get(i), actualPaths.get(i))) {","isFullCredit":false},{"lineNumber":97,"author":{"gitId":"-"},"content":" return false;","isFullCredit":false},{"lineNumber":98,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":99,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":100,"author":{"gitId":"-"},"content":" return true;","isFullCredit":false},{"lineNumber":101,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":102,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":103,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":104,"author":{"gitId":"-"},"content":" * Creates and returns a {@link LocalDateTime} object with the specified {@code year}, {@code month}, {@code day}","isFullCredit":false},{"lineNumber":105,"author":{"gitId":"-"},"content":" * and {@code time}.","isFullCredit":false},{"lineNumber":106,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":107,"author":{"gitId":"-"},"content":" public static LocalDateTime getDate(int year, int month, int date, int[] time) {","isFullCredit":false},{"lineNumber":108,"author":{"gitId":"-"},"content":" return LocalDateTime.of(year, month, date, time[0], time[1], time[2], 0);","isFullCredit":false},{"lineNumber":109,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":110,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":111,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":112,"author":{"gitId":"-"},"content":" * Wrapper for {@code getDate} method to get since date with time 00:00:00","isFullCredit":false},{"lineNumber":113,"author":{"gitId":"-"},"content":" * from the parameters {@code year}, {@code month}, {@code date}.","isFullCredit":false},{"lineNumber":114,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":115,"author":{"gitId":"-"},"content":" public static LocalDateTime getSinceDate(int year, int month, int date) {","isFullCredit":false},{"lineNumber":116,"author":{"gitId":"-"},"content":" return getDate(year, month, date, START_OF_DAY_TIME);","isFullCredit":false},{"lineNumber":117,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":118,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":119,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":120,"author":{"gitId":"-"},"content":" * Wrapper for {@code getDate} method to get until date with time 23:59:59","isFullCredit":false},{"lineNumber":121,"author":{"gitId":"-"},"content":" * from the parameters {@code year}, {@code month}, {@code date}.","isFullCredit":false},{"lineNumber":122,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":123,"author":{"gitId":"-"},"content":" public static LocalDateTime getUntilDate(int year, int month, int date) {","isFullCredit":false},{"lineNumber":124,"author":{"gitId":"-"},"content":" return getDate(year, month, date, END_OF_DAY_TIME);","isFullCredit":false},{"lineNumber":125,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":126,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":127,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":128,"author":{"gitId":"-"},"content":" * Returns a {@link ZoneId} object for the specified {@code timezone}.","isFullCredit":false},{"lineNumber":129,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":130,"author":{"gitId":"-"},"content":" public static ZoneId getZoneId(String timezone) {","isFullCredit":false},{"lineNumber":131,"author":{"gitId":"-"},"content":" return ZoneId.of(timezone);","isFullCredit":false},{"lineNumber":132,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":133,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":134,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":135,"author":{"gitId":"-"},"content":" * Compares attributes of {@code expectedRepoConfig} and {@code actualRepoConfig}.","isFullCredit":false},{"lineNumber":136,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":137,"author":{"gitId":"-"},"content":" * @throws AssertionError if any attributes fail equality check.","isFullCredit":false},{"lineNumber":138,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":139,"author":{"gitId":"-"},"content":" public static void compareRepoConfig(RepoConfiguration expectedRepoConfig, RepoConfiguration actualRepoConfig) {","isFullCredit":false},{"lineNumber":140,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedRepoConfig, actualRepoConfig);","isFullCredit":false},{"lineNumber":141,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":142,"author":{"gitId":"-"},"content":" for (int i \u003d 0; i \u003c expectedRepoConfig.getAuthorList().size(); i++) {","isFullCredit":false},{"lineNumber":143,"author":{"gitId":"-"},"content":" compareAuthor(expectedRepoConfig.getAuthorList().get(i), actualRepoConfig.getAuthorList().get(i));","isFullCredit":false},{"lineNumber":144,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":145,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":146,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":147,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":148,"author":{"gitId":"-"},"content":" * Compares attributes of {@code expectedAuthor} and {@code actualAuthor}, with exception of it\u0027s display name.","isFullCredit":false},{"lineNumber":149,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":150,"author":{"gitId":"-"},"content":" * The display name is not compared as it varies with object construction.","isFullCredit":false},{"lineNumber":151,"author":{"gitId":"-"},"content":" * It is a transient value and it is not needed for object matching.","isFullCredit":false},{"lineNumber":152,"author":{"gitId":"-"},"content":" *","isFullCredit":false},{"lineNumber":153,"author":{"gitId":"-"},"content":" * @throws AssertionError if any attributes fail equality check.","isFullCredit":false},{"lineNumber":154,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":155,"author":{"gitId":"-"},"content":" public static void compareAuthor(Author expectedAuthor, Author actualAuthor) {","isFullCredit":false},{"lineNumber":156,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedAuthor.getGitId(), actualAuthor.getGitId());","isFullCredit":false},{"lineNumber":157,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedAuthor.getIgnoreGlobList(), actualAuthor.getIgnoreGlobList());","isFullCredit":false},{"lineNumber":158,"author":{"gitId":"-"},"content":" Assertions.assertEquals(expectedAuthor.getAuthorAliases(), actualAuthor.getAuthorAliases());","isFullCredit":false},{"lineNumber":159,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":160,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":161,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":162,"author":{"gitId":"-"},"content":" * Returns true if the {@code expectedNumberCommits} is equal to the expected number of commits captured in","isFullCredit":false},{"lineNumber":163,"author":{"gitId":"-"},"content":" * {@code gitLogResult}.","isFullCredit":false},{"lineNumber":164,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":165,"author":{"gitId":"-"},"content":" public static boolean compareNumberExpectedCommitsToGitLogLines(int expectedNumberCommits, String gitLogResult) {","isFullCredit":false},{"lineNumber":166,"author":{"gitId":"-"},"content":" // if git log result is empty, then there are no commits","isFullCredit":false},{"lineNumber":167,"author":{"gitId":"-"},"content":" if (gitLogResult.isEmpty()) {","isFullCredit":false},{"lineNumber":168,"author":{"gitId":"-"},"content":" return expectedNumberCommits \u003d\u003d 0;","isFullCredit":false},{"lineNumber":169,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":170,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":171,"author":{"gitId":"-"},"content":" // (actualSplitGitLogResilt - 1) as the 1st token is always empty.","isFullCredit":false},{"lineNumber":172,"author":{"gitId":"-"},"content":" return expectedNumberCommits \u003d\u003d (gitLogResult.split(GitLog.COMMIT_INFO_DELIMITER).length - 1);","isFullCredit":false},{"lineNumber":173,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":174,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":175,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":176,"author":{"gitId":"-"},"content":" * Returns true if the {@code expectedNumberFilesChanged} is equal to the actual number of files changed in","isFullCredit":false},{"lineNumber":177,"author":{"gitId":"-"},"content":" * {@code gitLogResult}.","isFullCredit":false},{"lineNumber":178,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":179,"author":{"gitId":"-"},"content":" public static boolean compareNumberFilesChanged(int expectedNumberFilesChanged, String gitLogResult) {","isFullCredit":false},{"lineNumber":180,"author":{"gitId":"-"},"content":" // if git log result is empty, then there are no files changed","isFullCredit":false},{"lineNumber":181,"author":{"gitId":"-"},"content":" if (gitLogResult.isEmpty()) {","isFullCredit":false},{"lineNumber":182,"author":{"gitId":"-"},"content":" return expectedNumberFilesChanged \u003d\u003d 0;","isFullCredit":false},{"lineNumber":183,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":184,"author":{"gitId":"-"},"content":" String[] changesLogged \u003d gitLogResult.split(GitLog.COMMIT_INFO_DELIMITER);","isFullCredit":false},{"lineNumber":185,"author":{"gitId":"-"},"content":" HashSet\u003cString\u003e filesChanged \u003d new HashSet\u003c\u003e();","isFullCredit":false},{"lineNumber":186,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":187,"author":{"gitId":"-"},"content":" // start from index 1 as index 0 is always empty.","isFullCredit":false},{"lineNumber":188,"author":{"gitId":"-"},"content":" for (int i \u003d 1; i \u003c changesLogged.length; i++) {","isFullCredit":false},{"lineNumber":189,"author":{"gitId":"-"},"content":" filesChanged.addAll(getFilesChangedInCommit(changesLogged[i]));","isFullCredit":false},{"lineNumber":190,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":191,"author":{"gitId":"-"},"content":" return filesChanged.size() \u003d\u003d expectedNumberFilesChanged;","isFullCredit":false},{"lineNumber":192,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":193,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":194,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":195,"author":{"gitId":"-"},"content":" * Returns the {@link Set} of files changed in the commit {@code rawCommitInfo}.","isFullCredit":false},{"lineNumber":196,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":197,"author":{"gitId":"-"},"content":" private static Set\u003cString\u003e getFilesChangedInCommit(String rawCommitInfo) {","isFullCredit":false},{"lineNumber":198,"author":{"gitId":"-"},"content":" Set\u003cString\u003e filesChanged \u003d new HashSet\u003c\u003e();","isFullCredit":false},{"lineNumber":199,"author":{"gitId":"asdfghjkxd"},"content":" String[] commitInfo \u003d StringsUtil.NEWLINE.split(rawCommitInfo.replaceAll(\"\\n+$\", \"\"));","isFullCredit":false},{"lineNumber":200,"author":{"gitId":"-"},"content":" int fileChangedNum \u003d Integer.parseInt(commitInfo[commitInfo.length - 1].trim().split(\" \")[0]);","isFullCredit":false},{"lineNumber":201,"author":{"gitId":"-"},"content":" for (int fileNum \u003d 0; fileNum \u003c fileChangedNum; fileNum++) {","isFullCredit":false},{"lineNumber":202,"author":{"gitId":"-"},"content":" filesChanged.add(getFileChanged(commitInfo[commitInfo.length - 2 - fileNum]));","isFullCredit":false},{"lineNumber":203,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":204,"author":{"gitId":"-"},"content":" return filesChanged;","isFullCredit":false},{"lineNumber":205,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":206,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":207,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":208,"author":{"gitId":"-"},"content":" * Returns the file changed given a {@code rawFileChangedString}.","isFullCredit":false},{"lineNumber":209,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":210,"author":{"gitId":"-"},"content":" private static String getFileChanged(String rawFileChangedString) {","isFullCredit":false},{"lineNumber":211,"author":{"gitId":"asdfghjkxd"},"content":" String fileChanged \u003d StringsUtil.TAB.split(rawFileChangedString)[STAT_FILE_PATH_INDEX].trim();","isFullCredit":false},{"lineNumber":212,"author":{"gitId":"-"},"content":" if (fileChanged.contains(MOVED_FILE_INDICATION)) {","isFullCredit":false},{"lineNumber":213,"author":{"gitId":"-"},"content":" fileChanged \u003d fileChanged.substring(fileChanged.indexOf(MOVED_FILE_INDICATION)","isFullCredit":false},{"lineNumber":214,"author":{"gitId":"-"},"content":" + MOVED_FILE_INDICATION.length());","isFullCredit":false},{"lineNumber":215,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":216,"author":{"gitId":"-"},"content":" return fileChanged;","isFullCredit":false},{"lineNumber":217,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":218,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":219,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":220,"author":{"gitId":"-"},"content":" * Returns true if the test environment is on Windows OS.","isFullCredit":false},{"lineNumber":221,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":222,"author":{"gitId":"-"},"content":" public static boolean isWindows() {","isFullCredit":false},{"lineNumber":223,"author":{"gitId":"-"},"content":" return System.getProperty(\"os.name\").toLowerCase().contains(\"win\");","isFullCredit":false},{"lineNumber":224,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":225,"author":{"gitId":"-"},"content":"","isFullCredit":false},{"lineNumber":226,"author":{"gitId":"-"},"content":" /**","isFullCredit":false},{"lineNumber":227,"author":{"gitId":"-"},"content":" * Returns the {@link Path} to a resource given by {@code pathToResource} string, using {@code classForLoading}.","isFullCredit":false},{"lineNumber":228,"author":{"gitId":"-"},"content":" */","isFullCredit":false},{"lineNumber":229,"author":{"gitId":"-"},"content":" public static Path loadResource(Class\u003c?\u003e classForLoading, String pathToResource) {","isFullCredit":false},{"lineNumber":230,"author":{"gitId":"-"},"content":" ClassLoader classLoader \u003d classForLoading.getClassLoader();","isFullCredit":false},{"lineNumber":231,"author":{"gitId":"-"},"content":" URL url \u003d classLoader.getResource(pathToResource);","isFullCredit":false},{"lineNumber":232,"author":{"gitId":"-"},"content":" Path path \u003d null;","isFullCredit":false},{"lineNumber":233,"author":{"gitId":"-"},"content":" try {","isFullCredit":false},{"lineNumber":234,"author":{"gitId":"-"},"content":" path \u003d Paths.get(url.toURI());","isFullCredit":false},{"lineNumber":235,"author":{"gitId":"-"},"content":" } catch (URISyntaxException e) {","isFullCredit":false},{"lineNumber":236,"author":{"gitId":"-"},"content":" System.out.println(\"URL format does not follow required standard\");","isFullCredit":false},{"lineNumber":237,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":238,"author":{"gitId":"-"},"content":" return path;","isFullCredit":false},{"lineNumber":239,"author":{"gitId":"-"},"content":" }","isFullCredit":false},{"lineNumber":240,"author":{"gitId":"-"},"content":"}","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":6,"-":234}},{"path":"src/test/resources/BlurbMarkdownParserTest/malformed_delimiter_blurb.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/testrepo-Alpha/tree/master","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"Master branch of testrepo-Alpha","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--bunchofcharacters that don\u0027t count\u003e","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/testrepo-Alpha/tree/master","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"Master branch of testrepo-Alpha","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo - this is not legal and will be captured as part of the text --\u003e","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003ebut this is legal and will be ignored","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":7}},{"path":"src/test/resources/BlurbMarkdownParserTest/malformed_url_blurb.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"://github/reposense/testrepo-Alp","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"Malformed URL Test","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":2}},{"path":"src/test/resources/BlurbMarkdownParserTest/multiline_blurb.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/testrepo-Alpha/tree/master","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"Master branch of testrepo-Alpha","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"A","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"long","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"line","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"of","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"description","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"of","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"testrepo","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"Alpha","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":10}},{"path":"src/test/resources/BlurbMarkdownParserTest/multiple_blurbs.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/testrepo-Alpha/tree/master","isFullCredit":false},{"lineNumber":2,"author":{"gitId":"asdfghjkxd"},"content":"Master branch of testrepo-Alpha","isFullCredit":false},{"lineNumber":3,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003e","isFullCredit":false},{"lineNumber":4,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/testrepo-Beta/tree/master","isFullCredit":false},{"lineNumber":5,"author":{"gitId":"asdfghjkxd"},"content":"Master branch of testrepo-Beta","isFullCredit":false},{"lineNumber":6,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003e","isFullCredit":false},{"lineNumber":7,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/testrepo-Gamma/tree/master","isFullCredit":false},{"lineNumber":8,"author":{"gitId":"asdfghjkxd"},"content":"Master branch of testrepo-Gamma","isFullCredit":false},{"lineNumber":9,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003e","isFullCredit":false},{"lineNumber":10,"author":{"gitId":"asdfghjkxd"},"content":"https://github.com/reposense/testrepo-Sigma/tree/master","isFullCredit":false},{"lineNumber":11,"author":{"gitId":"asdfghjkxd"},"content":"Master branch of testrepo-Sigma","isFullCredit":false},{"lineNumber":12,"author":{"gitId":"asdfghjkxd"},"content":"\u003c!--repo--\u003e","isFullCredit":false}],"authorContributionMap":{"asdfghjkxd":12}}] diff --git a/reposense_reposense_master/commits.json b/reposense_reposense_master/commits.json index 99f1adf..4a9c7fa 100644 --- a/reposense_reposense_master/commits.json +++ b/reposense_reposense_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"xenosf":[],"sopa301":[{"date":"2024-01-31","commitResults":[{"hash":"19f9e6847b503b0f9028effd37b2cfab87b72af1","isMergeCommit":false,"messageTitle":"[#1980] Standardise Array Style for Frontend Files (#2084)","messageBody":"Array\u003cT\u003e and T[] can be used interchangeably in TypeScript. We can use\r\nthe same style consistently across the codebase to make it easier for\r\ndevelopers to read and understand array types.\r\n\r\nIn Vue, using T[] in defineComponent requires casting in the form of\r\n\"Array as PropType\u003cT[]\u003e\", while Array\u003cT\u003e can be used as is. Therefore,\r\nit would be more consistent to use Array\u003cT\u003e for .vue files.\r\nAdditionally, such a rule can be enforced more easily with eslint.\r\n\r\nLet\u0027s include a rule for eslint to check array usage and change the\r\ncode to follow this rule.","fileTypesAndContributionMap":{"json":{"insertions":20,"deletions":1}}},{"hash":"f5855fa68b3e23a0fed0c2e7cc94cc6401d175e3","isMergeCommit":false,"messageTitle":"[#1224] Update .stylelintrc.json to check for spacing (#2094)","messageBody":"With no current plans to update stylelint to v15 or beyond, we can\r\nstill use the current features to enforce consistent spacing in our\r\nscss files. This will make the coding style more consistent throughout\r\nthe codebase.\r\n\r\nLet\u0027s update the rules in .stylelintrc.json to enforce spacing.","fileTypesAndContributionMap":{"json":{"insertions":3,"deletions":1}}}]},{"date":"2024-02-19","commitResults":[{"hash":"b103e286bca0d52b5b539b3ec4a9012ecef980bd","isMergeCommit":false,"messageTitle":"[#467] Add Title Component (#2102)","messageBody":"Implement Title Component\r\n\r\nWith a new focus on allowing users to use RepoSense as a portfolio\r\ntool, more functionality supporting this focus is needed.\r\n\r\nLet\u0027s allow users to add customizable content in Markdown/HTML format \r\nat the top of the report for a personalized introduction.","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1},"scss":{"insertions":0,"deletions":1},"md":{"insertions":2,"deletions":1},"js":{"insertions":8,"deletions":0},"json":{"insertions":272,"deletions":233}}}]},{"date":"2024-03-19","commitResults":[{"hash":"bb977ea1f049a86c6c1090b5253a7e7e1543a5b6","isMergeCommit":false,"messageTitle":"[#1872] Update Node version to 18 (#2081)","messageBody":"Node.js 16 has reached its end-of-life on 11 September 2023.\r\n\r\nLet us update Node.js to use Node 18 in the GitHub workflows.","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1},"yml":{"insertions":3,"deletions":3},"json":{"insertions":4057,"deletions":6609}}}]},{"date":"2024-03-28","commitResults":[{"hash":"f2be8a4765e0ee0e5fa1b336419ff2fc88c73ff3","isMergeCommit":false,"messageTitle":"[#2142] Fix Vulnerabilities (#2143)","messageBody":"Fix vulnerabilities in codebase.\r\n\r\nThere are existing vulnerabilities in the codebase.\r\n\r\nLet\u0027s fix as many as possible.","fileTypesAndContributionMap":{"json":{"insertions":603,"deletions":1163}}}]},{"date":"2024-04-02","commitResults":[{"hash":"c3cd12d91c439a5995ce5eba661ae2cded220721","isMergeCommit":false,"messageTitle":"[#2151] Update LoadingOverlay and Minor Versions of Node Dependencies (#2152)","messageBody":"Update LoadingOverlay and Minor Versions of Node Dependencies\r\n\r\nSome dependencies are not at their latest minor or patch releases.\r\n\r\nLet\u0027s update these dependencies, as well as LoadingOverlay as part of a\r\nbug fix.","fileTypesAndContributionMap":{"json":{"insertions":5526,"deletions":15213}}}]},{"date":"2024-04-18","commitResults":[{"hash":"eb138361cfe928eec29327cf63ac965911a94e29","isMergeCommit":false,"messageTitle":"[#2136] Add Tests for Segment CSS (#2137)","messageBody":"Write Tests for Code Highlighting for Segment\r\n\r\nA regression has occurred during refactoring of the Segment component.\r\nIt would be good to write tests to catch regressions if it happens\r\nagain for this component.\r\n\r\nLet\u0027s write tests to catch further regressions of the same nature.","fileTypesAndContributionMap":{"js":{"insertions":67,"deletions":0}}},{"hash":"0f21c65b04282e21ea600ab7906496b853c1a34a","isMergeCommit":false,"messageTitle":"[#2151] Update Stylelint (#2153)","messageBody":"Update Stylelint\r\n\r\nThe depreciated rules have been moved to a dedicated plugin. We can now\r\nupdate our Stylelint linter to the latest version.\r\n\r\nLet\u0027s do so, as well as update related dependencies.","fileTypesAndContributionMap":{"json":{"insertions":1048,"deletions":948}}},{"hash":"6ffb41c933fcf339f84c56b4b061be780056366f","isMergeCommit":false,"messageTitle":"[#2151] Update CSS-related Major Dependencies (#2154)","messageBody":"Update CSS-related Major Dependencies\r\n\r\nA few CSS-related dependencies have major updates available.\r\n\r\nLet\u0027s update as many as possible.","fileTypesAndContributionMap":{"json":{"insertions":120,"deletions":154}}}]},{"date":"2024-04-19","commitResults":[{"hash":"4cceaeaae77ae19042f9de5f446809d9cd7981c8","isMergeCommit":false,"messageTitle":"[#2158] Add More Documentation for Title Component (#2159)","messageBody":"Add More Documentation for Title Component\r\n\r\nThe documentation for the title component is sparse. Adding more\r\ndetails on how to use it will make it easier for users to add their own\r\ntitles to their reports.\r\n\r\nLet\u0027s update the documentation to include a section for the title\r\ncomponent, and add the title component to the default view.","fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":0},"md":{"insertions":27,"deletions":2}}}]},{"date":"2024-04-27","commitResults":[{"hash":"553f3f28e5da2810551f92f25f929cd07dabaf6c","isMergeCommit":false,"messageTitle":"[#2184] Fix Inconsistent Line Number Colours (#2185)","messageBody":"Fix Inconsistent Line Number Colours\r\n\r\nA regression has occurred where the line numbers no longer have a\r\nconsistent grey color.\r\n\r\nLet\u0027s fix the bug and add a test to catch further regressions of the\r\nsame nature.","fileTypesAndContributionMap":{"js":{"insertions":25,"deletions":0}}}]},{"date":"2024-04-28","commitResults":[{"hash":"bf78bf2a11a4ba703403c75f442410ad56ecca98","isMergeCommit":false,"messageTitle":"[#2151] Update Typescript-related Major Dependencies (#2166)","messageBody":"Update Typescript-related Major Dependencies\r\n\r\nMany of our TypeScript-related dependencies are outdated.\r\n\r\nLet\u0027s update them.","fileTypesAndContributionMap":{"scss":{"insertions":1,"deletions":1},"json":{"insertions":617,"deletions":203}}}]},{"date":"2024-05-12","commitResults":[{"hash":"20526f424bbbd705f1abfa5c18db9a2b479e6bd4","isMergeCommit":false,"messageTitle":"[#2176] Move from Vue CLI to Vite (#2178)","messageBody":"Move from Vue CLI to Vite\r\n\r\nVue CLI has been put on maintenance mode and its dependencies have\r\nsecurity issues that have not been fixed for a while. Switching to Vite\r\nalso allows us to introduce Vitest for our unit testing.\r\n\r\nLet\u0027s install Vite and remove Vue CLI.","fileTypesAndContributionMap":{"md":{"insertions":7,"deletions":1},"json":{"insertions":4951,"deletions":12152},"js":{"insertions":1,"deletions":46}}}]}],"mingyuanc":[],"jingting1412":[],"KevinEyo1":[],"LamJiuFong":[],"yiwen101":[],"jonasongg":[{"date":"2024-01-31","commitResults":[{"hash":"0f682a0c319cde9aefe268deb97e97816c1b387a","isMergeCommit":false,"messageTitle":"[#2016] Remove hash symbol from URL when decoding hash (#2086)","messageBody":"Fix bug where some params were not retained after refresh\r\n\r\nThe issue pertains to breakdown of file types disappearing after a\r\nrefresh, but it seems to apply to all params that were last in the URL\r\ndue to symbols not being filtered out correctly.\r\n\r\nLet\u0027s fix this issue to make sure the state of the report stays the\r\nsame when refreshing.","fileTypesAndContributionMap":{"js":{"insertions":156,"deletions":0}}}]},{"date":"2024-02-17","commitResults":[{"hash":"9ff7a96c6afd5b8837da8ee1ba44b263670ae391","isMergeCommit":false,"messageTitle":"[#2111] Fix failing zoomFeature cypress test (#2114)","messageBody":"Fix nondeterministically failing zoomFeature cypress test\r\n\r\nThe \"range changes in chartview should reflect in zoom\" test in\r\nchartView_zoomFeature.cy.js fails because as time passes, the\r\ncoordinates in the ramp that correspond to the desired zoom area\r\nchange.\r\n\r\nLet\u0027s add an \"until\" filter to the relevant cypress tests to stop this\r\nfrom happening","fileTypesAndContributionMap":{"js":{"insertions":11,"deletions":0}}}]},{"date":"2024-03-14","commitResults":[{"hash":"0b096478680447f72e439de78969c09cc8259623","isMergeCommit":false,"messageTitle":"[#2098] Add show more button for error messages (#2105)","messageBody":"Add show more button for error messages\r\n\r\nCurrently, if there are a lot of error messages, it can block the rest\r\nof the page to the point where users may think the report failed to\r\ngenerate at all.\r\n\r\nLet\u0027s hide extra messages automatically and add a show more button if \r\nthere are more to display the messages in full.","fileTypesAndContributionMap":{"js":{"insertions":92,"deletions":72}}}]},{"date":"2024-03-19","commitResults":[{"hash":"147f473e7e0f55c89f86aeb973006a876879d5bb","isMergeCommit":false,"messageTitle":"[#2109] Add search by tag functionality (#2116)","messageBody":"Add search by tag functionality\r\n\r\nIt can be useful to search author/repos by git tags.\r\n\r\nLet\u0027s add this functionality to make it easier to filter by tags.","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":0},"js":{"insertions":115,"deletions":4}}}]},{"date":"2024-04-02","commitResults":[{"hash":"b139a954a4367c6951f7924d85f57438b56f0298","isMergeCommit":false,"messageTitle":"[#2109] Add search by tag functionality (#2167)","messageBody":"Add search by tag functionality\r\n\r\nIt can be useful to search author/repos by git tags.\r\n\r\nLet\u0027s add this functionality to make it easier to filter by tags. This\r\ncommit also fixes a bug that existed in a previous version of the\r\nfeature which resulted in all users being shown to belong to same group.","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":0},"js":{"insertions":115,"deletions":4}}}]},{"date":"2024-04-18","commitResults":[{"hash":"f07af5a45d883cb629d4d0ef7e953cf8444619d3","isMergeCommit":false,"messageTitle":"[#2130] Add highlight and scroll to group (#2131)","messageBody":"Add highlight and scroll to group\r\n\r\nIt can be useful to have a way to send a RepoSense link that\r\nautomatically scrolls to and highlights the group that the sender\r\nthinks the recipient should pay attention to, saving them time to find\r\nthe repo in question.\r\n\r\nLet\u0027s add this functionality to add convenience when sending around\r\nRepoSense reports.","fileTypesAndContributionMap":{"js":{"insertions":62,"deletions":0}}}]},{"date":"2024-04-19","commitResults":[{"hash":"1e76355901cd5fca71a2999e2c8cdf68bdd0988c","isMergeCommit":false,"messageTitle":"Fix lint warnings (#2182)","messageBody":"Fix lint warnings\r\n\r\nCurrently, there are various lint warnings that appear when building.\r\n\r\nThis can cause confusion on what lint problem exactly is causing a\r\nbuild to fail. Let\u0027s fix them.","fileTypesAndContributionMap":{"md":{"insertions":4,"deletions":4}}},{"hash":"3c53d58c0458a42c58ce84231ea61f8f1cac6930","isMergeCommit":false,"messageTitle":"Add more repos to cypress tests (#2188)","messageBody":"Add more repos to Cypress tests\r\n\r\nCurrently, our Cypress config only tests with a single repo. This can\r\ncause our testing to be limited and cause certain bugs to go\r\nunnoticed.\r\n\r\nLet\u0027s add more repos so that our testing can be more extensive.","fileTypesAndContributionMap":{"js":{"insertions":20,"deletions":24}}}]},{"date":"2024-04-27","commitResults":[{"hash":"02c7198db1d90bba3eb1d071dd4f21bda64ae27d","isMergeCommit":false,"messageTitle":"[#2148] Show tags on the ramp chart (#2163)","messageBody":"It can be useful to view all the tags of each repo that appears on the\r\nramp chart. Though this information is visible if the repo is merged\r\nand the user click to see the breakdown of each commit, it can still be\r\nuseful to see this information upfront (for searching Ctrl+F perhaps).\r\nThis feature would be toggleable with a checkbox to reduce clutter.\r\n\r\nLet\u0027s add this functionality to add convenience when searching through\r\nRepoSense reports with tags.","fileTypesAndContributionMap":{"scss":{"insertions":21,"deletions":0},"md":{"insertions":1,"deletions":0},"js":{"insertions":94,"deletions":13}}}]},{"date":"2024-05-07","commitResults":[{"hash":"2457ebbeaa69befc824fa609a4e12f4c55bb4c88","isMergeCommit":false,"messageTitle":"Add optimise timeline feature (#2180)","messageBody":"Add optimise timeline feature\r\n\r\nCurrently, the ramps have a lot of empty space if the since and until\r\ndates are specified far apart. \r\n\r\nLet\u0027s add a checkbox that can eliminate this empty space for each ramp.\r\nThis is especially useful if RepoSense is to be used to set up a report\r\nof an individual\u0027s past OSS contributions.","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":0},"js":{"insertions":165,"deletions":0}}}]},{"date":"2024-05-12","commitResults":[{"hash":"4735dcf2a96b11fcd02023a12873f64657d2ca6e","isMergeCommit":false,"messageTitle":"[#2195] Add cypress tests for show tag when grouping by author and by none (#2197)","messageBody":"Add cypress tests for show tag when grouping by author and by none\r\n\r\nThere are no Cypress tests to test the behaviour of the show tag\r\nfeature when the report is grouped by author or grouped by none.\r\n\r\nLet\u0027s add a test for this to ensure the feature is working properly.","fileTypesAndContributionMap":{"js":{"insertions":96,"deletions":9}}}]}],"domoberzin":[],"asdfghjkxd":[{"date":"2024-01-18","commitResults":[{"hash":"4ef7210a06fbd6b979a648f8bdce967717a6512c","isMergeCommit":false,"messageTitle":"[#2073] Refactor `RepoConfigCsvParser::processLine` method to avoid arrowhead style code (#2080)","messageBody":"The current implementation of `RepoConfigCsvParser::processLine`\r\ncontains code that has 3 levels of indentation, making it \r\ndifficult to read and maintain.\r\n\r\nWith the proposed changes, the level of deep nesting has \r\nbeen reduced to 2 levels, making the code more \r\nreadable and maintainable.\r\n\r\nLet\u0027s move to refactor and clean up the code to avoid \r\narrowhead-style codes for better readability and \r\nmaintainability.","fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":10}}}]},{"date":"2024-01-26","commitResults":[{"hash":"54ba5ecc417097134c83e7d9dc80b925598cb9ef","isMergeCommit":false,"messageTitle":"[#2091] Improve memory usage by refactoring Regex compilation (#2092)","messageBody":"Improve memory usage by refactoring Regex compilation\r\n\r\nCurrently, Regex checking is used in conjunction with iteration. This\r\npattern of coding is frowned upon due to the excessive Regex pattern\r\ncompilation, causing the program to run slower and consume more\r\nmemory.\r\n\r\nBy moving the Regex pattern compilation outside of the iteration, and\r\nby using `Matcher` objects to check if the strings match the Regex\r\nperformance, we can potentially remove this performance bottleneck.\r\n\r\nLet\u0027s move to refactor the code and remove such instances of Regex use\r\nin iterative loops.","fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":4}}}]},{"date":"2024-01-31","commitResults":[{"hash":"7977382dfeb3f8559ebb85028a510c8bbc23b58e","isMergeCommit":false,"messageTitle":"[#1958] Use syntax coloring for code blocks in docs (#2099)","messageBody":"Current code blocks do not use the built-in syntax highlighting\r\nfeature offered by Markbind/Markdown.\r\n\r\nThis impedes the readability of the code within the code blocks.\r\n\r\nLet\u0027s update the code blocks in the documentation to enable\r\nsyntax highlighting to further enhance readability of the documentation\r\nand the code.","fileTypesAndContributionMap":{"md":{"insertions":26,"deletions":26}}}]},{"date":"2024-02-06","commitResults":[{"hash":"30ef45089c9d959c3d667519f56197b01690d38b","isMergeCommit":false,"messageTitle":"[#1878] Update `SystemTestUtil::assertJson` to compare Json objects instead of line-by-line analysis (#2087)","messageBody":"`SystemTestUtil::assertJson` currently checks if two JSON files are\r\nequal by comparing the file contents line by line rather than by\r\nconverting the files directly into JSON objects, which can then be\r\ndirectly compared using the built-in `equals` methods for\r\n`JsonElement`.\r\n\r\nThis process also does not automatically check if the file is indeed a\r\nJSON file, and implicitly assumes that the input paths are paths to\r\nJSON files. This may cause expected behaviours if a user accidentally\r\nor intentionally includes a path to a non-JSON file within the method\r\ncalls.\r\n\r\nLet\u0027s move to refactor the code, and utilise the built-in methods for\r\n`JsonElement` objects to check for the equality of JSON objects.","fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":4}}}]},{"date":"2024-02-07","commitResults":[{"hash":"29903e31243225f4f4c3c4ad523f2298d2b8e70d","isMergeCommit":false,"messageTitle":"[#2103] Refactor `parser` package for greater organisation of classes (#2104)","messageBody":"Classes in the `parser` package as of now are not properly organised,\r\nwith exceptions, types and parser classes being found in the same\r\ndirectory level.\r\n\r\nThis does not follow the convention established by other packages,\r\nwhereby logically similar classes are further grouped into\r\nsub-packages.\r\n\r\nLet\u0027s move to refactor the `parser` package to ensure that it follows\r\nthe overall structure of the other packages and to increase the level\r\nof organisation within the `parser` package.","fileTypesAndContributionMap":{"java":{"insertions":62,"deletions":32}}}]},{"date":"2024-02-17","commitResults":[{"hash":"d2018d246e74fa04ae70d2f1f0f16c9e8e29e187","isMergeCommit":false,"messageTitle":"[#2076] Refactor RepoConfiguration to simplify constructor complexity (#2078)","messageBody":"Refactor RepoConfiguration to simplify constructor complexity.\r\n\r\nCurrently, the constructors for the `RepoConfiguration` class is \r\nvery complex, involving up to 18 parameters at once, and is \r\nnot easily extensible.\r\n\r\nWith the proposed changes, the constructor now follows the \r\nBuilder pattern, by using a nested class `Builder` that \r\nhelps to compose config parameters in a way that is much more \r\nmodular and comprehensible, enhancing code quality and \r\nreducing confusion among developers.\r\n\r\nHowever, it must be noted that `Builder` objects are not reusable as of\r\nnow, and that more combinations of arguments are permitted due to the\r\nremoval of constructors for `RepoBuilder`, which previously helped to\r\nensure the correctness of parameter combinations.\r\n\r\nLet\u0027s refactor `RepoConfiguration` to simplify the \r\ncomplexity of the constructor and increase modularity \r\nof the code.","fileTypesAndContributionMap":{"java":{"insertions":734,"deletions":158}}}]},{"date":"2024-03-02","commitResults":[{"hash":"bbb2f694a74d0dc1dea9084ad47b25bcd0bb42cb","isMergeCommit":false,"messageTitle":"[#2117] Refactor `CliArguments` to conform to `RepoConfiguration`\u0027s Builder Pattern (#2118)","messageBody":"Current implementation of the Builder pattern within `CliArguments`\r\ndoes not conform that in `RepoConfiguration`.\r\n\r\nLet\u0027s move to refactor `CliArguments` to reduce class attribute\r\nduplication across `CliArguments` and `CliArguments::Builder` and to\r\nenhance overall code quality.","fileTypesAndContributionMap":{"java":{"insertions":56,"deletions":101}}}]},{"date":"2024-03-26","commitResults":[{"hash":"3140c31c8d132aada99d917b789665cc3328cf0d","isMergeCommit":false,"messageTitle":"[#2091] Minor Enhancements to Existing Regex Code (#2115)","messageBody":"* Enhance existing Regex code\r\n\r\n* Consolidate typical Regex patterns\r\n\r\n---------\r\n\r\nCo-authored-by: Charisma Kausar \u003c68203159+ckcherry23@users.noreply.github.com\u003e\r\nCo-authored-by: Gokul Rajiv \u003c34594184+gok99@users.noreply.github.com\u003e\r\nCo-authored-by: Marcus Tang \u003c50147457+MarcusTXK@users.noreply.github.com\u003e","fileTypesAndContributionMap":{"java":{"insertions":48,"deletions":28}}}]},{"date":"2024-03-28","commitResults":[{"hash":"a733531b0bc7ecc0bb40f40b0f4de7db503e9057","isMergeCommit":false,"messageTitle":"[#2120] Update RepoSense contributors in documentation (#2138)","messageBody":"The current About page on the RepoSense docs does not reflect the\r\nupdated list of developers working on RepoSense.\r\n\r\nLet\u0027s move to update the list to more accurately reference the current\r\ndevelopers of RepoSense.","fileTypesAndContributionMap":{"md":{"insertions":69,"deletions":19}}}]},{"date":"2024-04-15","commitResults":[{"hash":"54d002806b9a2c564ebfaf49fab09f762d0d8aab","isMergeCommit":false,"messageTitle":"Allow CI to pass if Codecov fails (#2189)","messageBody":"CI is failing when Codecov is failing.\r\n\r\nThis is a temporary workaround for CI until issues with Codecov are\r\nfixed.","fileTypesAndContributionMap":{"yml":{"insertions":1,"deletions":1}}}]},{"date":"2024-04-27","commitResults":[{"hash":"a25630e5fd55fe585b69368f647bd04e3f49f981","isMergeCommit":false,"messageTitle":"[#2177] Migrate to Java 11 Syntax and Features (#2183)","messageBody":"* Migrate CI/CD to Java 11\r\n\r\n* Update Docs to reflect Java 11\r\n\r\n* Update CI JDK version\r\n\r\n* Update checkstyle tool\r\n\r\n* Revert \"Update CI JDK version\"\r\n\r\nThe updating of the Checkstyle tool will be deferred\r\nto another PR to avoid causing dependency issues\r\narising from backwards compatibility.\r\n\r\n* Reapply \"Update CI JDK version\"\r\n\r\nReapplying revert action as it was reverted on\r\nthe wrong commit.\r\n\r\n* Revert \"Update checkstyle tool\"\r\n\r\nThe updating of the Checkstyle tool will be deferred\r\nto another PR to avoid causing dependency issues\r\narising from backwards compatibility.\r\n\r\n* Remove deprecated flags\r\n\r\n---------\r\n\r\nCo-authored-by: Ryan Poon \u003c96387349+sopa301@users.noreply.github.com\u003e","fileTypesAndContributionMap":{"gradle":{"insertions":2,"deletions":4},"md":{"insertions":8,"deletions":8},"yml":{"insertions":4,"deletions":4}}}]},{"date":"2024-05-12","commitResults":[{"hash":"f4cad78c41007171b1f1a9f4e61baa8cfe71c372","isMergeCommit":false,"messageTitle":"[#2170] Add Blurbs for Repos (#2191)","messageBody":"Currently, there are no ways for student developers to append messages\r\nfor each of the repositories they would like to showcase using\r\nRepoSense.\r\n\r\nLet\u0027s move to implement a blurbs feature to allow individual student\r\ndevelopers to showcase their contributions to their project.","fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":0},"java":{"insertions":441,"deletions":6},"md":{"insertions":73,"deletions":2},"js":{"insertions":34,"deletions":0}}}]}],"yuanxi1":[],"supermii2":[{"date":"2024-01-26","commitResults":[{"hash":"3cd680c3ddfa5a96f9168d3ab411d0cccfc3c52f","isMergeCommit":false,"messageTitle":"[#2082] Fix typo in command in Setting Up page (#2083)","messageBody":"Fix typo in Setting Up page\r\n\r\nThe command given in the developer guide for checking the local Node.js\r\nversion is `npm -v`, which displays the version of npm instead.\r\n\r\nLet\u0027s replace the command with `node -v`, which correctly displays the\r\nNode.js version.","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1}}}]},{"date":"2024-02-11","commitResults":[{"hash":"945405a6c5786c72e11b23da7c452bb9568b03b6","isMergeCommit":false,"messageTitle":"[#1933] Fix broken DevOps Guide link in Learning Basics (#2107)","messageBody":"Fix broken link to DevOps Guide in Learning Basics page.\r\n\r\nUnder the DevOps section in the developer guide,\r\nthe link to DevOps guide leads a Wiki link instead of redirecting to\r\nthe DevOps guide on the actual Reposense website.\r\n\r\nLet\u0027s fix the broken link by changing the address to the correct page.","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1}}}]},{"date":"2024-04-13","commitResults":[{"hash":"2692f0fef8b3d60579e0504d713d7505ff0f821c","isMergeCommit":false,"messageTitle":"[#2002] Add explicit return type annotations to TypeScript functions in *.vue files (#2125)","messageBody":"Many frontend functions lack return types after migration to\r\nTypeScript, which can cause errors due to TypeScript\u0027s attempted type\r\ninference being incorrect. Specifying return type explicitly can allow\r\nTypeScript to catch errors before the code is run.\r\n\r\nLet us add return type annotations to TypeScript functions within Vue\r\nfiles.\r\n\r\n---------\r\n\r\nCo-authored-by: David \u003cdavids89034@gmail.com\u003e","fileTypesAndContributionMap":{"json":{"insertions":3,"deletions":1}}}]}],"marquestye":[],"nknguyenhc":[],"Arif-Khalid":[],"NereusWB922":[],"dishenggg":[],"MadLamprey":[],"Tim-Siu":[]},"authorFileTypeContributionMap":{"xenosf":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"sopa301":{"java":1,"js":97,"scss":1,"json":7030,"md":34,"py":0,"pug":0,"gradle":1,"sh":0,"yml":3},"mingyuanc":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"jingting1412":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"KevinEyo1":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"LamJiuFong":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"yiwen101":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"jonasongg":{"java":0,"js":797,"scss":21,"json":0,"md":3,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"domoberzin":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"asdfghjkxd":{"java":1359,"js":34,"scss":0,"json":0,"md":176,"py":0,"pug":0,"gradle":3,"sh":0,"yml":5},"yuanxi1":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"supermii2":{"java":0,"js":0,"scss":0,"json":2,"md":2,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"marquestye":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"nknguyenhc":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"Arif-Khalid":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"NereusWB922":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"dishenggg":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"MadLamprey":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"Tim-Siu":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0}},"authorContributionVariance":{"xenosf":0.0,"sopa301":5061718.0,"mingyuanc":0.0,"jingting1412":0.0,"KevinEyo1":0.0,"LamJiuFong":0.0,"yiwen101":0.0,"jonasongg":821.61383,"domoberzin":0.0,"asdfghjkxd":6908.6455,"yuanxi1":0.0,"supermii2":0.14396203,"marquestye":0.0,"nknguyenhc":0.0,"Arif-Khalid":0.0,"NereusWB922":0.0,"dishenggg":0.0,"MadLamprey":0.0,"Tim-Siu":0.0},"authorDisplayNameMap":{"xenosf":"XENO..NONG","sopa301":"POON..RYAN","mingyuanc":"CHIN..YUAN","jingting1412":"WANG..TING","KevinEyo1":"EYO ..EVIN","LamJiuFong":"LAM ..FONG","yiwen101":"WANG..IWEN","jonasongg":"JONA.. WEI","domoberzin":"DOMI.. GIN","asdfghjkxd":"GEOR.. YAO","yuanxi1":"ZHU ..ANXI","supermii2":"ALVI..S NG","marquestye":"TYE ..QUES","nknguyenhc":"NGUY..UYEN","Arif-Khalid":"ARIF..ALID","NereusWB922":"NERE.. BIN","dishenggg":"YEO ..HENG","MadLamprey":"MISR..ITYA","Tim-Siu":"XU S..UYAO"}} +{"authorDailyContributionsMap":{"xenosf":[],"sopa301":[{"date":"2024-01-31","commitResults":[{"hash":"19f9e6847b503b0f9028effd37b2cfab87b72af1","isMergeCommit":false,"messageTitle":"[#1980] Standardise Array Style for Frontend Files (#2084)","messageBody":"Array\u003cT\u003e and T[] can be used interchangeably in TypeScript. We can use\r\nthe same style consistently across the codebase to make it easier for\r\ndevelopers to read and understand array types.\r\n\r\nIn Vue, using T[] in defineComponent requires casting in the form of\r\n\"Array as PropType\u003cT[]\u003e\", while Array\u003cT\u003e can be used as is. Therefore,\r\nit would be more consistent to use Array\u003cT\u003e for .vue files.\r\nAdditionally, such a rule can be enforced more easily with eslint.\r\n\r\nLet\u0027s include a rule for eslint to check array usage and change the\r\ncode to follow this rule.","fileTypesAndContributionMap":{"json":{"insertions":20,"deletions":1}}},{"hash":"f5855fa68b3e23a0fed0c2e7cc94cc6401d175e3","isMergeCommit":false,"messageTitle":"[#1224] Update .stylelintrc.json to check for spacing (#2094)","messageBody":"With no current plans to update stylelint to v15 or beyond, we can\r\nstill use the current features to enforce consistent spacing in our\r\nscss files. This will make the coding style more consistent throughout\r\nthe codebase.\r\n\r\nLet\u0027s update the rules in .stylelintrc.json to enforce spacing.","fileTypesAndContributionMap":{"json":{"insertions":3,"deletions":1}}}]},{"date":"2024-02-19","commitResults":[{"hash":"b103e286bca0d52b5b539b3ec4a9012ecef980bd","isMergeCommit":false,"messageTitle":"[#467] Add Title Component (#2102)","messageBody":"Implement Title Component\r\n\r\nWith a new focus on allowing users to use RepoSense as a portfolio\r\ntool, more functionality supporting this focus is needed.\r\n\r\nLet\u0027s allow users to add customizable content in Markdown/HTML format \r\nat the top of the report for a personalized introduction.","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1},"scss":{"insertions":0,"deletions":1},"md":{"insertions":2,"deletions":1},"js":{"insertions":8,"deletions":0},"json":{"insertions":272,"deletions":233}}}]},{"date":"2024-03-19","commitResults":[{"hash":"bb977ea1f049a86c6c1090b5253a7e7e1543a5b6","isMergeCommit":false,"messageTitle":"[#1872] Update Node version to 18 (#2081)","messageBody":"Node.js 16 has reached its end-of-life on 11 September 2023.\r\n\r\nLet us update Node.js to use Node 18 in the GitHub workflows.","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1},"yml":{"insertions":3,"deletions":3},"json":{"insertions":4057,"deletions":6609}}}]},{"date":"2024-03-28","commitResults":[{"hash":"f2be8a4765e0ee0e5fa1b336419ff2fc88c73ff3","isMergeCommit":false,"messageTitle":"[#2142] Fix Vulnerabilities (#2143)","messageBody":"Fix vulnerabilities in codebase.\r\n\r\nThere are existing vulnerabilities in the codebase.\r\n\r\nLet\u0027s fix as many as possible.","fileTypesAndContributionMap":{"json":{"insertions":603,"deletions":1163}}}]},{"date":"2024-04-02","commitResults":[{"hash":"c3cd12d91c439a5995ce5eba661ae2cded220721","isMergeCommit":false,"messageTitle":"[#2151] Update LoadingOverlay and Minor Versions of Node Dependencies (#2152)","messageBody":"Update LoadingOverlay and Minor Versions of Node Dependencies\r\n\r\nSome dependencies are not at their latest minor or patch releases.\r\n\r\nLet\u0027s update these dependencies, as well as LoadingOverlay as part of a\r\nbug fix.","fileTypesAndContributionMap":{"json":{"insertions":5526,"deletions":15213}}}]},{"date":"2024-04-18","commitResults":[{"hash":"eb138361cfe928eec29327cf63ac965911a94e29","isMergeCommit":false,"messageTitle":"[#2136] Add Tests for Segment CSS (#2137)","messageBody":"Write Tests for Code Highlighting for Segment\r\n\r\nA regression has occurred during refactoring of the Segment component.\r\nIt would be good to write tests to catch regressions if it happens\r\nagain for this component.\r\n\r\nLet\u0027s write tests to catch further regressions of the same nature.","fileTypesAndContributionMap":{"js":{"insertions":67,"deletions":0}}},{"hash":"0f21c65b04282e21ea600ab7906496b853c1a34a","isMergeCommit":false,"messageTitle":"[#2151] Update Stylelint (#2153)","messageBody":"Update Stylelint\r\n\r\nThe depreciated rules have been moved to a dedicated plugin. We can now\r\nupdate our Stylelint linter to the latest version.\r\n\r\nLet\u0027s do so, as well as update related dependencies.","fileTypesAndContributionMap":{"json":{"insertions":1048,"deletions":948}}},{"hash":"6ffb41c933fcf339f84c56b4b061be780056366f","isMergeCommit":false,"messageTitle":"[#2151] Update CSS-related Major Dependencies (#2154)","messageBody":"Update CSS-related Major Dependencies\r\n\r\nA few CSS-related dependencies have major updates available.\r\n\r\nLet\u0027s update as many as possible.","fileTypesAndContributionMap":{"json":{"insertions":120,"deletions":154}}}]},{"date":"2024-04-19","commitResults":[{"hash":"4cceaeaae77ae19042f9de5f446809d9cd7981c8","isMergeCommit":false,"messageTitle":"[#2158] Add More Documentation for Title Component (#2159)","messageBody":"Add More Documentation for Title Component\r\n\r\nThe documentation for the title component is sparse. Adding more\r\ndetails on how to use it will make it easier for users to add their own\r\ntitles to their reports.\r\n\r\nLet\u0027s update the documentation to include a section for the title\r\ncomponent, and add the title component to the default view.","fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":0},"md":{"insertions":27,"deletions":2}}}]},{"date":"2024-04-27","commitResults":[{"hash":"553f3f28e5da2810551f92f25f929cd07dabaf6c","isMergeCommit":false,"messageTitle":"[#2184] Fix Inconsistent Line Number Colours (#2185)","messageBody":"Fix Inconsistent Line Number Colours\r\n\r\nA regression has occurred where the line numbers no longer have a\r\nconsistent grey color.\r\n\r\nLet\u0027s fix the bug and add a test to catch further regressions of the\r\nsame nature.","fileTypesAndContributionMap":{"js":{"insertions":25,"deletions":0}}}]},{"date":"2024-04-28","commitResults":[{"hash":"bf78bf2a11a4ba703403c75f442410ad56ecca98","isMergeCommit":false,"messageTitle":"[#2151] Update Typescript-related Major Dependencies (#2166)","messageBody":"Update Typescript-related Major Dependencies\r\n\r\nMany of our TypeScript-related dependencies are outdated.\r\n\r\nLet\u0027s update them.","fileTypesAndContributionMap":{"scss":{"insertions":1,"deletions":1},"json":{"insertions":617,"deletions":203}}}]},{"date":"2024-05-12","commitResults":[{"hash":"20526f424bbbd705f1abfa5c18db9a2b479e6bd4","isMergeCommit":false,"messageTitle":"[#2176] Move from Vue CLI to Vite (#2178)","messageBody":"Move from Vue CLI to Vite\r\n\r\nVue CLI has been put on maintenance mode and its dependencies have\r\nsecurity issues that have not been fixed for a while. Switching to Vite\r\nalso allows us to introduce Vitest for our unit testing.\r\n\r\nLet\u0027s install Vite and remove Vue CLI.","fileTypesAndContributionMap":{"md":{"insertions":7,"deletions":1},"json":{"insertions":4951,"deletions":12152},"js":{"insertions":1,"deletions":46}}}]},{"date":"2024-05-14","commitResults":[{"hash":"62f3d5420105afaae643e6e9a954d8d2c50444bc","isMergeCommit":false,"messageTitle":"[#2204] Remove unexpected title (#2206)","messageBody":"Remove unexpected title\r\n\r\nAdding a title.md to the public folder has caused the title feature to\r\nbecome opt-out instead of opt-in. This is not the intended way for the\r\ntitle feature to be used.\r\n\r\nLet\u0027s remove the title.md file.","fileTypesAndContributionMap":{"md":{"insertions":0,"deletions":3}}}]}],"mingyuanc":[],"jingting1412":[],"KevinEyo1":[],"LamJiuFong":[],"yiwen101":[],"jonasongg":[{"date":"2024-01-31","commitResults":[{"hash":"0f682a0c319cde9aefe268deb97e97816c1b387a","isMergeCommit":false,"messageTitle":"[#2016] Remove hash symbol from URL when decoding hash (#2086)","messageBody":"Fix bug where some params were not retained after refresh\r\n\r\nThe issue pertains to breakdown of file types disappearing after a\r\nrefresh, but it seems to apply to all params that were last in the URL\r\ndue to symbols not being filtered out correctly.\r\n\r\nLet\u0027s fix this issue to make sure the state of the report stays the\r\nsame when refreshing.","fileTypesAndContributionMap":{"js":{"insertions":156,"deletions":0}}}]},{"date":"2024-02-17","commitResults":[{"hash":"9ff7a96c6afd5b8837da8ee1ba44b263670ae391","isMergeCommit":false,"messageTitle":"[#2111] Fix failing zoomFeature cypress test (#2114)","messageBody":"Fix nondeterministically failing zoomFeature cypress test\r\n\r\nThe \"range changes in chartview should reflect in zoom\" test in\r\nchartView_zoomFeature.cy.js fails because as time passes, the\r\ncoordinates in the ramp that correspond to the desired zoom area\r\nchange.\r\n\r\nLet\u0027s add an \"until\" filter to the relevant cypress tests to stop this\r\nfrom happening","fileTypesAndContributionMap":{"js":{"insertions":11,"deletions":0}}}]},{"date":"2024-03-14","commitResults":[{"hash":"0b096478680447f72e439de78969c09cc8259623","isMergeCommit":false,"messageTitle":"[#2098] Add show more button for error messages (#2105)","messageBody":"Add show more button for error messages\r\n\r\nCurrently, if there are a lot of error messages, it can block the rest\r\nof the page to the point where users may think the report failed to\r\ngenerate at all.\r\n\r\nLet\u0027s hide extra messages automatically and add a show more button if \r\nthere are more to display the messages in full.","fileTypesAndContributionMap":{"js":{"insertions":92,"deletions":72}}}]},{"date":"2024-03-19","commitResults":[{"hash":"147f473e7e0f55c89f86aeb973006a876879d5bb","isMergeCommit":false,"messageTitle":"[#2109] Add search by tag functionality (#2116)","messageBody":"Add search by tag functionality\r\n\r\nIt can be useful to search author/repos by git tags.\r\n\r\nLet\u0027s add this functionality to make it easier to filter by tags.","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":0},"js":{"insertions":115,"deletions":4}}}]},{"date":"2024-04-02","commitResults":[{"hash":"b139a954a4367c6951f7924d85f57438b56f0298","isMergeCommit":false,"messageTitle":"[#2109] Add search by tag functionality (#2167)","messageBody":"Add search by tag functionality\r\n\r\nIt can be useful to search author/repos by git tags.\r\n\r\nLet\u0027s add this functionality to make it easier to filter by tags. This\r\ncommit also fixes a bug that existed in a previous version of the\r\nfeature which resulted in all users being shown to belong to same group.","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":0},"js":{"insertions":115,"deletions":4}}}]},{"date":"2024-04-18","commitResults":[{"hash":"f07af5a45d883cb629d4d0ef7e953cf8444619d3","isMergeCommit":false,"messageTitle":"[#2130] Add highlight and scroll to group (#2131)","messageBody":"Add highlight and scroll to group\r\n\r\nIt can be useful to have a way to send a RepoSense link that\r\nautomatically scrolls to and highlights the group that the sender\r\nthinks the recipient should pay attention to, saving them time to find\r\nthe repo in question.\r\n\r\nLet\u0027s add this functionality to add convenience when sending around\r\nRepoSense reports.","fileTypesAndContributionMap":{"js":{"insertions":62,"deletions":0}}}]},{"date":"2024-04-19","commitResults":[{"hash":"1e76355901cd5fca71a2999e2c8cdf68bdd0988c","isMergeCommit":false,"messageTitle":"Fix lint warnings (#2182)","messageBody":"Fix lint warnings\r\n\r\nCurrently, there are various lint warnings that appear when building.\r\n\r\nThis can cause confusion on what lint problem exactly is causing a\r\nbuild to fail. Let\u0027s fix them.","fileTypesAndContributionMap":{"md":{"insertions":4,"deletions":4}}},{"hash":"3c53d58c0458a42c58ce84231ea61f8f1cac6930","isMergeCommit":false,"messageTitle":"Add more repos to cypress tests (#2188)","messageBody":"Add more repos to Cypress tests\r\n\r\nCurrently, our Cypress config only tests with a single repo. This can\r\ncause our testing to be limited and cause certain bugs to go\r\nunnoticed.\r\n\r\nLet\u0027s add more repos so that our testing can be more extensive.","fileTypesAndContributionMap":{"js":{"insertions":20,"deletions":24}}}]},{"date":"2024-04-27","commitResults":[{"hash":"02c7198db1d90bba3eb1d071dd4f21bda64ae27d","isMergeCommit":false,"messageTitle":"[#2148] Show tags on the ramp chart (#2163)","messageBody":"It can be useful to view all the tags of each repo that appears on the\r\nramp chart. Though this information is visible if the repo is merged\r\nand the user click to see the breakdown of each commit, it can still be\r\nuseful to see this information upfront (for searching Ctrl+F perhaps).\r\nThis feature would be toggleable with a checkbox to reduce clutter.\r\n\r\nLet\u0027s add this functionality to add convenience when searching through\r\nRepoSense reports with tags.","fileTypesAndContributionMap":{"scss":{"insertions":21,"deletions":0},"md":{"insertions":1,"deletions":0},"js":{"insertions":94,"deletions":13}}}]},{"date":"2024-05-07","commitResults":[{"hash":"2457ebbeaa69befc824fa609a4e12f4c55bb4c88","isMergeCommit":false,"messageTitle":"Add optimise timeline feature (#2180)","messageBody":"Add optimise timeline feature\r\n\r\nCurrently, the ramps have a lot of empty space if the since and until\r\ndates are specified far apart. \r\n\r\nLet\u0027s add a checkbox that can eliminate this empty space for each ramp.\r\nThis is especially useful if RepoSense is to be used to set up a report\r\nof an individual\u0027s past OSS contributions.","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":0},"js":{"insertions":165,"deletions":0}}}]},{"date":"2024-05-12","commitResults":[{"hash":"4735dcf2a96b11fcd02023a12873f64657d2ca6e","isMergeCommit":false,"messageTitle":"[#2195] Add cypress tests for show tag when grouping by author and by none (#2197)","messageBody":"Add cypress tests for show tag when grouping by author and by none\r\n\r\nThere are no Cypress tests to test the behaviour of the show tag\r\nfeature when the report is grouped by author or grouped by none.\r\n\r\nLet\u0027s add a test for this to ensure the feature is working properly.","fileTypesAndContributionMap":{"js":{"insertions":96,"deletions":9}}}]}],"domoberzin":[],"asdfghjkxd":[{"date":"2024-01-18","commitResults":[{"hash":"4ef7210a06fbd6b979a648f8bdce967717a6512c","isMergeCommit":false,"messageTitle":"[#2073] Refactor `RepoConfigCsvParser::processLine` method to avoid arrowhead style code (#2080)","messageBody":"The current implementation of `RepoConfigCsvParser::processLine`\r\ncontains code that has 3 levels of indentation, making it \r\ndifficult to read and maintain.\r\n\r\nWith the proposed changes, the level of deep nesting has \r\nbeen reduced to 2 levels, making the code more \r\nreadable and maintainable.\r\n\r\nLet\u0027s move to refactor and clean up the code to avoid \r\narrowhead-style codes for better readability and \r\nmaintainability.","fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":10}}}]},{"date":"2024-01-26","commitResults":[{"hash":"54ba5ecc417097134c83e7d9dc80b925598cb9ef","isMergeCommit":false,"messageTitle":"[#2091] Improve memory usage by refactoring Regex compilation (#2092)","messageBody":"Improve memory usage by refactoring Regex compilation\r\n\r\nCurrently, Regex checking is used in conjunction with iteration. This\r\npattern of coding is frowned upon due to the excessive Regex pattern\r\ncompilation, causing the program to run slower and consume more\r\nmemory.\r\n\r\nBy moving the Regex pattern compilation outside of the iteration, and\r\nby using `Matcher` objects to check if the strings match the Regex\r\nperformance, we can potentially remove this performance bottleneck.\r\n\r\nLet\u0027s move to refactor the code and remove such instances of Regex use\r\nin iterative loops.","fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":4}}}]},{"date":"2024-01-31","commitResults":[{"hash":"7977382dfeb3f8559ebb85028a510c8bbc23b58e","isMergeCommit":false,"messageTitle":"[#1958] Use syntax coloring for code blocks in docs (#2099)","messageBody":"Current code blocks do not use the built-in syntax highlighting\r\nfeature offered by Markbind/Markdown.\r\n\r\nThis impedes the readability of the code within the code blocks.\r\n\r\nLet\u0027s update the code blocks in the documentation to enable\r\nsyntax highlighting to further enhance readability of the documentation\r\nand the code.","fileTypesAndContributionMap":{"md":{"insertions":26,"deletions":26}}}]},{"date":"2024-02-06","commitResults":[{"hash":"30ef45089c9d959c3d667519f56197b01690d38b","isMergeCommit":false,"messageTitle":"[#1878] Update `SystemTestUtil::assertJson` to compare Json objects instead of line-by-line analysis (#2087)","messageBody":"`SystemTestUtil::assertJson` currently checks if two JSON files are\r\nequal by comparing the file contents line by line rather than by\r\nconverting the files directly into JSON objects, which can then be\r\ndirectly compared using the built-in `equals` methods for\r\n`JsonElement`.\r\n\r\nThis process also does not automatically check if the file is indeed a\r\nJSON file, and implicitly assumes that the input paths are paths to\r\nJSON files. This may cause expected behaviours if a user accidentally\r\nor intentionally includes a path to a non-JSON file within the method\r\ncalls.\r\n\r\nLet\u0027s move to refactor the code, and utilise the built-in methods for\r\n`JsonElement` objects to check for the equality of JSON objects.","fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":4}}}]},{"date":"2024-02-07","commitResults":[{"hash":"29903e31243225f4f4c3c4ad523f2298d2b8e70d","isMergeCommit":false,"messageTitle":"[#2103] Refactor `parser` package for greater organisation of classes (#2104)","messageBody":"Classes in the `parser` package as of now are not properly organised,\r\nwith exceptions, types and parser classes being found in the same\r\ndirectory level.\r\n\r\nThis does not follow the convention established by other packages,\r\nwhereby logically similar classes are further grouped into\r\nsub-packages.\r\n\r\nLet\u0027s move to refactor the `parser` package to ensure that it follows\r\nthe overall structure of the other packages and to increase the level\r\nof organisation within the `parser` package.","fileTypesAndContributionMap":{"java":{"insertions":62,"deletions":32}}}]},{"date":"2024-02-17","commitResults":[{"hash":"d2018d246e74fa04ae70d2f1f0f16c9e8e29e187","isMergeCommit":false,"messageTitle":"[#2076] Refactor RepoConfiguration to simplify constructor complexity (#2078)","messageBody":"Refactor RepoConfiguration to simplify constructor complexity.\r\n\r\nCurrently, the constructors for the `RepoConfiguration` class is \r\nvery complex, involving up to 18 parameters at once, and is \r\nnot easily extensible.\r\n\r\nWith the proposed changes, the constructor now follows the \r\nBuilder pattern, by using a nested class `Builder` that \r\nhelps to compose config parameters in a way that is much more \r\nmodular and comprehensible, enhancing code quality and \r\nreducing confusion among developers.\r\n\r\nHowever, it must be noted that `Builder` objects are not reusable as of\r\nnow, and that more combinations of arguments are permitted due to the\r\nremoval of constructors for `RepoBuilder`, which previously helped to\r\nensure the correctness of parameter combinations.\r\n\r\nLet\u0027s refactor `RepoConfiguration` to simplify the \r\ncomplexity of the constructor and increase modularity \r\nof the code.","fileTypesAndContributionMap":{"java":{"insertions":734,"deletions":158}}}]},{"date":"2024-03-02","commitResults":[{"hash":"bbb2f694a74d0dc1dea9084ad47b25bcd0bb42cb","isMergeCommit":false,"messageTitle":"[#2117] Refactor `CliArguments` to conform to `RepoConfiguration`\u0027s Builder Pattern (#2118)","messageBody":"Current implementation of the Builder pattern within `CliArguments`\r\ndoes not conform that in `RepoConfiguration`.\r\n\r\nLet\u0027s move to refactor `CliArguments` to reduce class attribute\r\nduplication across `CliArguments` and `CliArguments::Builder` and to\r\nenhance overall code quality.","fileTypesAndContributionMap":{"java":{"insertions":56,"deletions":101}}}]},{"date":"2024-03-26","commitResults":[{"hash":"3140c31c8d132aada99d917b789665cc3328cf0d","isMergeCommit":false,"messageTitle":"[#2091] Minor Enhancements to Existing Regex Code (#2115)","messageBody":"* Enhance existing Regex code\r\n\r\n* Consolidate typical Regex patterns\r\n\r\n---------\r\n\r\nCo-authored-by: Charisma Kausar \u003c68203159+ckcherry23@users.noreply.github.com\u003e\r\nCo-authored-by: Gokul Rajiv \u003c34594184+gok99@users.noreply.github.com\u003e\r\nCo-authored-by: Marcus Tang \u003c50147457+MarcusTXK@users.noreply.github.com\u003e","fileTypesAndContributionMap":{"java":{"insertions":48,"deletions":28}}}]},{"date":"2024-03-28","commitResults":[{"hash":"a733531b0bc7ecc0bb40f40b0f4de7db503e9057","isMergeCommit":false,"messageTitle":"[#2120] Update RepoSense contributors in documentation (#2138)","messageBody":"The current About page on the RepoSense docs does not reflect the\r\nupdated list of developers working on RepoSense.\r\n\r\nLet\u0027s move to update the list to more accurately reference the current\r\ndevelopers of RepoSense.","fileTypesAndContributionMap":{"md":{"insertions":69,"deletions":19}}}]},{"date":"2024-04-15","commitResults":[{"hash":"54d002806b9a2c564ebfaf49fab09f762d0d8aab","isMergeCommit":false,"messageTitle":"Allow CI to pass if Codecov fails (#2189)","messageBody":"CI is failing when Codecov is failing.\r\n\r\nThis is a temporary workaround for CI until issues with Codecov are\r\nfixed.","fileTypesAndContributionMap":{"yml":{"insertions":1,"deletions":1}}}]},{"date":"2024-04-27","commitResults":[{"hash":"a25630e5fd55fe585b69368f647bd04e3f49f981","isMergeCommit":false,"messageTitle":"[#2177] Migrate to Java 11 Syntax and Features (#2183)","messageBody":"* Migrate CI/CD to Java 11\r\n\r\n* Update Docs to reflect Java 11\r\n\r\n* Update CI JDK version\r\n\r\n* Update checkstyle tool\r\n\r\n* Revert \"Update CI JDK version\"\r\n\r\nThe updating of the Checkstyle tool will be deferred\r\nto another PR to avoid causing dependency issues\r\narising from backwards compatibility.\r\n\r\n* Reapply \"Update CI JDK version\"\r\n\r\nReapplying revert action as it was reverted on\r\nthe wrong commit.\r\n\r\n* Revert \"Update checkstyle tool\"\r\n\r\nThe updating of the Checkstyle tool will be deferred\r\nto another PR to avoid causing dependency issues\r\narising from backwards compatibility.\r\n\r\n* Remove deprecated flags\r\n\r\n---------\r\n\r\nCo-authored-by: Ryan Poon \u003c96387349+sopa301@users.noreply.github.com\u003e","fileTypesAndContributionMap":{"gradle":{"insertions":2,"deletions":4},"md":{"insertions":8,"deletions":8},"yml":{"insertions":4,"deletions":4}}}]},{"date":"2024-05-12","commitResults":[{"hash":"f4cad78c41007171b1f1a9f4e61baa8cfe71c372","isMergeCommit":false,"messageTitle":"[#2170] Add Blurbs for Repos (#2191)","messageBody":"Currently, there are no ways for student developers to append messages\r\nfor each of the repositories they would like to showcase using\r\nRepoSense.\r\n\r\nLet\u0027s move to implement a blurbs feature to allow individual student\r\ndevelopers to showcase their contributions to their project.","fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":0},"java":{"insertions":441,"deletions":6},"md":{"insertions":73,"deletions":2},"js":{"insertions":34,"deletions":0}}}]}],"yuanxi1":[],"supermii2":[{"date":"2024-01-26","commitResults":[{"hash":"3cd680c3ddfa5a96f9168d3ab411d0cccfc3c52f","isMergeCommit":false,"messageTitle":"[#2082] Fix typo in command in Setting Up page (#2083)","messageBody":"Fix typo in Setting Up page\r\n\r\nThe command given in the developer guide for checking the local Node.js\r\nversion is `npm -v`, which displays the version of npm instead.\r\n\r\nLet\u0027s replace the command with `node -v`, which correctly displays the\r\nNode.js version.","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1}}}]},{"date":"2024-02-11","commitResults":[{"hash":"945405a6c5786c72e11b23da7c452bb9568b03b6","isMergeCommit":false,"messageTitle":"[#1933] Fix broken DevOps Guide link in Learning Basics (#2107)","messageBody":"Fix broken link to DevOps Guide in Learning Basics page.\r\n\r\nUnder the DevOps section in the developer guide,\r\nthe link to DevOps guide leads a Wiki link instead of redirecting to\r\nthe DevOps guide on the actual Reposense website.\r\n\r\nLet\u0027s fix the broken link by changing the address to the correct page.","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1}}}]},{"date":"2024-04-13","commitResults":[{"hash":"2692f0fef8b3d60579e0504d713d7505ff0f821c","isMergeCommit":false,"messageTitle":"[#2002] Add explicit return type annotations to TypeScript functions in *.vue files (#2125)","messageBody":"Many frontend functions lack return types after migration to\r\nTypeScript, which can cause errors due to TypeScript\u0027s attempted type\r\ninference being incorrect. Specifying return type explicitly can allow\r\nTypeScript to catch errors before the code is run.\r\n\r\nLet us add return type annotations to TypeScript functions within Vue\r\nfiles.\r\n\r\n---------\r\n\r\nCo-authored-by: David \u003cdavids89034@gmail.com\u003e","fileTypesAndContributionMap":{"json":{"insertions":3,"deletions":1}}}]}],"marquestye":[],"nknguyenhc":[],"Arif-Khalid":[],"NereusWB922":[],"dishenggg":[],"MadLamprey":[],"Tim-Siu":[]},"authorFileTypeContributionMap":{"xenosf":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"sopa301":{"java":1,"js":96,"scss":1,"json":3027,"md":24,"py":0,"pug":0,"gradle":1,"sh":0,"yml":3},"mingyuanc":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"jingting1412":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"KevinEyo1":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"LamJiuFong":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"yiwen101":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"jonasongg":{"java":0,"js":797,"scss":21,"json":0,"md":3,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"domoberzin":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"asdfghjkxd":{"java":1359,"js":34,"scss":0,"json":0,"md":176,"py":0,"pug":0,"gradle":3,"sh":0,"yml":5},"yuanxi1":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"supermii2":{"java":0,"js":0,"scss":0,"json":2,"md":2,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"marquestye":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"nknguyenhc":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"Arif-Khalid":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"NereusWB922":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"dishenggg":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"MadLamprey":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0},"Tim-Siu":{"java":0,"js":0,"scss":0,"json":0,"md":0,"py":0,"pug":0,"gradle":0,"sh":0,"yml":0}},"authorContributionVariance":{"xenosf":0.0,"sopa301":5002011.5,"mingyuanc":0.0,"jingting1412":0.0,"KevinEyo1":0.0,"LamJiuFong":0.0,"yiwen101":0.0,"jonasongg":812.2361,"domoberzin":0.0,"asdfghjkxd":6827.198,"yuanxi1":0.0,"supermii2":0.14225592,"marquestye":0.0,"nknguyenhc":0.0,"Arif-Khalid":0.0,"NereusWB922":0.0,"dishenggg":0.0,"MadLamprey":0.0,"Tim-Siu":0.0},"authorDisplayNameMap":{"xenosf":"XENO..NONG","sopa301":"POON..RYAN","mingyuanc":"CHIN..YUAN","jingting1412":"WANG..TING","KevinEyo1":"EYO ..EVIN","LamJiuFong":"LAM ..FONG","yiwen101":"WANG..IWEN","jonasongg":"JONA.. WEI","domoberzin":"DOMI.. GIN","asdfghjkxd":"GEOR.. YAO","yuanxi1":"ZHU ..ANXI","supermii2":"ALVI..S NG","marquestye":"TYE ..QUES","nknguyenhc":"NGUY..UYEN","Arif-Khalid":"ARIF..ALID","NereusWB922":"NERE.. BIN","dishenggg":"YEO ..HENG","MadLamprey":"MISR..ITYA","Tim-Siu":"XU S..UYAO"}} diff --git a/summary.json b/summary.json index 3660951..29a1d0d 100644 --- a/summary.json +++ b/summary.json @@ -1 +1 @@ -{"repoSenseVersion":"29b9f5fbd7","reportGeneratedTime":"Tue May 14 08:02:17 2024 UTC+08:00","reportGenerationTime":" 1 minute(s) 5.31 second(s)","zoneId":"UTC+08:00","reportTitle":"RepoSense Report","repos":[{"location":{"location":"https://github.com/markbind/markbind.git","repoName":"markbind","organization":"markbind","domainName":"github"},"branch":"master","displayName":"markbind/markbind[master]","outputFolderName":"markbind_markbind_master"},{"location":{"location":"https://github.com/reposense/reposense.git","repoName":"reposense","organization":"reposense","domainName":"github"},"branch":"master","displayName":"reposense/reposense[master]","outputFolderName":"reposense_reposense_master"},{"location":{"location":"https://github.com/se-edu/addressbook-level3.git","repoName":"addressbook-level3","organization":"se-edu","domainName":"github"},"branch":"master","displayName":"se-edu/addressbook-level3[master]","outputFolderName":"se-edu_addressbook-level3_master"},{"location":{"location":"https://github.com/TEAMMATES/teammates.git","repoName":"teammates","organization":"TEAMMATES","domainName":"github"},"branch":"master","displayName":"TEAMMATES/teammates[master]","outputFolderName":"TEAMMATES_teammates_master"},{"location":{"location":"https://github.com/CATcher-org/CATcher.git","repoName":"CATcher","organization":"CATcher-org","domainName":"github"},"branch":"master","displayName":"CATcher-org/CATcher[master]","outputFolderName":"CATcher-org_CATcher_master"},{"location":{"location":"https://github.com/CATcher-org/WATcher.git","repoName":"WATcher","organization":"CATcher-org","domainName":"github"},"branch":"main","displayName":"CATcher-org/WATcher[main]","outputFolderName":"CATcher-org_WATcher_main"}],"errorSet":[],"sinceDate":"2023-12-01","untilDate":"2024-05-14","isSinceDateProvided":true,"isUntilDateProvided":false,"supportedDomainUrlMap":{"NOT_RECOGNIZED":{"BRANCH":"","REPO_URL":"UNSUPPORTED","BASE_URL":"UNSUPPORTED","HISTORY_PATH":"","COMMIT_PATH":"","BLAME_PATH":""},"github":{"BRANCH":"tree/$BRANCH","REPO_URL":"https://github.com/$ORGANIZATION/$REPO_NAME/","BASE_URL":"https://github.com/","HISTORY_PATH":"commits/$BRANCH/$FILE_PATH","COMMIT_PATH":"commit/$COMMIT_HASH","BLAME_PATH":"blame/$BRANCH/$FILE_PATH"}},"isAuthorshipAnalyzed":false} +{"repoSenseVersion":"29b9f5fbd7","reportGeneratedTime":"Wed May 15 08:02:07 2024 UTC+08:00","reportGenerationTime":" 1 minute(s) 5.88 second(s)","zoneId":"UTC+08:00","reportTitle":"RepoSense Report","repos":[{"location":{"location":"https://github.com/markbind/markbind.git","repoName":"markbind","organization":"markbind","domainName":"github"},"branch":"master","displayName":"markbind/markbind[master]","outputFolderName":"markbind_markbind_master"},{"location":{"location":"https://github.com/reposense/reposense.git","repoName":"reposense","organization":"reposense","domainName":"github"},"branch":"master","displayName":"reposense/reposense[master]","outputFolderName":"reposense_reposense_master"},{"location":{"location":"https://github.com/se-edu/addressbook-level3.git","repoName":"addressbook-level3","organization":"se-edu","domainName":"github"},"branch":"master","displayName":"se-edu/addressbook-level3[master]","outputFolderName":"se-edu_addressbook-level3_master"},{"location":{"location":"https://github.com/TEAMMATES/teammates.git","repoName":"teammates","organization":"TEAMMATES","domainName":"github"},"branch":"master","displayName":"TEAMMATES/teammates[master]","outputFolderName":"TEAMMATES_teammates_master"},{"location":{"location":"https://github.com/CATcher-org/CATcher.git","repoName":"CATcher","organization":"CATcher-org","domainName":"github"},"branch":"master","displayName":"CATcher-org/CATcher[master]","outputFolderName":"CATcher-org_CATcher_master"},{"location":{"location":"https://github.com/CATcher-org/WATcher.git","repoName":"WATcher","organization":"CATcher-org","domainName":"github"},"branch":"main","displayName":"CATcher-org/WATcher[main]","outputFolderName":"CATcher-org_WATcher_main"}],"errorSet":[],"sinceDate":"2023-12-01","untilDate":"2024-05-15","isSinceDateProvided":true,"isUntilDateProvided":false,"supportedDomainUrlMap":{"NOT_RECOGNIZED":{"BRANCH":"","REPO_URL":"UNSUPPORTED","BASE_URL":"UNSUPPORTED","HISTORY_PATH":"","COMMIT_PATH":"","BLAME_PATH":""},"github":{"BRANCH":"tree/$BRANCH","REPO_URL":"https://github.com/$ORGANIZATION/$REPO_NAME/","BASE_URL":"https://github.com/","HISTORY_PATH":"commits/$BRANCH/$FILE_PATH","COMMIT_PATH":"commit/$COMMIT_HASH","BLAME_PATH":"blame/$BRANCH/$FILE_PATH"}},"isAuthorshipAnalyzed":false}