diff --git a/asset-manifest.json b/asset-manifest.json index 767defa2f..14d235439 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -26,7 +26,7 @@ "./static/js/20.9e601607.chunk.js": "/react/build/./static/js/20.9e601607.chunk.js", "./static/js/21.e1ab047a.chunk.js": "/react/build/./static/js/21.e1ab047a.chunk.js", "static/css/22.1305617c.chunk.css": "/react/build/static/css/22.1305617c.chunk.css", - "./static/js/22.a2643015.chunk.js": "/react/build/./static/js/22.a2643015.chunk.js", + "./static/js/22.82282989.chunk.js": "/react/build/./static/js/22.82282989.chunk.js", "./static/js/23.a523ad44.chunk.js": "/react/build/./static/js/23.a523ad44.chunk.js", "static/css/24.182305e7.chunk.css": "/react/build/static/css/24.182305e7.chunk.css", "./static/js/24.c0e99cb6.chunk.js": "/react/build/./static/js/24.c0e99cb6.chunk.js", @@ -65,7 +65,7 @@ "static/css/44.cb684e78.chunk.css": "/react/build/static/css/44.cb684e78.chunk.css", "./static/js/44.b27db5c4.chunk.js": "/react/build/./static/js/44.b27db5c4.chunk.js", "static/css/45.4b44c749.chunk.css": "/react/build/static/css/45.4b44c749.chunk.css", - "./static/js/45.97d427ec.chunk.js": "/react/build/./static/js/45.97d427ec.chunk.js", + "./static/js/45.b4018f93.chunk.js": "/react/build/./static/js/45.b4018f93.chunk.js", "static/css/46.182305e7.chunk.css": "/react/build/static/css/46.182305e7.chunk.css", "./static/js/46.c0fdbf38.chunk.js": "/react/build/./static/js/46.c0fdbf38.chunk.js", "static/css/47.45cf481e.chunk.css": "/react/build/static/css/47.45cf481e.chunk.css", @@ -120,7 +120,7 @@ "./static/js/75.27d3f681.chunk.js": "/react/build/./static/js/75.27d3f681.chunk.js", "./static/js/76.305031f2.chunk.js": "/react/build/./static/js/76.305031f2.chunk.js", "static/css/77.fd3fa2e9.chunk.css": "/react/build/static/css/77.fd3fa2e9.chunk.css", - "./static/js/77.51425811.chunk.js": "/react/build/./static/js/77.51425811.chunk.js", + "./static/js/77.188adee4.chunk.js": "/react/build/./static/js/77.188adee4.chunk.js", "static/css/78.f0e9a939.chunk.css": "/react/build/static/css/78.f0e9a939.chunk.css", "./static/js/78.15cbc2a4.chunk.js": "/react/build/./static/js/78.15cbc2a4.chunk.js", "static/css/79.7b0cd772.chunk.css": "/react/build/static/css/79.7b0cd772.chunk.css", @@ -154,7 +154,7 @@ "static/css/95.b17aa43e.chunk.css": "/react/build/static/css/95.b17aa43e.chunk.css", "./static/js/95.b83ae957.chunk.js": "/react/build/./static/js/95.b83ae957.chunk.js", "static/css/96.3edde0c7.chunk.css": "/react/build/static/css/96.3edde0c7.chunk.css", - "./static/js/96.e576abde.chunk.js": "/react/build/./static/js/96.e576abde.chunk.js", + "./static/js/96.378bcc41.chunk.js": "/react/build/./static/js/96.378bcc41.chunk.js", "static/css/97.78d24cb4.chunk.css": "/react/build/static/css/97.78d24cb4.chunk.css", "./static/js/97.ee3fd9ff.chunk.js": "/react/build/./static/js/97.ee3fd9ff.chunk.js", "./static/js/98.0279f785.chunk.js": "/react/build/./static/js/98.0279f785.chunk.js", @@ -167,7 +167,7 @@ "./static/js/102.5e7845ec.chunk.js": "/react/build/./static/js/102.5e7845ec.chunk.js", "./static/js/103.c53a68c4.chunk.js": "/react/build/./static/js/103.c53a68c4.chunk.js", "static/css/104.fd3fa2e9.chunk.css": "/react/build/static/css/104.fd3fa2e9.chunk.css", - "./static/js/104.cf8ec763.chunk.js": "/react/build/./static/js/104.cf8ec763.chunk.js", + "./static/js/104.421a4b03.chunk.js": "/react/build/./static/js/104.421a4b03.chunk.js", "./static/js/105.187fdd53.chunk.js": "/react/build/./static/js/105.187fdd53.chunk.js", "static/css/106.2646da34.chunk.css": "/react/build/static/css/106.2646da34.chunk.css", "./static/js/106.c134d4e8.chunk.js": "/react/build/./static/js/106.c134d4e8.chunk.js", @@ -184,7 +184,7 @@ "static/css/114.ebddf6de.chunk.css": "/react/build/static/css/114.ebddf6de.chunk.css", "./static/js/114.88ae9a6c.chunk.js": "/react/build/./static/js/114.88ae9a6c.chunk.js", "static/css/115.42ca5ffc.chunk.css": "/react/build/static/css/115.42ca5ffc.chunk.css", - "./static/js/115.05ddec42.chunk.js": "/react/build/./static/js/115.05ddec42.chunk.js", + "./static/js/115.63741259.chunk.js": "/react/build/./static/js/115.63741259.chunk.js", "static/css/116.41b8aabd.chunk.css": "/react/build/static/css/116.41b8aabd.chunk.css", "./static/js/116.888f1a15.chunk.js": "/react/build/./static/js/116.888f1a15.chunk.js", "static/css/117.41b8aabd.chunk.css": "/react/build/static/css/117.41b8aabd.chunk.css", @@ -236,7 +236,7 @@ "static/css/145.182305e7.chunk.css": "/react/build/static/css/145.182305e7.chunk.css", "./static/js/145.e5987f55.chunk.js": "/react/build/./static/js/145.e5987f55.chunk.js", "static/css/146.1e103c31.chunk.css": "/react/build/static/css/146.1e103c31.chunk.css", - "./static/js/146.0549f390.chunk.js": "/react/build/./static/js/146.0549f390.chunk.js", + "./static/js/146.34142901.chunk.js": "/react/build/./static/js/146.34142901.chunk.js", "static/css/147.f2060fe7.chunk.css": "/react/build/static/css/147.f2060fe7.chunk.css", "./static/js/147.9ac43341.chunk.js": "/react/build/./static/js/147.9ac43341.chunk.js", "static/css/148.f9d1b577.chunk.css": "/react/build/static/css/148.f9d1b577.chunk.css", @@ -315,7 +315,7 @@ "./static/js/218.3535b462.chunk.js": "/react/build/./static/js/218.3535b462.chunk.js", "main.css": "/react/build/static/css/main.636313c6.chunk.css", "main.js": "/react/build/./static/js/main.902eb96a.chunk.js", - "runtime~main.js": "/react/build/./static/js/runtime~main.852876dd.js", + "runtime~main.js": "/react/build/./static/js/runtime~main.04837fff.js", "./static/js/13.95ae4e64.chunk.js.LICENSE.txt": "/react/build/./static/js/13.95ae4e64.chunk.js.LICENSE.txt", "./static/js/133.9f14ae5c.chunk.js.LICENSE.txt": "/react/build/./static/js/133.9f14ae5c.chunk.js.LICENSE.txt", "./static/js/170.a16e4e0a.chunk.js.LICENSE.txt": "/react/build/./static/js/170.a16e4e0a.chunk.js.LICENSE.txt", diff --git a/index.html b/index.html index b2ee286cb..e8f50cf74 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/service-worker.js b/service-worker.js index 0f4fe7675..c518a63b2 100644 --- a/service-worker.js +++ b/service-worker.js @@ -1 +1 @@ -"use strict";var precacheConfig=[["/react/build/css.worker.js","abadf65f7ed870870dccf00a50b3c6ef"],["/react/build/editor.worker.js","2a381dfa06623f377bb84adbc7b38062"],["/react/build/html.worker.js","028952cd3f435d71d238edcdc2ef2967"],["/react/build/index.html","ab4e7fb6d91d639904d00cb775066c7a"],["/react/build/json.worker.js","4a4ca127f837beaf0dddae0c74c81b57"],["/react/build/static/css/101.06ee28b8.chunk.css","738dd16bc186439eabccab7ebe2d1cd0"],["/react/build/static/css/102.15253a67.chunk.css","cc03c8bd582e5fb3cf3cb57075905fe6"],["/react/build/static/css/104.fd3fa2e9.chunk.css","97c0f9c3d8d16c05584bec1ce645cda0"],["/react/build/static/css/106.2646da34.chunk.css","fd35f6d45b8f2b74b2b2fc747da42787"],["/react/build/static/css/110.f1eaede3.chunk.css","38f999c01692bf8d8bcfc4cd1a133500"],["/react/build/static/css/112.b6f629c2.chunk.css","9bee0d5efe580a886a06f342d0953f1d"],["/react/build/static/css/113.41b8aabd.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/114.ebddf6de.chunk.css","b16daaeaf671a9a92b48715bf9f0f31e"],["/react/build/static/css/115.42ca5ffc.chunk.css","a3e000826e9e975f288a5067c577c213"],["/react/build/static/css/116.41b8aabd.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/117.41b8aabd.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/118.35b1feac.chunk.css","0b43c1534cd52029318ecc64bc16cd82"],["/react/build/static/css/119.cdd78914.chunk.css","c8fa03c8951406a0c6dedbc44275a66c"],["/react/build/static/css/12.3634cedd.chunk.css","5d39578b91b84e925bd702d0d56a0ea2"],["/react/build/static/css/120.142cff28.chunk.css","e2d1282e7d68f47cc9a754940877e251"],["/react/build/static/css/121.11a04942.chunk.css","1373d0214c811e25b7c1763ef9cf3287"],["/react/build/static/css/125.15253a67.chunk.css","cc03c8bd582e5fb3cf3cb57075905fe6"],["/react/build/static/css/126.8a2a0d50.chunk.css","3c152d150d71ca1d782cbce74e83545a"],["/react/build/static/css/128.adba6539.chunk.css","2a7331558acec08d91f6776ad403e5a1"],["/react/build/static/css/129.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/131.fd5c069f.chunk.css","dc736ebb1d70ad8f92c50296bc5c21c2"],["/react/build/static/css/132.cbc5dafa.chunk.css","0d00c4a2d6cc383c8b2a40a24378d281"],["/react/build/static/css/133.2f409942.chunk.css","6f1d0eaeed7a282caf0ce33adaef0898"],["/react/build/static/css/139.c0242127.chunk.css","3de2e94ba931d38eb377530c8ea1be89"],["/react/build/static/css/140.4b81475a.chunk.css","5776cdefa5c145f9b7aa289397d7c7db"],["/react/build/static/css/141.188a7db8.chunk.css","d365448e4d5cdef07410d3ba784e1364"],["/react/build/static/css/142.9df86194.chunk.css","dae2a89b8b4b9577d529ccdc67b2bd1b"],["/react/build/static/css/143.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/144.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/145.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/146.1e103c31.chunk.css","d7a9f0ce5623c1a832cbed8af8deb779"],["/react/build/static/css/147.f2060fe7.chunk.css","3dc3569f98f0d43324c3871cc5623426"],["/react/build/static/css/148.f9d1b577.chunk.css","f9b149d2ed650f6b4ec24b09d29f3e4e"],["/react/build/static/css/15.d23100bf.chunk.css","849793163ceba269d8afe246ff025d7a"],["/react/build/static/css/151.09d927dd.chunk.css","21b5e0861d5ba04df287b13341a1a5ce"],["/react/build/static/css/152.41b8aabd.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/18.d401c96a.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/22.1305617c.chunk.css","cc9ab2ccf1939eb7a572d5e9606a3853"],["/react/build/static/css/24.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/25.b974e0fe.chunk.css","21c7446e5eeade6c5a700477671eaa50"],["/react/build/static/css/31.70ca0113.chunk.css","e795affdc09e234ba4c3a608a69ed0f0"],["/react/build/static/css/32.fa411774.chunk.css","5fb37497699e9bd6f332204b762a1c0c"],["/react/build/static/css/33.78a1ba5d.chunk.css","83a2ab1e5c6be84e927fda72b983d73e"],["/react/build/static/css/34.f4dd829a.chunk.css","0c8f9b503914ffe0e126e9c3dff7fdbc"],["/react/build/static/css/35.000e3263.chunk.css","f397bad8e2d5ff56f4a9c63ad86f35db"],["/react/build/static/css/36.c61ae118.chunk.css","37dce675a2709225c047150bb93768e2"],["/react/build/static/css/37.0d2673a6.chunk.css","ac3b5a3f969d0d00b5ee642cb490baa9"],["/react/build/static/css/38.311ed58c.chunk.css","2c20df76988bf57e60f5a35b9d2e8fba"],["/react/build/static/css/40.29d26e89.chunk.css","98808e47e13ff616e21708935125c5df"],["/react/build/static/css/41.62655d16.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/42.b8c949a1.chunk.css","5f17a6000e83f647de8cdee820aa5ad5"],["/react/build/static/css/43.cb684e78.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/44.cb684e78.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/45.4b44c749.chunk.css","dc522e623399a1887411619e0e4f0528"],["/react/build/static/css/46.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/47.45cf481e.chunk.css","30749cd2765ceee9494251f6f1025310"],["/react/build/static/css/48.9cbc7f4a.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/49.9cbc7f4a.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/50.47d05c9e.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/51.aa1aedbe.chunk.css","ad64c0eede853274fe7737a65d66d18b"],["/react/build/static/css/52.23e457c6.chunk.css","b7ea9928083ea35acce72ee289c77941"],["/react/build/static/css/53.f8ce57b7.chunk.css","d6d7a13f06f71440a953ce2798887469"],["/react/build/static/css/54.58e88442.chunk.css","4c607decefc5223e114b0c81b2a06a37"],["/react/build/static/css/55.a1819630.chunk.css","2e140b39ca87fb19bdb264111265be77"],["/react/build/static/css/57.6436558f.chunk.css","08727dcc716788b9207e6965eabd0c8a"],["/react/build/static/css/58.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/59.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/60.f7de5d73.chunk.css","b3c5d398aa3ddb54ae0927ac614da74d"],["/react/build/static/css/61.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/63.fd083902.chunk.css","6f65bae71f11e62309c73d5b818f30f3"],["/react/build/static/css/65.080d6958.chunk.css","d9b5ca9cb767438bb42a4167d8c9141b"],["/react/build/static/css/68.7b8a6eb0.chunk.css","e5a078261e06b47655db2e7181c7d7d6"],["/react/build/static/css/70.2b4fa75d.chunk.css","894748843894405d62402217fff3324b"],["/react/build/static/css/71.29d26e89.chunk.css","d4bec6cd2f5b06e46e520f4ec70f5a11"],["/react/build/static/css/73.85453161.chunk.css","8ab34f94699b7e4d8b3545378ea5f22c"],["/react/build/static/css/75.29d26e89.chunk.css","d4bec6cd2f5b06e46e520f4ec70f5a11"],["/react/build/static/css/77.fd3fa2e9.chunk.css","97c0f9c3d8d16c05584bec1ce645cda0"],["/react/build/static/css/78.f0e9a939.chunk.css","12e166c63392539f90d3ff0400b3e3c4"],["/react/build/static/css/79.7b0cd772.chunk.css","c314131a5bc42a5be7abb1600b6de565"],["/react/build/static/css/80.0f05a488.chunk.css","d3d626d448389555875e8da3507e47b2"],["/react/build/static/css/81.f8baad43.chunk.css","8ea65ce507a9b9eafa61a7a489c17e3a"],["/react/build/static/css/82.d23100bf.chunk.css","849793163ceba269d8afe246ff025d7a"],["/react/build/static/css/83.adba6539.chunk.css","2a7331558acec08d91f6776ad403e5a1"],["/react/build/static/css/85.d126f3fc.chunk.css","07181be567bdb103c3b473c97021176e"],["/react/build/static/css/86.ce6407ca.chunk.css","b9919f86ce152b27a22e1a0e6a627b6e"],["/react/build/static/css/88.632d7855.chunk.css","226acc64dfa2fad8420e5eadf2d7b32d"],["/react/build/static/css/89.41b8aabd.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/9.4580c46d.chunk.css","8d16c1c5c5e4eaa8353e5b73aa97767e"],["/react/build/static/css/91.ea97577b.chunk.css","1211ec54a5dbd129cf63cacdc130ca13"],["/react/build/static/css/93.b2109eb4.chunk.css","4215fbff912ba2ff16a8d0129bd4b326"],["/react/build/static/css/94.ddd123f8.chunk.css","9b429eb52fcf2a98b927e4a50ee5e302"],["/react/build/static/css/95.b17aa43e.chunk.css","66bd4cf32b0679a4ba125c04c85c279d"],["/react/build/static/css/96.3edde0c7.chunk.css","fdec91b854d997a2d04e3cab3c33a778"],["/react/build/static/css/97.78d24cb4.chunk.css","73dc1567cf66ea89cfa27454bc5a1571"],["/react/build/static/css/99.4054f41b.chunk.css","df7b038f8f1a0e16793b24bc950b9b22"],["/react/build/static/css/main.636313c6.chunk.css","8374f6d1034a29d7a54e025a338c7c26"],["/react/build/static/js/0.34fa008a.chunk.js","2177a411a3d8e29334d45e8248f4d199"],["/react/build/static/js/1.4eee6ded.chunk.js","cfaafd9509240f01179c8aaa4282a3e1"],["/react/build/static/js/10.e6e54e5b.chunk.js","c9e7b93eb36cc6f0cae3b1a5b86300b6"],["/react/build/static/js/100.e2119b38.chunk.js","430df66ce65bc2a6b6d1fcb7f8369f2d"],["/react/build/static/js/101.688edfee.chunk.js","c456be818541c6b46f8343ac85526f97"],["/react/build/static/js/102.5e7845ec.chunk.js","916398a75374811d63fc7a197356c5c5"],["/react/build/static/js/103.c53a68c4.chunk.js","970a294f19ea17ddf63e7cc3e1dc1497"],["/react/build/static/js/104.cf8ec763.chunk.js","6047dc7a82e61c6f76f443a8fd1e3c72"],["/react/build/static/js/105.187fdd53.chunk.js","37a0affe7b41fd908f69762e08086409"],["/react/build/static/js/106.c134d4e8.chunk.js","9413570032308d58615bac3131fa490a"],["/react/build/static/js/107.06df551d.chunk.js","1b6ca743f21acbbc8cefba78713378a2"],["/react/build/static/js/108.e23857df.chunk.js","7c6d0583a64527018ddcc807c189484a"],["/react/build/static/js/109.63d9710b.chunk.js","d3dc2e8dda22a28592215b3d2c95c445"],["/react/build/static/js/11.70e9713a.chunk.js","fb4fb2533d0a8f93e2b8392c7208ae37"],["/react/build/static/js/110.2b7c6734.chunk.js","d07090ec0021b57d283cfd92997c2e3b"],["/react/build/static/js/111.b98e9fe2.chunk.js","16d7146c0518df7e92427ef1ebbe5f14"],["/react/build/static/js/112.b9b92442.chunk.js","01754e25c894b7b4d37702ba9ce18adb"],["/react/build/static/js/113.10a5bbb2.chunk.js","aaca95bf7a277fe27524872c843bf863"],["/react/build/static/js/114.88ae9a6c.chunk.js","f1c6a9800f6089c187772ed437783e66"],["/react/build/static/js/115.05ddec42.chunk.js","37156fb02e5c5d5515b39a7c41cc94df"],["/react/build/static/js/116.888f1a15.chunk.js","02bf39f7ef224c2f09a513ea56a7fbdc"],["/react/build/static/js/117.7b18afd9.chunk.js","60403334df4134581e6f1a7ae3e06564"],["/react/build/static/js/118.d130b5d1.chunk.js","4b74c6021546463fd5d27fb6021b3e68"],["/react/build/static/js/119.d2281458.chunk.js","a80fb3bb181735a05f0cb1304483f769"],["/react/build/static/js/12.9d1fe6c6.chunk.js","b4a2cb7192606bb6a801d545b4970808"],["/react/build/static/js/120.90826596.chunk.js","12a9dd163747376ebed9cb5f9d79643d"],["/react/build/static/js/121.beefc4b7.chunk.js","ebb1c6d18b0d33368518f8ece35f360d"],["/react/build/static/js/122.5a0aca6f.chunk.js","72215a59354ce92f36a22143fc16a4a2"],["/react/build/static/js/123.7bd5e54b.chunk.js","b3067c32148534aa03c0e16eafbe708e"],["/react/build/static/js/124.b84ea499.chunk.js","8550b29e7eb3a1b8c66bb991a815864e"],["/react/build/static/js/125.5d4319dd.chunk.js","5926e796376efcc6fa69650ae5041cd0"],["/react/build/static/js/126.b5068576.chunk.js","3b37757c1c64d1b6b20316f51a000473"],["/react/build/static/js/127.ead03da4.chunk.js","ea46eab6e4b92d6270c8e5a7b6af2b64"],["/react/build/static/js/128.979535c0.chunk.js","d46ffb358a005a10e4729c04bf49f166"],["/react/build/static/js/129.97ec778f.chunk.js","a58b9994da2be0d59774b123ac68e5bb"],["/react/build/static/js/13.95ae4e64.chunk.js","723e9b746bca59bd470973d58ea6a731"],["/react/build/static/js/13.95ae4e64.chunk.js.LICENSE.txt","414cf2c4fdfe67f2673475f6d9c8fc93"],["/react/build/static/js/130.73fce0c3.chunk.js","0ecdb7730ac5ce3c4bcdf792b0f9286a"],["/react/build/static/js/131.7a40379e.chunk.js","4331302c54e67b7e6c527c6c20c1f344"],["/react/build/static/js/132.d283d987.chunk.js","0c55cb40184b04297638900bb660158e"],["/react/build/static/js/133.9f14ae5c.chunk.js","96902fcdd871350760c0e33e8203179c"],["/react/build/static/js/133.9f14ae5c.chunk.js.LICENSE.txt","5092c6e04c7faa4b291d51dc5bb6081a"],["/react/build/static/js/134.e5a7dcb4.chunk.js","df0f4df6b552c94febf4b44b0da41bbc"],["/react/build/static/js/135.9ffb885d.chunk.js","ceb6726508d03ce567aa34dca8d961a0"],["/react/build/static/js/136.e5815887.chunk.js","447b958846263e5591028578d89492f7"],["/react/build/static/js/137.78edca3c.chunk.js","873a90aba2405a9212a599a49eb9d710"],["/react/build/static/js/138.a44ca9bc.chunk.js","c0d43b63d7812ab1d30cd2e6078b06bf"],["/react/build/static/js/139.9319da64.chunk.js","28f706fc36371904f1512027744444ae"],["/react/build/static/js/14.d9a6740f.chunk.js","f5e89d08e32dced76530d1a111062ff6"],["/react/build/static/js/140.589b7b1c.chunk.js","df7a6aeb75e9510a4a0d66a4f6101586"],["/react/build/static/js/141.89d6d151.chunk.js","d3296bdc34d572af170ddfc57dced323"],["/react/build/static/js/142.ab62c67d.chunk.js","f9c928c4b27d81f5d5b8d68109888e59"],["/react/build/static/js/143.8280830d.chunk.js","f1985a5bfa49d144812be66ff7f11ce1"],["/react/build/static/js/144.776d734d.chunk.js","7d97329edbb3692b8f40a9bdcbd58058"],["/react/build/static/js/145.e5987f55.chunk.js","ac12bd31e153de4ca4b53aa1c9c49ecf"],["/react/build/static/js/146.0549f390.chunk.js","e9d9b14fb3e8b8dfed9971781b145bbe"],["/react/build/static/js/147.9ac43341.chunk.js","5a7554749475584b1f00bf6a6a6a2b86"],["/react/build/static/js/148.bae93b29.chunk.js","e30060197979516b3d0f586c0029f209"],["/react/build/static/js/149.8469cc84.chunk.js","8d49b9d2aa85bb95c8b70de11b52743b"],["/react/build/static/js/15.3b083b20.chunk.js","524e5846da838c064aa0d85c7a5930a7"],["/react/build/static/js/150.565a3966.chunk.js","44e977a9a9c6fa9ab24712ce5e63d6bd"],["/react/build/static/js/151.e9cb417c.chunk.js","0298eb9d862ecc0e1c9b9c190265fcc2"],["/react/build/static/js/152.d5f13d22.chunk.js","333f61565a3e891abc9daa0661db982d"],["/react/build/static/js/153.977410cf.chunk.js","53554be2c99d47bc69c3bb5cd24091c6"],["/react/build/static/js/154.f9ef284b.chunk.js","5dafefe42820701cd8d105a64910d56d"],["/react/build/static/js/155.589fe3d7.chunk.js","cb8dd6b37d2f5fc2fa6a23c381a55b50"],["/react/build/static/js/156.3edc3387.chunk.js","2788712ebffdcd3a07906ebf115c8f17"],["/react/build/static/js/157.0c0ecbd9.chunk.js","9637a86bd3794b6dbc336446593b9663"],["/react/build/static/js/158.40b36057.chunk.js","bc1602cf5016b515588de613b0adeafa"],["/react/build/static/js/159.01061eeb.chunk.js","430b1ab0300bb169b83ce28eb0976d9d"],["/react/build/static/js/16.82fc6757.chunk.js","b1539afbd879874fa5b43c38652fa7a7"],["/react/build/static/js/160.6f4a785b.chunk.js","c455b9a21ec64bca170d75a9e762ff05"],["/react/build/static/js/161.abb71f69.chunk.js","8e852dcd49dc63228600e7c2b9e284c2"],["/react/build/static/js/162.921fd738.chunk.js","b7a17df0c32852da155c720a02848df2"],["/react/build/static/js/163.291c6c71.chunk.js","65b2362c778171ab26b4b8c111fb2968"],["/react/build/static/js/164.e1446e0f.chunk.js","ab93f702c002e05ab2a41d73c9254201"],["/react/build/static/js/165.43fea246.chunk.js","9221178163435a2875e2e3c3e7223da1"],["/react/build/static/js/166.98f7a664.chunk.js","2f9dd2cf4a1b4cc464640bdcdf8d11f2"],["/react/build/static/js/167.df8917dc.chunk.js","c84f36b8db695af8a0a28c3e5fb6fe1c"],["/react/build/static/js/168.de9ea03d.chunk.js","4db80d82b1fdd56bd489b320cdbb32d9"],["/react/build/static/js/169.90e77040.chunk.js","3db7b05fa370da4877ae212c64cc7426"],["/react/build/static/js/17.256141af.chunk.js","2b5a84cf9110892bea8f15bd24f706e7"],["/react/build/static/js/170.a16e4e0a.chunk.js","957dd6930eab6a10130a7da837d8b8ba"],["/react/build/static/js/170.a16e4e0a.chunk.js.LICENSE.txt","03278fe9381615d8b390847939a9eb37"],["/react/build/static/js/171.7e67e57c.chunk.js","1e2f39cf4eb88c0cf755ab4f65531fe1"],["/react/build/static/js/172.5f72ab95.chunk.js","b426a9130c422de9950eecbafffe90a0"],["/react/build/static/js/173.17dcf518.chunk.js","b13cd4d60248fc25a0cb5c8ec412fb5a"],["/react/build/static/js/174.89d0583c.chunk.js","8c8e26fb9aba0dd9dd62d8b83bde4856"],["/react/build/static/js/175.832fa942.chunk.js","9f701c1675acb02d328566076e55ea66"],["/react/build/static/js/176.eb60e4a5.chunk.js","68dd3e6aeae52affe67f030cddd9478f"],["/react/build/static/js/177.9246ed0f.chunk.js","cecee8432f8eda7650e8145acb24d633"],["/react/build/static/js/178.25233bfa.chunk.js","7b0049981be22b7c7255eb2f9b4d43de"],["/react/build/static/js/179.23be0142.chunk.js","4259f0d9155a7ba38f506ff57483b78c"],["/react/build/static/js/18.704d8243.chunk.js","11e0293635579d8c842d6eeb37ab7de3"],["/react/build/static/js/180.5d11f1a7.chunk.js","5e8bf5d1fcc3b4f4b4d3347bbe510686"],["/react/build/static/js/181.79880cb3.chunk.js","94039acd93884470dee67bf091c77325"],["/react/build/static/js/182.67f55261.chunk.js","6fc244c2ec28431b2b56d1541782011d"],["/react/build/static/js/183.851d7210.chunk.js","43417d6a531f395c76844a959d2458c0"],["/react/build/static/js/184.02146860.chunk.js","da2941c08a1442fba74ff4af70ddd40f"],["/react/build/static/js/185.8383d838.chunk.js","913a831c66bafafcfd27cc7fdd9ef469"],["/react/build/static/js/186.21f98652.chunk.js","917e0b3681ed893a61f940f840db3bc6"],["/react/build/static/js/187.2fead581.chunk.js","616a533ce611b85c2e32107c3cb17e94"],["/react/build/static/js/188.0c077d79.chunk.js","749da021c61929fb08d4d77f9edb018a"],["/react/build/static/js/189.12afa5e0.chunk.js","4b1ed7231baa80a3313d71dc7158b398"],["/react/build/static/js/19.855faff3.chunk.js","f246ba3410b130bf2a2b6b15b5a02667"],["/react/build/static/js/190.427e4bce.chunk.js","7d51518a2077e1a039ea4985f50fd8f1"],["/react/build/static/js/191.3bc68443.chunk.js","006a28185d82e906fc02e57842ed1f74"],["/react/build/static/js/192.7a7877c7.chunk.js","8944a32e44b8d42da940d62b35a3065d"],["/react/build/static/js/193.1affba86.chunk.js","bfc2f2d37b46bc1c4cf1ca6b272193c6"],["/react/build/static/js/194.be084f15.chunk.js","fb5818f99ee61a751519d572468d6aea"],["/react/build/static/js/195.a264dc08.chunk.js","693c5d2d74ed3f0916e8b5e66a015dc0"],["/react/build/static/js/196.7e5bd1dd.chunk.js","8f40629f44efc598993fe8a587363867"],["/react/build/static/js/197.a3acc310.chunk.js","1b34f733511f7f25f667b85eafc5b841"],["/react/build/static/js/198.cb49da57.chunk.js","bb27291eb188fb65353326247ae8e2d8"],["/react/build/static/js/199.6ecc7253.chunk.js","f6c1b2a116914cf6d6346729bdf1d4d6"],["/react/build/static/js/2.a51e9f4f.chunk.js","32c06e6da004da3aac86ea604be9a5cf"],["/react/build/static/js/20.9e601607.chunk.js","1bac003279ad57efc66264c13f5562c1"],["/react/build/static/js/200.6cdc7ff5.chunk.js","0bcb69f07307ce8c538d12e5c1a11acd"],["/react/build/static/js/201.f0e1a41b.chunk.js","f04c9103ee5fc6c0be30d9982d5d0f52"],["/react/build/static/js/202.320bf42f.chunk.js","afa6ecea4b631865f6356b747ffd01e4"],["/react/build/static/js/203.a841667a.chunk.js","0d5a13292a73276a314e7bce5d3c8e55"],["/react/build/static/js/204.0024e97d.chunk.js","f16d974c5e28a48d80284fd42091c008"],["/react/build/static/js/205.ee668e94.chunk.js","24eb71ed4c5b8fe57b637a3bf93ea08e"],["/react/build/static/js/206.7ba676f3.chunk.js","4cf53e8033739b332478aaedcefa92df"],["/react/build/static/js/207.1ef730b6.chunk.js","9e3690f56d94e0729992ce89384fce76"],["/react/build/static/js/208.d42e3a12.chunk.js","a5063cba1f3d5cd9b24d186a5e69cc14"],["/react/build/static/js/209.16a32344.chunk.js","d84695227dfbc95a998201922d64e289"],["/react/build/static/js/21.e1ab047a.chunk.js","80f4e82aa8ffa2aa3940f3baaf08c838"],["/react/build/static/js/210.012fc614.chunk.js","e1f51c8459bb35d1e7a3068099db61cb"],["/react/build/static/js/211.34d672ae.chunk.js","cd580fbc80118a0a745b92b136dc67df"],["/react/build/static/js/212.3561639d.chunk.js","262cdc1f07f0c6972f4329c13326984c"],["/react/build/static/js/213.df7a6934.chunk.js","279fce52d18a7d041d922e87ce66ef07"],["/react/build/static/js/213.df7a6934.chunk.js.LICENSE.txt","cf224aa154060b2c3c86fa6ed5af6aa8"],["/react/build/static/js/214.c4f377d9.chunk.js","1a93d54d8606889c97ffd49e3ed8e8c1"],["/react/build/static/js/215.1433c2f6.chunk.js","48176bacbe36bf000a679464f48b67ee"],["/react/build/static/js/216.9bdeebfa.chunk.js","78d4dfed7e453b01b961a1a3f3998039"],["/react/build/static/js/217.7700a84a.chunk.js","1a45573b3ce99ba12f776739433af2fc"],["/react/build/static/js/218.3535b462.chunk.js","23982977e96437b7373284434f4149ff"],["/react/build/static/js/22.a2643015.chunk.js","85c147c65ba2fcb6968826bb54862c33"],["/react/build/static/js/23.a523ad44.chunk.js","0887cbc2dbf6f4a0b8cd727b39dffd94"],["/react/build/static/js/24.c0e99cb6.chunk.js","266dd7bc197bf92d076788c34da190a1"],["/react/build/static/js/25.bfa08901.chunk.js","bbd043b30906ebab185c995ff45767f5"],["/react/build/static/js/26.8761cded.chunk.js","ec09dd6135448a34df2904f1da8a82f7"],["/react/build/static/js/27.c9e387b5.chunk.js","c1c780300c60fdc3f3d72650b363d4ed"],["/react/build/static/js/28.06e2211b.chunk.js","ba2956a7ae3da0bd07208e30d24258a9"],["/react/build/static/js/29.3e8ac0f4.chunk.js","85c797fa6745739470dbac965fe97f69"],["/react/build/static/js/3.3fafc57b.chunk.js","78e322938d161a89adb10a92511b756a"],["/react/build/static/js/30.017ae9d3.chunk.js","45fc146f6aa90d4a5df22a9b64b1d198"],["/react/build/static/js/31.65118a95.chunk.js","95695484ff5df5f43b84f801220ee5f3"],["/react/build/static/js/32.83234ca5.chunk.js","86d15fecab055e46c72674eac4727931"],["/react/build/static/js/33.bc2c6722.chunk.js","617a9de0ff96d77f652c02293d0d8ee9"],["/react/build/static/js/34.bfb2328f.chunk.js","df8dba49721f11e3554dc3f6e017a1bb"],["/react/build/static/js/35.49118a5a.chunk.js","91311e5f5dd12e76dac247518639f0d4"],["/react/build/static/js/35.49118a5a.chunk.js.LICENSE.txt","b0d99b131d3d9eb581a2b728f570f362"],["/react/build/static/js/36.2752244b.chunk.js","18853438a46389dab416e1a9e9635039"],["/react/build/static/js/37.dd534647.chunk.js","cb02a7c35518f1640c4240c31d7276b4"],["/react/build/static/js/37.dd534647.chunk.js.LICENSE.txt","cb5c64be860077345ad988d24cd80627"],["/react/build/static/js/38.f7f1a6f8.chunk.js","aa0c9c23ab59dd9e0a6f4067c7024092"],["/react/build/static/js/39.f2d850cd.chunk.js","d94b06ee351398f333f85085b38b23c7"],["/react/build/static/js/4.335b1902.chunk.js","f345693a64158cde186544dc4066344b"],["/react/build/static/js/40.eedb27f5.chunk.js","4c4bb2e94059db30a109b7079129b6ce"],["/react/build/static/js/41.6f7c8ce2.chunk.js","6fbc8dbb3941b27d8f8a66f95f81f5ea"],["/react/build/static/js/42.b7832a34.chunk.js","b0cabcaa6da8b97c9a10fcf60f19d44c"],["/react/build/static/js/43.397dcb34.chunk.js","c01dd7ac64f30317431935b039060353"],["/react/build/static/js/44.b27db5c4.chunk.js","4488c71f078bd5ac502ba41119709c52"],["/react/build/static/js/45.97d427ec.chunk.js","bef216eb37cf883e77fc10ed5e193c6a"],["/react/build/static/js/46.c0fdbf38.chunk.js","4896293dffa9c2e27ab3e456fc6ec8ea"],["/react/build/static/js/47.80d015b2.chunk.js","54ad367c2bfd5fa6e674a973b9aae3a2"],["/react/build/static/js/48.0dd3865e.chunk.js","db1b850d52e674fa63fcdf41648d600c"],["/react/build/static/js/49.e428e82d.chunk.js","0da604f668f41403908d7275d1b01eae"],["/react/build/static/js/5.e7c3a06c.chunk.js","1b886ad4169d04290fa05cc4ffa43ac4"],["/react/build/static/js/50.dd2c67d5.chunk.js","5f32df78c0728c4b380c431b393a9e0e"],["/react/build/static/js/51.58e1c27f.chunk.js","92991988eddc49ae3668c52edcb9f7ee"],["/react/build/static/js/52.3a309240.chunk.js","1dea20d6ade559a3bafc654af2da890e"],["/react/build/static/js/53.78f4b32d.chunk.js","a596ff2ec8a6e134069c3b7170608968"],["/react/build/static/js/54.2c3e8985.chunk.js","ae05bf9a6f39d87f903139c0e9d0dfa3"],["/react/build/static/js/55.73c1f462.chunk.js","8066e6cd796ebd731ace4860dfc47868"],["/react/build/static/js/56.ec9bc156.chunk.js","1311768b0522700c7a3ae0fec5374636"],["/react/build/static/js/57.65840853.chunk.js","0866cb827950ab4d3caf87bd8ec71ff1"],["/react/build/static/js/58.6aee3793.chunk.js","9aec418aea1108910b34069fa6b52eaa"],["/react/build/static/js/59.7fc04500.chunk.js","285335063df95e5d530b2f1b7f98c6d1"],["/react/build/static/js/6.6336358f.chunk.js","ed6bdfe1e0dacefbabcf9a8bba22c1e0"],["/react/build/static/js/6.6336358f.chunk.js.LICENSE.txt","7ec01595672f75e83fd81b41f132f4c1"],["/react/build/static/js/60.34c85001.chunk.js","85ceb5d0623bf330c9e5a2d22128777c"],["/react/build/static/js/61.c3927ab7.chunk.js","ffb897f926730aeb72b60eb01ff5c0c8"],["/react/build/static/js/62.56afca91.chunk.js","94f2fc6c03c05e0b0c108183998e05c9"],["/react/build/static/js/63.0e84dbf6.chunk.js","36db741e4525de2e4ac48bf3fd6df444"],["/react/build/static/js/64.9ff8c26d.chunk.js","ee789af312120ab44cd0854a3308d624"],["/react/build/static/js/65.7f8de10f.chunk.js","201963412d7602c1025d35ae7eb594af"],["/react/build/static/js/66.9663ad72.chunk.js","9edf27ce1985a84dcacdfc13d4b9503d"],["/react/build/static/js/67.578f84ef.chunk.js","a5379f7cf2ebdbfccd9d8bb1b16faf95"],["/react/build/static/js/68.b45257fc.chunk.js","94c60338dc7a3569c7104ce98c95f601"],["/react/build/static/js/69.7b8165b1.chunk.js","21abde96b0941e9e5561ee6512b9e7a4"],["/react/build/static/js/7.d6e6f968.chunk.js","0a035f46f6f4b658f429b0b298bc36e5"],["/react/build/static/js/70.c9b33f4e.chunk.js","ab900a767efbe1d73262c39cbcb4f313"],["/react/build/static/js/71.2d301be7.chunk.js","4c51a7a517027d2d3b8f925cecb500d8"],["/react/build/static/js/72.2e7f8a16.chunk.js","f9aef7d816d7d15e41c0a9b16f6f4121"],["/react/build/static/js/73.97c7a854.chunk.js","acf69baae246513a20d1cafc900dc968"],["/react/build/static/js/74.52410ee9.chunk.js","eefbc9647d9b2575c90f199225274f3a"],["/react/build/static/js/75.27d3f681.chunk.js","ba5518d2e15669c3b6cfad1d62446128"],["/react/build/static/js/76.305031f2.chunk.js","5f06edb1e815adf82291410ce00a8ee8"],["/react/build/static/js/77.51425811.chunk.js","18f034f39e40439cb73fcd6f5ac379aa"],["/react/build/static/js/78.15cbc2a4.chunk.js","36521b97d951717cb5a1277b642738ae"],["/react/build/static/js/79.adf0aee6.chunk.js","d9f8306cc6d4b3820bc08eaecc7440b1"],["/react/build/static/js/8.4717141c.chunk.js","8d9877a3f2b14149ba12f7a9626d5a10"],["/react/build/static/js/80.d34cac9d.chunk.js","d48ede469345d392f40274be932fb7a0"],["/react/build/static/js/81.d361cd6c.chunk.js","7ccb7964765611abe87389330ef02b77"],["/react/build/static/js/82.9ffc6c81.chunk.js","df6eaaae73b12fdb9526ad0bd86537d5"],["/react/build/static/js/83.e9f4eba2.chunk.js","097a6294a5914127dcfe0091058654c5"],["/react/build/static/js/84.eea12776.chunk.js","cc50021644bddd218dc799d82454578e"],["/react/build/static/js/85.90e015a2.chunk.js","1219642c16e7bce55a04c14fce93f217"],["/react/build/static/js/86.1e605b3f.chunk.js","bb0583e41ea2a90da057bd4d191bd1d3"],["/react/build/static/js/87.04bcc0e2.chunk.js","a78035c3bb9f374339097653ef393d95"],["/react/build/static/js/88.5c3ca964.chunk.js","2c9806b9578cb4aab89c9bd01ebb03c2"],["/react/build/static/js/89.13a9f841.chunk.js","ab6d147863123b62b209728aee32b2ff"],["/react/build/static/js/9.7609e756.chunk.js","6111cf1e796a04db27508d5b78836987"],["/react/build/static/js/9.7609e756.chunk.js.LICENSE.txt","b0d99b131d3d9eb581a2b728f570f362"],["/react/build/static/js/90.3a913fa1.chunk.js","c94d30a86d47761b283fde8a21257b4c"],["/react/build/static/js/91.437fc2d1.chunk.js","9b92104271888504b9e7be59e2e62495"],["/react/build/static/js/92.9d3d608b.chunk.js","560af619c1a503ac47b99911a24d5cf7"],["/react/build/static/js/93.78fff09c.chunk.js","6bee41cc9050d28166b92658a8a2bed1"],["/react/build/static/js/94.db965e3e.chunk.js","f70dca5c84004b43dea52475b998d2f8"],["/react/build/static/js/95.b83ae957.chunk.js","7b27e287480bc20d0712eeeab11708bc"],["/react/build/static/js/96.e576abde.chunk.js","de85245b029b85f6dfd4ac1101798439"],["/react/build/static/js/97.ee3fd9ff.chunk.js","69c82983df7c4167c4fc1e7b2982e68f"],["/react/build/static/js/98.0279f785.chunk.js","f717e6c0f90a923ffae571b5ff833700"],["/react/build/static/js/99.1d9ed8b6.chunk.js","072357809bac22011c7eb7a483e21429"],["/react/build/static/js/main.902eb96a.chunk.js.LICENSE.txt","cf1eb1a342652bcfa5f86f5d4aba7d28"],["/react/build/static/js/runtime~main.852876dd.js","d54878040c50e45d5f9d03ed969b87c3"],["/react/build/static/media/2-1bg.d22a63b9.png","ba2b4a272d5ca00d9400b4cd1fd573d6"],["/react/build/static/media/2-2-1.afd0f2f5.png","63de0e927282052b4b7a3a4a4e06c004"],["/react/build/static/media/2-2-2.26bc3301.png","09350b2fc63799fbbbed880ee86c54dc"],["/react/build/static/media/2-2-3.6d6ce99c.png","04c46e92f6c6dbc3f354c7d12f41efdf"],["/react/build/static/media/2-2-head.5e69dbb2.png","1ed02c446d34cd67de8d1685ffd16181"],["/react/build/static/media/2-3-1.bcb33d47.png","6309aee1c5b0f1906cf8224c70a2954d"],["/react/build/static/media/2-3-2.57ef08ae.png","13d71726e3c0f7ba20318b57eece054f"],["/react/build/static/media/2-3-3.52733627.png","284814681a0af3e1c41bf547a189de86"],["/react/build/static/media/2-3-4.339b2f1c.png","9ec275ef1b19daa2a2194674dfb106ad"],["/react/build/static/media/2-3bg.deef1b07.png","5b8e2e8dd995ea94a13247eb5ed7ca9e"],["/react/build/static/media/2-4-1.802eb322.png","d3950f1555e0210dd70a374600f83aae"],["/react/build/static/media/2-4bg.45478d20.png","f28c71d7b533b10dc5c1c33ddc7e028d"],["/react/build/static/media/2-5bg.9cca3de1.png","7d7c0003e780841147d31243f7c305ad"],["/react/build/static/media/2-6-1.302b729e.png","cd88cc40364a0dacde3fa5af91cb8407"],["/react/build/static/media/2-6-2.b262b91e.png","50b143930101e1b295683ba0099f9ab9"],["/react/build/static/media/3-1.9fdda521.png","f6add2be652f2989e8b5c8ebc319f44d"],["/react/build/static/media/3-2.47050941.png","b3ad137b32270db1b9fc4aa08c8e0451"],["/react/build/static/media/3-3.c767aae7.png","5d79fb69eee45493a7555b6414c739c0"],["/react/build/static/media/3-4.92820cbc.png","5d26624685fca97de2721a718a5209eb"],["/react/build/static/media/3-bg.4f22fe34.png","28b762cb9f96c8122b700f54e3c914b4"],["/react/build/static/media/34@2x.ed8e5910.png","174665edd0ab7f03fa9e60353417cbaa"],["/react/build/static/media/35@2x.33462edc.png","8cfe5ce0a0d51e3b6d9af2a5ccb2784a"],["/react/build/static/media/36@2x.8f54f5ba.png","0dd97091f3e6be410d8d5ef8df634ce8"],["/react/build/static/media/37@2x.97a40a2a.png","54b6a5ad4cdecb5d722bb1509e5e0216"],["/react/build/static/media/38@2x.f072fe68.png","e890bdfa45d996910aad3597b0a24c09"],["/react/build/static/media/39@2x.ee1af05a.png","cef1223f2f0ce7cc451c982e2f7dc6dd"],["/react/build/static/media/4-1.79fa159d.png","2bea356c9736a2f3787b03d69b72c733"],["/react/build/static/media/4-2.9c066e75.png","88eada7dcd52a5d211ee86aacd523616"],["/react/build/static/media/4-3.a1487a5b.png","da4afd909ef92b84e7a90043e96504d1"],["/react/build/static/media/4-4.5eb40734.png","d3f20f10c4de4cf438ac376516763db9"],["/react/build/static/media/4-bg.214b12ef.png","bb353b3cf7d527c4c052a5462e5f2209"],["/react/build/static/media/40@2x.f10a55e2.png","603a7113eda7af6d3d908b8b7bed4e1a"],["/react/build/static/media/42@2x.25d6b5fd.png","b17ffff59b4673910f125e208e448757"],["/react/build/static/media/44@2x.1374baf9.png","0f150a0e7cf098056300667f82d986f4"],["/react/build/static/media/46@2x.e272d43e.png","06d55da5cb08016c1d1561e111e41c29"],["/react/build/static/media/48@2x.3bde4de9.png","46fe84acf4e9b0c974d28785a76d416d"],["/react/build/static/media/49.b03e6efe.png","b084f468520ae3ea313839228035ed41"],["/react/build/static/media/50@2x.69b76634.png","59d8c56b75d5833bcaa4ca40c24e0282"],["/react/build/static/media/52@2x.41805cbb.png","9e64828acb8840429063f19df28f6262"],["/react/build/static/media/55@2x.83486b73.png","1f3a3cec5959e66b7e32acb3974c30b2"],["/react/build/static/media/57@2x.8dc6b0b8.png","e9e9efcca4a99b81aeaa2b3d5f3d8149"],["/react/build/static/media/59@2x.b0884ef0.png","076b0a99ff2dfa32cf88da927fd5bdde"],["/react/build/static/media/61@2x.99d3cc3e.png","0899a86bb440717a21f3692383ebf49d"],["/react/build/static/media/63@2x.49f389b9.png","74d7a6b844adc2bac1f21d47f3878a78"],["/react/build/static/media/65@2x.ef33e2f9.png","82a58ddca2302ee7b12b0c38b8df9a4b"],["/react/build/static/media/67@2x.4a4f4b6c.png","7f37bcee2e2be94ddef7ef4feaf6b8a9"],["/react/build/static/media/69@2x.379c6a82.png","b0fbdb5e689fc6ac05bc029ed150c556"],["/react/build/static/media/BJHKHT.f065403a.png","7e59d4b496c81f75d5c11c5166f030a4"],["/react/build/static/media/CEC.3b748059.png","064eea41dfa53645eb0134012b9e7f2e"],["/react/build/static/media/GFKJ.eb30c414.png","a60603b90e7b35d31753400f56be7770"],["/react/build/static/media/HSKY.2e76ba44.png","390849e1165e584772959baecaafb55b"],["/react/build/static/media/ISCAS.851fcfda.png","6a2b57a38c79d3c48a5aa238a113d165"],["/react/build/static/media/KYRJLM.2d659e5c.png","8d92960a37abe7deb48e25b7ea72a2e5"],["/react/build/static/media/KaTeX_AMS-Regular.b1489df1.woff","7f06b4e30317f784d61d26686aed0ab2"],["/react/build/static/media/KaTeX_AMS-Regular.d4531cf7.woff2","e78e28b4834954df047e4925e9dbf354"],["/react/build/static/media/KaTeX_AMS-Regular.f80d9eaf.ttf","aaf4eee9fba9907d61c3935e0b6a54ae"],["/react/build/static/media/KaTeX_Caligraphic-Bold.0c96bc8f.ttf","021dd4dc61ee5f5cdf315f43b48c094b"],["/react/build/static/media/KaTeX_Caligraphic-Bold.7ce7636b.woff","1e802ca9dedc4ed4e3c6f645e4316128"],["/react/build/static/media/KaTeX_Caligraphic-Bold.f046a374.woff2","4ec58befa687e9752c3c91cd9bcf1bcb"],["/react/build/static/media/KaTeX_Caligraphic-Regular.35f3c951.ttf","d49f2d55ce4f40f982d8ba63d746fbf9"],["/react/build/static/media/KaTeX_Caligraphic-Regular.4519ba4c.woff2","7edb53b6693d75b8a2232481eea1a52c"],["/react/build/static/media/KaTeX_Caligraphic-Regular.4a559f36.woff","d3b46c3a530116933081d9d74e3e9fe8"],["/react/build/static/media/KaTeX_Fraktur-Bold.069514d4.ttf","a31e7cba7b7221ebf1a2ae545fb306b2"],["/react/build/static/media/KaTeX_Fraktur-Bold.2ea3916b.woff","c4c8cab7d5be97b2bb283e531c077355"],["/react/build/static/media/KaTeX_Fraktur-Bold.5b8749ee.woff2","d5b59ec9764e10f4a82369ae29f3ac58"],["/react/build/static/media/KaTeX_Fraktur-Regular.0d90113d.woff","b7d9c46bff5d51da6209e355cc4a235d"],["/react/build/static/media/KaTeX_Fraktur-Regular.2c629b06.woff2","32a5339eb809f381a7357ba56f82aab3"],["/react/build/static/media/KaTeX_Fraktur-Regular.96556db6.ttf","a48dad4f58c82e38a10da0ceebb86370"],["/react/build/static/media/KaTeX_Main-Bold.07e762d0.ttf","9ceff51b3cb7ce6eb4e8efa8163a1472"],["/react/build/static/media/KaTeX_Main-Bold.20b90c20.woff2","8e1e01c4b1207c0a383d9a2b4f86e637"],["/react/build/static/media/KaTeX_Main-Bold.a9cdbc85.woff","22086eb5d97009c3e99bcc1d16ce6865"],["/react/build/static/media/KaTeX_Main-BoldItalic.7649d52f.woff","4c57dbc44bfff1fdf08a59cf556fdab3"],["/react/build/static/media/KaTeX_Main-BoldItalic.b345de5b.woff2","284a17fe5baf72ff8217d4c7e70c0f82"],["/react/build/static/media/KaTeX_Main-BoldItalic.bc8d96e9.ttf","e8b44b990516dab7937bf240fde8b46a"],["/react/build/static/media/KaTeX_Main-Italic.44a32ae6.ttf","29c86397e75cdcb3135af8295f1c2e28"],["/react/build/static/media/KaTeX_Main-Italic.ab751a9e.woff2","e533d5a2506cf053cd671b335ec04dde"],["/react/build/static/media/KaTeX_Main-Italic.e3954fe9.woff","99be0e10c38cd42466e6fe1665ef9536"],["/react/build/static/media/KaTeX_Main-Regular.13b3f852.woff2","5c734d78610fa35282f3379f866707f2"],["/react/build/static/media/KaTeX_Main-Regular.9e75cd60.woff","b741441f6d71014d0453ca3ebc884dd4"],["/react/build/static/media/KaTeX_Main-Regular.af7fc7b3.ttf","5c94aef490324b0925dbe5f643e8fd04"],["/react/build/static/media/KaTeX_Math-BoldItalic.4d6241be.ttf","9a2834a9ff8ab411153571e0e55ac693"],["/react/build/static/media/KaTeX_Math-BoldItalic.94810ff6.woff","b13731ef4e2bfc3d8d859271e39550fc"],["/react/build/static/media/KaTeX_Math-BoldItalic.d5d35e84.woff2","d747bd1e7a6a43864285edd73dcde253"],["/react/build/static/media/KaTeX_Math-Italic.11278d36.woff","f0303906c2a67ac63bf1e8ccd638a89e"],["/react/build/static/media/KaTeX_Math-Italic.cae7ea26.ttf","291e76b8871b84560701bd29f9d1dcc7"],["/react/build/static/media/KaTeX_Math-Italic.ffda8803.woff2","4ad08b826b8065e1eab85324d726538c"],["/react/build/static/media/KaTeX_SansSerif-Bold.2946bdb5.woff","3fb419559955e3ce75619f1a5e8c6c84"],["/react/build/static/media/KaTeX_SansSerif-Bold.5a20a475.woff2","6e0830bee40435e72165345e0682fbfc"],["/react/build/static/media/KaTeX_SansSerif-Bold.f0ad0abc.ttf","7dc027cba9f7b11ec92af4a311372a85"],["/react/build/static/media/KaTeX_SansSerif-Italic.c7feacd5.ttf","4059868e460d2d2e6be18e180d20c43d"],["/react/build/static/media/KaTeX_SansSerif-Italic.c834ba6d.woff","727a9b0d97d72d2fc0228fe4e07fb4d8"],["/react/build/static/media/KaTeX_SansSerif-Italic.e5fc2aef.woff2","fba01c9c6fb2866a0f95bcacb2c187a5"],["/react/build/static/media/KaTeX_SansSerif-Regular.5af9e1cf.ttf","5c58d168c0b66d2c32234a6718e74dfb"],["/react/build/static/media/KaTeX_SansSerif-Regular.5bf28900.woff2","d929cd671b19f0cfea55b6200fb47461"],["/react/build/static/media/KaTeX_SansSerif-Regular.a4fd0563.woff","2555754a67062cac3a0913b715ab982f"],["/react/build/static/media/KaTeX_Script-Regular.a1c15978.woff2","755e2491f13b5269f0afd5a56f7aa692"],["/react/build/static/media/KaTeX_Script-Regular.cd3b0634.woff","d524c9a5b62a17f98f4a97af37fea735"],["/react/build/static/media/KaTeX_Script-Regular.dd0db7ae.ttf","d12ea9efb375f9dc331f562e69892638"],["/react/build/static/media/KaTeX_Size1-Regular.1876361f.woff2","048c39cba4dfb0460682a45e84548e4b"],["/react/build/static/media/KaTeX_Size1-Regular.bbd9552c.ttf","7342d45b052c3a2abc21049959fbab7f"],["/react/build/static/media/KaTeX_Size1-Regular.c4ae0d25.woff","08b5f00e7140f7a10e62c8e2484dfa5a"],["/react/build/static/media/KaTeX_Size2-Regular.635e9324.woff","af24b0e4b7e52656ca77914695c99930"],["/react/build/static/media/KaTeX_Size2-Regular.d1e8ff17.ttf","eb130dcc661de766c999c60ba1525a88"],["/react/build/static/media/KaTeX_Size2-Regular.f516b73c.woff2","81d6b8d5ca77d63d5033d6991549a659"],["/react/build/static/media/KaTeX_Size3-Regular.1ef7adae.woff2","b311ca09df2c89a10fbb914b5a053805"],["/react/build/static/media/KaTeX_Size3-Regular.5d632274.ttf","7e02a40c41e52dc3b2b6b197bbdf05ea"],["/react/build/static/media/KaTeX_Size3-Regular.f32a9fde.woff","0d8926405d832a4b065e516bd385d812"],["/react/build/static/media/KaTeX_Size4-Regular.1d132596.ttf","ad7672524b64b730dfd176140a8945cb"],["/react/build/static/media/KaTeX_Size4-Regular.4f012d6a.woff2","6a3255dfc1ba41c46e7e807f8ab16c49"],["/react/build/static/media/KaTeX_Size4-Regular.f668d566.woff","68895bb880a61a7fc019dbfaa5121bb4"],["/react/build/static/media/KaTeX_Typewriter-Regular.4f31d033.woff2","6cc31ea5c223c88705a13727a71417fa"],["/react/build/static/media/KaTeX_Typewriter-Regular.b1d1af1a.ttf","257023560753aeb0b89b7e434d3da17f"],["/react/build/static/media/KaTeX_Typewriter-Regular.d3c8e68f.woff","3fe216d2a5f736c560cde71984554b64"],["/react/build/static/media/LC.f247fdb8.png","3e02cbcebad7837bf48da07b33a10bf5"],["/react/build/static/media/LSLM.99387946.png","41c202edbdb8a04e0cff8dca05fcc3de"],["/react/build/static/media/ML.08d278e2.png","9f958c18dbce14eafeed88a2fff5ec30"],["/react/build/static/media/NJDX.bb34b326.png","48e32a4eb948d5d618f7234210cd111d"],["/react/build/static/media/QH.b57a0131.png","45efbad10af2600ac575f17c7f1c6f25"],["/react/build/static/media/SHJT.426bf0c7.png","93cf5b16ef9208cb5bf1da99eebde8fb"],["/react/build/static/media/TX.b703476c.png","47cf36954b1fbb684e346d72dd890b14"],["/react/build/static/media/WXYJY.21e40191.png","e080df4c7b430301c9f741d432afa8ad"],["/react/build/static/media/XH.a0a88f17.png","a621d3a4f230af8107e727f60ed4c8f0"],["/react/build/static/media/XJY.b4c57bf1.png","e41c17ce768fcf94a03339a71c30d6f3"],["/react/build/static/media/YKD.4f7e2766.png","fa37d44fd25bcf449ec35efe68de61c5"],["/react/build/static/media/ZC.ad056aa5.png","c51f75c3c4c469809acda5c394c02adf"],["/react/build/static/media/achievements.f20b7e39.png","6a9f5aef5cc32d04d0a7a2f7acc38b11"],["/react/build/static/media/award-bg.f71628f1.png","c5dd065eaa235efd1c330b41d27f3370"],["/react/build/static/media/award-tit.4c48185a.png","5dec871e9bf24ad08589bf24da7d56c9"],["/react/build/static/media/ball.24214b6e.png","4600b466befba451dd38df26879cf299"],["/react/build/static/media/banner-interim.c50ff667.png","afee978cdb229c29525a3b28d3f411a2"],["/react/build/static/media/banner.40f1ff0c.png","196a855ae4a95a04943211925b34b83b"],["/react/build/static/media/banner.598a8076.png","1e538e70165e458ca1662f937d1264dd"],["/react/build/static/media/banner.84187e6e.png","ecf9fdcd304fa1e37310d49755e2f009"],["/react/build/static/media/banner.f7da2db1.png","23523c6657f4a1abe198837d0316a162"],["/react/build/static/media/banner_list.e02c5e16.jpg","bc53dcd5b0731ce2ac28c3ea02a01c97"],["/react/build/static/media/beijing.bfcd5b0e.png","518931a330ddf9dd7348d702c82c033c"],["/react/build/static/media/bg.401bf2cf.png","228280fae26c66cbfd718f680d16ce7f"],["/react/build/static/media/bg.9688532b.png","c1f86769f7e46442052e59452f01f9d9"],["/react/build/static/media/bg.a51f2ffd.png","10085e3dfd86fd912dd2df5855fdd7b0"],["/react/build/static/media/bg1.8fea5c5f.png","9908ca0a39c6288aeb6e6753c95f7ca6"],["/react/build/static/media/bgPng.ed010245.png","9c63690dae3e5e96cc49a08ff24cf230"],["/react/build/static/media/box.548a8c8b.png","d86432e2f3b9c9e605b14855d40c4c1f"],["/react/build/static/media/ccf_logo.a54fdc70.png","99678a58665cdb049736919636983ee3"],["/react/build/static/media/ccf_logo1.be10ead7.png","e2e6fef345151e132fdcce161cc87525"],["/react/build/static/media/check_tabs.dc02b037.png","3cd1dc6de8c94ea0b139f837fc00abdf"],["/react/build/static/media/codeafter.c3088c74.png","49ed3ae6c715b4f312f9a4af582ef2a8"],["/react/build/static/media/computer.4fe86b12.png","902233a9dd36c8a274324382e7f693b3"],["/react/build/static/media/contact_bg.ad2cf7be.png","be9e8358ae98671c686db10d24a2a81b"],["/react/build/static/media/detectionBG.6759a755.png","a8244f19972a05a30815da7c25d5abd1"],["/react/build/static/media/devops.39983f5b.png","6fab3d0ca745ca5b57c7923030ff0db7"],["/react/build/static/media/earth.050b1435.png","bdc488cfc8356fbe92e2c5e85f38d3a9"],["/react/build/static/media/fun1.c99ffa49.png","0821dbab48751cec64b2bb3c795796ef"],["/react/build/static/media/fun2.12f22bca.png","54a5d7faf4b9ddb2e82d7b5207089a6c"],["/react/build/static/media/fun3.75c280e6.png","5c69ce2307b9e074af5ce82d88ef8582"],["/react/build/static/media/fun4.f499794e.png","253ae97d5ce8d7de5fd987d0ac9cc51b"],["/react/build/static/media/fun5.96b44942.png","e8afdfd77e8ea57ed9945cde3bcf7b98"],["/react/build/static/media/funBg.410c4305.png","d6f1410497fc1f2ed6acdbc525857fc6"],["/react/build/static/media/funBg3.d1c7d094.png","3e38083b0ae65fdcb3e237ee1caa0e6f"],["/react/build/static/media/funBg4.68c5f49e.png","4387caf6448bde780eccac5072aba145"],["/react/build/static/media/gitee1.279a922b.svg","db64f813b50a88db601751938070597e"],["/react/build/static/media/github2.95ea181b.svg","6a52d8f2d1cc8baf1edaf8a1374a9261"],["/react/build/static/media/gitlink1.4bf0ed96.png","74f1d8c84848fb0b81ee404552ef7427"],["/react/build/static/media/gitlink2.0ec0ec22.png","8f753495bab62a461ee0cb63eb0ee889"],["/react/build/static/media/head.52aa3fc8.png","3a5b86995f4e5b03deb387dd013e58b4"],["/react/build/static/media/help.0bfb2587.png","ed85504ae3ea434b5dca53dc3a666dea"],["/react/build/static/media/help_bg.d2bb4c18.png","4558c0fafe9b751957f47d510d3faf92"],["/react/build/static/media/huake.63b6a34d.png","adbad39e4b3344c8dac6fa02807eb9e5"],["/react/build/static/media/huawei.73ec7c22.png","64d20728102a750c9ce500eb424f1de5"],["/react/build/static/media/ideLogo.0dca8d76.svg","42d6121571a45e6466dc8151da3ee900"],["/react/build/static/media/image20.4f1ce1bb.svg","2f78686cac653fd009cce87e1100b430"],["/react/build/static/media/image21.5cddfd61.svg","8a02d740954406b3a5ea8e748629e245"],["/react/build/static/media/image22.6ff2b063.svg","c66ea17e75e42e4cd6d63831a05b7cad"],["/react/build/static/media/img1.8560258f.png","1a039a78776399d0eee98e6ad7a07ce5"],["/react/build/static/media/img1.e0beda57.png","37963219e6ca5c4144ba62693c52c31f"],["/react/build/static/media/img1.fc155528.png","2aa17810adc47741e9f26238cbe7dba7"],["/react/build/static/media/img10.64149a3d.png","44f29fca2b72ab9726d3413cd75c763e"],["/react/build/static/media/img15.87a3556c.png","caf5daf4b8834cf0c40a93f32616e2f6"],["/react/build/static/media/img16.32badab9.png","e20c519658bc608e7b432ea7557cf618"],["/react/build/static/media/img17.c25d5edc.png","2b82779b3b1f36aa80495153b68f3d3a"],["/react/build/static/media/img18.4963efc1.png","df5029d95eef15daf5a7326e88399d6d"],["/react/build/static/media/img2.789fbbfe.png","f7ef7805e3cd8e94a431def695bd886d"],["/react/build/static/media/img2.ae303051.png","51bd149911e029ebf15ad8838b05c674"],["/react/build/static/media/img3.cee3ac5b.png","eafb9519b0ba2dd31e768fa8c751ea49"],["/react/build/static/media/img4.53c937cb.png","d79d2611f2cfbc03316fff2204ba0b90"],["/react/build/static/media/img5.ca3a2287.png","a55ff2eecc025d68b5f7a6f1f8a9ed85"],["/react/build/static/media/img6.8f81bf78.png","f64772292e6a90fc1da0dbdca501cd11"],["/react/build/static/media/img7.e4a68e6e.png","4c472d65efdbd4517ada8ee751228890"],["/react/build/static/media/img8.10500e00.png","aea38e49166c86c63b177f3145a0b064"],["/react/build/static/media/img9.d25372ba.png","aa259ddd863027c59146b33666f57c2c"],["/react/build/static/media/introduce.30b50cda.png","b3ccb50edadf6c46d3b4bbe1c0dc4eb5"],["/react/build/static/media/jijinhui.041fb524.png","827c1f894afb783870599d02cb5c4c3f"],["/react/build/static/media/joinUs.26ec28cd.png","9cd5fee199af626730ee25a37f118eb3"],["/react/build/static/media/lightspot-bg.87ad53a9.png","d0ab18b0b4f74eab6b2bfe3aa3a2b88c"],["/react/build/static/media/lightspot1.9214f0ae.png","ac3bd597543bcfb1a17a039b9f955c50"],["/react/build/static/media/lightspot2.b7053786.png","5d91f7f67c0f69fb68d40416c15dc9eb"],["/react/build/static/media/lightspot3.2f8af8da.png","b6a4577e53a6ca085671ffd9a8b62ce0"],["/react/build/static/media/lightspot4.93769763.png","f9f2f6654b165d72d9780e101e19e845"],["/react/build/static/media/loginBg.1cddcbff.png","86ec58b9f8f3f50140770546cf840257"],["/react/build/static/media/logo.62af9fee.png","bdb086d84a720bfb0c7a3bef50cc6422"],["/react/build/static/media/logo.f0d4927b.svg","9ee4b6d239cf05d9118b4a863ca4bfa3"],["/react/build/static/media/logo1.77949f0b.png","c55c1cd504df9c1e180610117d52b26c"],["/react/build/static/media/logo1.ec3c2e67.png","1b63bf1709328011dd17013bd4999fd3"],["/react/build/static/media/logo2.b04c07f2.png","82f448805e0380b391c77943d02b1d46"],["/react/build/static/media/mulan.690d2289.png","b9d8b87a75927dc097d45280c2ca0f4b"],["/react/build/static/media/newIcon.6ce5faf2.svg","47650e72fa1a06001e80def6f101b6af"],["/react/build/static/media/news-item.c2aef644.png","fd090d94d0fe94b8f12a9e68ac872c4d"],["/react/build/static/media/news-main.731a5143.png","40d592ac03be023dd1fd67a60a97df57"],["/react/build/static/media/news-main1.d438d3c7.png","f9c1445528c719c33464b6b9d5be8883"],["/react/build/static/media/nps1.b2849b06.png","a22d69867a2d0871e69fe18ceb7a8201"],["/react/build/static/media/nps2.d5d0b666.png","9b14ce3c332a63d95d62716030398ee3"],["/react/build/static/media/partner_bg.88388216.png","eac2e2ad3b1a25d605ed746409b530ef"],["/react/build/static/media/personalInfo1.13c2500e.png","813da468a7e7472edbdf3de5516049f3"],["/react/build/static/media/personalInfo2.f01447c8.png","5176f62523dc034a2977c61065b2e101"],["/react/build/static/media/projectBg.774764d7.png","916780acccd06591f270420affece47c"],["/react/build/static/media/projectDetailTaskBg.66b1fb2d.png","161c7fee542a59bdf4cb8a5a94086831"],["/react/build/static/media/qqChat.9e56cc22.png","fc97e294a452fcfae783dc73d1f24ff6"],["/react/build/static/media/registerBg.e14e89f4.png","5ca168f423644e195c7fe270cc728873"],["/react/build/static/media/resetPasswordBg.df9a6167.png","13b9a18d3a09d34b1320713d38fbd04f"],["/react/build/static/media/resultBanner.152068bc.png","f94f4227d3825fa32615af9bf12b45f9"],["/react/build/static/media/resultBanner2.c3095c5d.png","e7a33f637c22dbd6e7703ab7c56cf9aa"],["/react/build/static/media/resultBanner3.e11193de.png","2d21f1a2ad794f632b733ab4ba3ed4aa"],["/react/build/static/media/rightBg.55f14f0c.png","f38c59f756ada99c3eafd76ab2333925"],["/react/build/static/media/sexange.b3665539.png","fe580c3386c0dac7aa9480dbe1c26b9d"],["/react/build/static/media/slick.2630a3e3.svg","f97e3bbf73254b0112091d0192f17aec"],["/react/build/static/media/slick.29518378.woff","b7c9e1e479de3b53f1e4e30ebac2403a"],["/react/build/static/media/slick.a4e97f5a.eot","ced611daf7709cc778da928fec876475"],["/react/build/static/media/slick.c94f7671.ttf","d41f55a78e6f49a5512878df1737e58a"],["/react/build/static/media/sponsor11.5e9da48d.png","0cc78d9e2df9b816f79923244d807999"],["/react/build/static/media/sponsor21.8a655acc.png","86d7c2304bf3f60d923bdc6f25951f33"],["/react/build/static/media/sponsor22.96e2b643.png","c26b18460bdc7959b7baddc5bf8e9a8c"],["/react/build/static/media/sponsor31.0fd95bcb.png","099a8680be13f97915df39f8247fe2d9"],["/react/build/static/media/sponsor33.27be3b2d.png","11f04aa6ba51b6ba1ae2e09cdabaff8e"],["/react/build/static/media/studentProject.cd6d6c4f.png","b09a0e1f08910aac316f2aeed243fb76"],["/react/build/static/media/subtitle.5019e086.png","b2d9c74c02d4de483f79085596d0064b"],["/react/build/static/media/tab.12ed44f1.png","581200ee4543ddb99f2eeb0c6df7d4f6"],["/react/build/static/media/tabBackground.18febe91.png","d55a8d32e7d0303ebf04cf4ff42b470a"],["/react/build/static/media/taskbar.49a40f3a.png","80443aacad0a26162d838d4f71af128a"],["/react/build/static/media/teacher-img.e0e2a9bf.png","dae1295a05fabc82382c0116d8f3e5c8"],["/react/build/static/media/teacher1.ee492a9b.png","b995335297dd994485a4855aea43ff27"],["/react/build/static/media/teacher10.9298db29.png","b081bd10fc70f320e0f4448fd1c69da6"],["/react/build/static/media/teacher11.8a0d8669.png","3a3db3db638f5426e7bda4bef24a2484"],["/react/build/static/media/teacher12.47e02224.png","0635d72f566d9365bda9d8d88d80defd"],["/react/build/static/media/teacher13.f7886e36.png","f903bba276231fd009dfa6fc32c8b1b6"],["/react/build/static/media/teacher14.83b48396.png","5b3290eacd871568046c9b5591591d7b"],["/react/build/static/media/teacher15.5d777604.png","2e7eb1c34f389f025d84e13c54ca8297"],["/react/build/static/media/teacher2.b2b9919d.png","7279b7ba87a86ca7d46dfa6d0c9df088"],["/react/build/static/media/teacher3.20cb800b.png","e8277cbe9f532bccc0266be07afb402b"],["/react/build/static/media/teacher4.c15a0bda.png","9a0016c1a46ce39fa8e415bcd9ae72b4"],["/react/build/static/media/teacher5.9397d078.png","51a49c0ea258d928438153cfbd399be4"],["/react/build/static/media/teacher6.06b6f465.png","f1b92d0ac115f75b438f05a31fd0b551"],["/react/build/static/media/teacher7.4102dcc1.png","6e4e9fff991f8cc1f88479706ab55a37"],["/react/build/static/media/teacher8.5d3f117e.png","be6bfe0c206b2089065b0313c07e7eb0"],["/react/build/static/media/teacher9.69b0adae.png","e0666a81294a17768829744aa117ea24"],["/react/build/static/media/time-bg.f61a7e5f.png","ebb56fbe31fc6fc51fb81da23fdfcdf8"],["/react/build/static/media/top-1.54a95b91.png","3d2bbe827191450fb82fc04b7ba925c9"],["/react/build/static/media/top-2.2a21b300.png","7cddde07beac784e8edd065bf3c5f4e2"],["/react/build/static/media/top-3.48ab81a2.png","702e62391cc8148d3f6f405720527121"],["/react/build/static/media/top-bg.7b89cf7e.png","1cf27750ff50673346a49beeab0c3bb9"],["/react/build/static/media/typebg.b2b0ea32.png","c02c413fdc8fbcb9bd4a042ff9f0ea5a"],["/react/build/static/media/xigongye.d51231d3.png","751514079a6e7d1cfd19af4527749e53"],["/react/build/static/media/xiuos.67682257.png","6fd484b0615e89cb2a2fcde1e6e261a1"],["/react/build/static/media/xjy.6e62f4d6.png","6542ba49c3e8515e8cada3f15f7ab094"],["/react/build/static/media/浙江大学.3c545e69.png","b305afeded0784578319d459a6d71cc7"],["/react/build/ts.worker.js.LICENSE.txt","ce15c9d372cc5baeacdeb733817bdde4"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(c,a){c=new URL(c);return"/"===c.pathname.slice(-1)&&(c.pathname+=a),c.toString()},cleanResponse=function(a){return a.redirected?("body"in a?Promise.resolve(a.body):a.blob()).then(function(c){return new Response(c,{headers:a.headers,status:a.status,statusText:a.statusText})}):Promise.resolve(a)},createCacheKey=function(c,a,e,d){c=new URL(c);return d&&c.pathname.match(d)||(c.search+=(c.search?"&":"")+encodeURIComponent(a)+"="+encodeURIComponent(e)),c.toString()},isPathWhitelisted=function(c,a){if(0===c.length)return!0;var e=new URL(a).pathname;return c.some(function(c){return e.match(c)})},stripIgnoredUrlParameters=function(c,e){c=new URL(c);return c.hash="",c.search=c.search.slice(1).split("&").map(function(c){return c.split("=")}).filter(function(a){return e.every(function(c){return!c.test(a[0])})}).map(function(c){return c.join("=")}).join("&"),c.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(c){var a=c[0],c=c[1],a=new URL(a,self.location),c=createCacheKey(a,hashParamName,c,/\.\w{8}\./);return[a.toString(),c]}));function setOfCachedUrls(c){return c.keys().then(function(c){return c.map(function(c){return c.url})}).then(function(c){return new Set(c)})}self.addEventListener("install",function(c){c.waitUntil(caches.open(cacheName).then(function(d){return setOfCachedUrls(d).then(function(e){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(a){if(!e.has(a)){var c=new Request(a,{credentials:"same-origin"});return fetch(c).then(function(c){if(!c.ok)throw new Error("Request for "+a+" returned a response with status "+c.status);return cleanResponse(c).then(function(c){return d.put(a,c)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(c){var e=new Set(urlsToCacheKeys.values());c.waitUntil(caches.open(cacheName).then(function(a){return a.keys().then(function(c){return Promise.all(c.map(function(c){if(!e.has(c.url))return a.delete(c)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(a){var e,c,d;"GET"===a.request.method&&(e=stripIgnoredUrlParameters(a.request.url,ignoreUrlParametersMatching),d="index.html",(c=urlsToCacheKeys.has(e))||(e=addDirectoryIndex(e,d),c=urlsToCacheKeys.has(e)),d="/react/build/index.html",!c&&"navigate"===a.request.mode&&isPathWhitelisted(["^(?!\\/__).*"],a.request.url)&&(e=new URL(d,self.location).toString(),c=urlsToCacheKeys.has(e)),c&&a.respondWith(caches.open(cacheName).then(function(c){return c.match(urlsToCacheKeys.get(e)).then(function(c){if(c)return c;throw Error("The cached response that was expected is missing.")})}).catch(function(c){return console.warn('Couldn\'t serve response for "%s" from cache: %O',a.request.url,c),fetch(a.request)})))}); \ No newline at end of file +"use strict";var precacheConfig=[["/react/build/css.worker.js","abadf65f7ed870870dccf00a50b3c6ef"],["/react/build/editor.worker.js","2a381dfa06623f377bb84adbc7b38062"],["/react/build/html.worker.js","028952cd3f435d71d238edcdc2ef2967"],["/react/build/index.html","4f205cad25f030142ca8ce45fec31793"],["/react/build/json.worker.js","4a4ca127f837beaf0dddae0c74c81b57"],["/react/build/static/css/101.06ee28b8.chunk.css","738dd16bc186439eabccab7ebe2d1cd0"],["/react/build/static/css/102.15253a67.chunk.css","cc03c8bd582e5fb3cf3cb57075905fe6"],["/react/build/static/css/104.fd3fa2e9.chunk.css","97c0f9c3d8d16c05584bec1ce645cda0"],["/react/build/static/css/106.2646da34.chunk.css","fd35f6d45b8f2b74b2b2fc747da42787"],["/react/build/static/css/110.f1eaede3.chunk.css","38f999c01692bf8d8bcfc4cd1a133500"],["/react/build/static/css/112.b6f629c2.chunk.css","9bee0d5efe580a886a06f342d0953f1d"],["/react/build/static/css/113.41b8aabd.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/114.ebddf6de.chunk.css","b16daaeaf671a9a92b48715bf9f0f31e"],["/react/build/static/css/115.42ca5ffc.chunk.css","a3e000826e9e975f288a5067c577c213"],["/react/build/static/css/116.41b8aabd.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/117.41b8aabd.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/118.35b1feac.chunk.css","0b43c1534cd52029318ecc64bc16cd82"],["/react/build/static/css/119.cdd78914.chunk.css","c8fa03c8951406a0c6dedbc44275a66c"],["/react/build/static/css/12.3634cedd.chunk.css","5d39578b91b84e925bd702d0d56a0ea2"],["/react/build/static/css/120.142cff28.chunk.css","e2d1282e7d68f47cc9a754940877e251"],["/react/build/static/css/121.11a04942.chunk.css","1373d0214c811e25b7c1763ef9cf3287"],["/react/build/static/css/125.15253a67.chunk.css","cc03c8bd582e5fb3cf3cb57075905fe6"],["/react/build/static/css/126.8a2a0d50.chunk.css","3c152d150d71ca1d782cbce74e83545a"],["/react/build/static/css/128.adba6539.chunk.css","2a7331558acec08d91f6776ad403e5a1"],["/react/build/static/css/129.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/131.fd5c069f.chunk.css","dc736ebb1d70ad8f92c50296bc5c21c2"],["/react/build/static/css/132.cbc5dafa.chunk.css","0d00c4a2d6cc383c8b2a40a24378d281"],["/react/build/static/css/133.2f409942.chunk.css","6f1d0eaeed7a282caf0ce33adaef0898"],["/react/build/static/css/139.c0242127.chunk.css","3de2e94ba931d38eb377530c8ea1be89"],["/react/build/static/css/140.4b81475a.chunk.css","5776cdefa5c145f9b7aa289397d7c7db"],["/react/build/static/css/141.188a7db8.chunk.css","d365448e4d5cdef07410d3ba784e1364"],["/react/build/static/css/142.9df86194.chunk.css","dae2a89b8b4b9577d529ccdc67b2bd1b"],["/react/build/static/css/143.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/144.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/145.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/146.1e103c31.chunk.css","d7a9f0ce5623c1a832cbed8af8deb779"],["/react/build/static/css/147.f2060fe7.chunk.css","3dc3569f98f0d43324c3871cc5623426"],["/react/build/static/css/148.f9d1b577.chunk.css","f9b149d2ed650f6b4ec24b09d29f3e4e"],["/react/build/static/css/15.d23100bf.chunk.css","849793163ceba269d8afe246ff025d7a"],["/react/build/static/css/151.09d927dd.chunk.css","21b5e0861d5ba04df287b13341a1a5ce"],["/react/build/static/css/152.41b8aabd.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/18.d401c96a.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/22.1305617c.chunk.css","cc9ab2ccf1939eb7a572d5e9606a3853"],["/react/build/static/css/24.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/25.b974e0fe.chunk.css","21c7446e5eeade6c5a700477671eaa50"],["/react/build/static/css/31.70ca0113.chunk.css","e795affdc09e234ba4c3a608a69ed0f0"],["/react/build/static/css/32.fa411774.chunk.css","5fb37497699e9bd6f332204b762a1c0c"],["/react/build/static/css/33.78a1ba5d.chunk.css","83a2ab1e5c6be84e927fda72b983d73e"],["/react/build/static/css/34.f4dd829a.chunk.css","0c8f9b503914ffe0e126e9c3dff7fdbc"],["/react/build/static/css/35.000e3263.chunk.css","f397bad8e2d5ff56f4a9c63ad86f35db"],["/react/build/static/css/36.c61ae118.chunk.css","37dce675a2709225c047150bb93768e2"],["/react/build/static/css/37.0d2673a6.chunk.css","ac3b5a3f969d0d00b5ee642cb490baa9"],["/react/build/static/css/38.311ed58c.chunk.css","2c20df76988bf57e60f5a35b9d2e8fba"],["/react/build/static/css/40.29d26e89.chunk.css","98808e47e13ff616e21708935125c5df"],["/react/build/static/css/41.62655d16.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/42.b8c949a1.chunk.css","5f17a6000e83f647de8cdee820aa5ad5"],["/react/build/static/css/43.cb684e78.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/44.cb684e78.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/45.4b44c749.chunk.css","dc522e623399a1887411619e0e4f0528"],["/react/build/static/css/46.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/47.45cf481e.chunk.css","30749cd2765ceee9494251f6f1025310"],["/react/build/static/css/48.9cbc7f4a.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/49.9cbc7f4a.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/50.47d05c9e.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/51.aa1aedbe.chunk.css","ad64c0eede853274fe7737a65d66d18b"],["/react/build/static/css/52.23e457c6.chunk.css","b7ea9928083ea35acce72ee289c77941"],["/react/build/static/css/53.f8ce57b7.chunk.css","d6d7a13f06f71440a953ce2798887469"],["/react/build/static/css/54.58e88442.chunk.css","4c607decefc5223e114b0c81b2a06a37"],["/react/build/static/css/55.a1819630.chunk.css","2e140b39ca87fb19bdb264111265be77"],["/react/build/static/css/57.6436558f.chunk.css","08727dcc716788b9207e6965eabd0c8a"],["/react/build/static/css/58.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/59.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/60.f7de5d73.chunk.css","b3c5d398aa3ddb54ae0927ac614da74d"],["/react/build/static/css/61.182305e7.chunk.css","9e036c1fb0946e9cc6ede6785a2613f4"],["/react/build/static/css/63.fd083902.chunk.css","6f65bae71f11e62309c73d5b818f30f3"],["/react/build/static/css/65.080d6958.chunk.css","d9b5ca9cb767438bb42a4167d8c9141b"],["/react/build/static/css/68.7b8a6eb0.chunk.css","e5a078261e06b47655db2e7181c7d7d6"],["/react/build/static/css/70.2b4fa75d.chunk.css","894748843894405d62402217fff3324b"],["/react/build/static/css/71.29d26e89.chunk.css","d4bec6cd2f5b06e46e520f4ec70f5a11"],["/react/build/static/css/73.85453161.chunk.css","8ab34f94699b7e4d8b3545378ea5f22c"],["/react/build/static/css/75.29d26e89.chunk.css","d4bec6cd2f5b06e46e520f4ec70f5a11"],["/react/build/static/css/77.fd3fa2e9.chunk.css","97c0f9c3d8d16c05584bec1ce645cda0"],["/react/build/static/css/78.f0e9a939.chunk.css","12e166c63392539f90d3ff0400b3e3c4"],["/react/build/static/css/79.7b0cd772.chunk.css","c314131a5bc42a5be7abb1600b6de565"],["/react/build/static/css/80.0f05a488.chunk.css","d3d626d448389555875e8da3507e47b2"],["/react/build/static/css/81.f8baad43.chunk.css","8ea65ce507a9b9eafa61a7a489c17e3a"],["/react/build/static/css/82.d23100bf.chunk.css","849793163ceba269d8afe246ff025d7a"],["/react/build/static/css/83.adba6539.chunk.css","2a7331558acec08d91f6776ad403e5a1"],["/react/build/static/css/85.d126f3fc.chunk.css","07181be567bdb103c3b473c97021176e"],["/react/build/static/css/86.ce6407ca.chunk.css","b9919f86ce152b27a22e1a0e6a627b6e"],["/react/build/static/css/88.632d7855.chunk.css","226acc64dfa2fad8420e5eadf2d7b32d"],["/react/build/static/css/89.41b8aabd.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/9.4580c46d.chunk.css","8d16c1c5c5e4eaa8353e5b73aa97767e"],["/react/build/static/css/91.ea97577b.chunk.css","1211ec54a5dbd129cf63cacdc130ca13"],["/react/build/static/css/93.b2109eb4.chunk.css","4215fbff912ba2ff16a8d0129bd4b326"],["/react/build/static/css/94.ddd123f8.chunk.css","9b429eb52fcf2a98b927e4a50ee5e302"],["/react/build/static/css/95.b17aa43e.chunk.css","66bd4cf32b0679a4ba125c04c85c279d"],["/react/build/static/css/96.3edde0c7.chunk.css","fdec91b854d997a2d04e3cab3c33a778"],["/react/build/static/css/97.78d24cb4.chunk.css","73dc1567cf66ea89cfa27454bc5a1571"],["/react/build/static/css/99.4054f41b.chunk.css","df7b038f8f1a0e16793b24bc950b9b22"],["/react/build/static/css/main.636313c6.chunk.css","8374f6d1034a29d7a54e025a338c7c26"],["/react/build/static/js/0.34fa008a.chunk.js","2177a411a3d8e29334d45e8248f4d199"],["/react/build/static/js/1.4eee6ded.chunk.js","cfaafd9509240f01179c8aaa4282a3e1"],["/react/build/static/js/10.e6e54e5b.chunk.js","c9e7b93eb36cc6f0cae3b1a5b86300b6"],["/react/build/static/js/100.e2119b38.chunk.js","430df66ce65bc2a6b6d1fcb7f8369f2d"],["/react/build/static/js/101.688edfee.chunk.js","c456be818541c6b46f8343ac85526f97"],["/react/build/static/js/102.5e7845ec.chunk.js","916398a75374811d63fc7a197356c5c5"],["/react/build/static/js/103.c53a68c4.chunk.js","970a294f19ea17ddf63e7cc3e1dc1497"],["/react/build/static/js/104.421a4b03.chunk.js","6546d6b31aa036ecd07ae44fdcf7c4b8"],["/react/build/static/js/105.187fdd53.chunk.js","37a0affe7b41fd908f69762e08086409"],["/react/build/static/js/106.c134d4e8.chunk.js","9413570032308d58615bac3131fa490a"],["/react/build/static/js/107.06df551d.chunk.js","1b6ca743f21acbbc8cefba78713378a2"],["/react/build/static/js/108.e23857df.chunk.js","7c6d0583a64527018ddcc807c189484a"],["/react/build/static/js/109.63d9710b.chunk.js","d3dc2e8dda22a28592215b3d2c95c445"],["/react/build/static/js/11.70e9713a.chunk.js","fb4fb2533d0a8f93e2b8392c7208ae37"],["/react/build/static/js/110.2b7c6734.chunk.js","d07090ec0021b57d283cfd92997c2e3b"],["/react/build/static/js/111.b98e9fe2.chunk.js","16d7146c0518df7e92427ef1ebbe5f14"],["/react/build/static/js/112.b9b92442.chunk.js","01754e25c894b7b4d37702ba9ce18adb"],["/react/build/static/js/113.10a5bbb2.chunk.js","aaca95bf7a277fe27524872c843bf863"],["/react/build/static/js/114.88ae9a6c.chunk.js","f1c6a9800f6089c187772ed437783e66"],["/react/build/static/js/115.63741259.chunk.js","2cf79a2de232d81ac9fbe6fcf39dab1f"],["/react/build/static/js/116.888f1a15.chunk.js","02bf39f7ef224c2f09a513ea56a7fbdc"],["/react/build/static/js/117.7b18afd9.chunk.js","60403334df4134581e6f1a7ae3e06564"],["/react/build/static/js/118.d130b5d1.chunk.js","4b74c6021546463fd5d27fb6021b3e68"],["/react/build/static/js/119.d2281458.chunk.js","a80fb3bb181735a05f0cb1304483f769"],["/react/build/static/js/12.9d1fe6c6.chunk.js","b4a2cb7192606bb6a801d545b4970808"],["/react/build/static/js/120.90826596.chunk.js","12a9dd163747376ebed9cb5f9d79643d"],["/react/build/static/js/121.beefc4b7.chunk.js","ebb1c6d18b0d33368518f8ece35f360d"],["/react/build/static/js/122.5a0aca6f.chunk.js","72215a59354ce92f36a22143fc16a4a2"],["/react/build/static/js/123.7bd5e54b.chunk.js","b3067c32148534aa03c0e16eafbe708e"],["/react/build/static/js/124.b84ea499.chunk.js","8550b29e7eb3a1b8c66bb991a815864e"],["/react/build/static/js/125.5d4319dd.chunk.js","5926e796376efcc6fa69650ae5041cd0"],["/react/build/static/js/126.b5068576.chunk.js","3b37757c1c64d1b6b20316f51a000473"],["/react/build/static/js/127.ead03da4.chunk.js","ea46eab6e4b92d6270c8e5a7b6af2b64"],["/react/build/static/js/128.979535c0.chunk.js","d46ffb358a005a10e4729c04bf49f166"],["/react/build/static/js/129.97ec778f.chunk.js","a58b9994da2be0d59774b123ac68e5bb"],["/react/build/static/js/13.95ae4e64.chunk.js","723e9b746bca59bd470973d58ea6a731"],["/react/build/static/js/13.95ae4e64.chunk.js.LICENSE.txt","414cf2c4fdfe67f2673475f6d9c8fc93"],["/react/build/static/js/130.73fce0c3.chunk.js","0ecdb7730ac5ce3c4bcdf792b0f9286a"],["/react/build/static/js/131.7a40379e.chunk.js","4331302c54e67b7e6c527c6c20c1f344"],["/react/build/static/js/132.d283d987.chunk.js","0c55cb40184b04297638900bb660158e"],["/react/build/static/js/133.9f14ae5c.chunk.js","96902fcdd871350760c0e33e8203179c"],["/react/build/static/js/133.9f14ae5c.chunk.js.LICENSE.txt","5092c6e04c7faa4b291d51dc5bb6081a"],["/react/build/static/js/134.e5a7dcb4.chunk.js","df0f4df6b552c94febf4b44b0da41bbc"],["/react/build/static/js/135.9ffb885d.chunk.js","ceb6726508d03ce567aa34dca8d961a0"],["/react/build/static/js/136.e5815887.chunk.js","447b958846263e5591028578d89492f7"],["/react/build/static/js/137.78edca3c.chunk.js","873a90aba2405a9212a599a49eb9d710"],["/react/build/static/js/138.a44ca9bc.chunk.js","c0d43b63d7812ab1d30cd2e6078b06bf"],["/react/build/static/js/139.9319da64.chunk.js","28f706fc36371904f1512027744444ae"],["/react/build/static/js/14.d9a6740f.chunk.js","f5e89d08e32dced76530d1a111062ff6"],["/react/build/static/js/140.589b7b1c.chunk.js","df7a6aeb75e9510a4a0d66a4f6101586"],["/react/build/static/js/141.89d6d151.chunk.js","d3296bdc34d572af170ddfc57dced323"],["/react/build/static/js/142.ab62c67d.chunk.js","f9c928c4b27d81f5d5b8d68109888e59"],["/react/build/static/js/143.8280830d.chunk.js","f1985a5bfa49d144812be66ff7f11ce1"],["/react/build/static/js/144.776d734d.chunk.js","7d97329edbb3692b8f40a9bdcbd58058"],["/react/build/static/js/145.e5987f55.chunk.js","ac12bd31e153de4ca4b53aa1c9c49ecf"],["/react/build/static/js/146.34142901.chunk.js","b311c7ff23d3b672e7f45667a4e1f4e5"],["/react/build/static/js/147.9ac43341.chunk.js","5a7554749475584b1f00bf6a6a6a2b86"],["/react/build/static/js/148.bae93b29.chunk.js","e30060197979516b3d0f586c0029f209"],["/react/build/static/js/149.8469cc84.chunk.js","8d49b9d2aa85bb95c8b70de11b52743b"],["/react/build/static/js/15.3b083b20.chunk.js","524e5846da838c064aa0d85c7a5930a7"],["/react/build/static/js/150.565a3966.chunk.js","44e977a9a9c6fa9ab24712ce5e63d6bd"],["/react/build/static/js/151.e9cb417c.chunk.js","0298eb9d862ecc0e1c9b9c190265fcc2"],["/react/build/static/js/152.d5f13d22.chunk.js","333f61565a3e891abc9daa0661db982d"],["/react/build/static/js/153.977410cf.chunk.js","53554be2c99d47bc69c3bb5cd24091c6"],["/react/build/static/js/154.f9ef284b.chunk.js","5dafefe42820701cd8d105a64910d56d"],["/react/build/static/js/155.589fe3d7.chunk.js","cb8dd6b37d2f5fc2fa6a23c381a55b50"],["/react/build/static/js/156.3edc3387.chunk.js","2788712ebffdcd3a07906ebf115c8f17"],["/react/build/static/js/157.0c0ecbd9.chunk.js","9637a86bd3794b6dbc336446593b9663"],["/react/build/static/js/158.40b36057.chunk.js","bc1602cf5016b515588de613b0adeafa"],["/react/build/static/js/159.01061eeb.chunk.js","430b1ab0300bb169b83ce28eb0976d9d"],["/react/build/static/js/16.82fc6757.chunk.js","b1539afbd879874fa5b43c38652fa7a7"],["/react/build/static/js/160.6f4a785b.chunk.js","c455b9a21ec64bca170d75a9e762ff05"],["/react/build/static/js/161.abb71f69.chunk.js","8e852dcd49dc63228600e7c2b9e284c2"],["/react/build/static/js/162.921fd738.chunk.js","b7a17df0c32852da155c720a02848df2"],["/react/build/static/js/163.291c6c71.chunk.js","65b2362c778171ab26b4b8c111fb2968"],["/react/build/static/js/164.e1446e0f.chunk.js","ab93f702c002e05ab2a41d73c9254201"],["/react/build/static/js/165.43fea246.chunk.js","9221178163435a2875e2e3c3e7223da1"],["/react/build/static/js/166.98f7a664.chunk.js","2f9dd2cf4a1b4cc464640bdcdf8d11f2"],["/react/build/static/js/167.df8917dc.chunk.js","c84f36b8db695af8a0a28c3e5fb6fe1c"],["/react/build/static/js/168.de9ea03d.chunk.js","4db80d82b1fdd56bd489b320cdbb32d9"],["/react/build/static/js/169.90e77040.chunk.js","3db7b05fa370da4877ae212c64cc7426"],["/react/build/static/js/17.256141af.chunk.js","2b5a84cf9110892bea8f15bd24f706e7"],["/react/build/static/js/170.a16e4e0a.chunk.js","957dd6930eab6a10130a7da837d8b8ba"],["/react/build/static/js/170.a16e4e0a.chunk.js.LICENSE.txt","03278fe9381615d8b390847939a9eb37"],["/react/build/static/js/171.7e67e57c.chunk.js","1e2f39cf4eb88c0cf755ab4f65531fe1"],["/react/build/static/js/172.5f72ab95.chunk.js","b426a9130c422de9950eecbafffe90a0"],["/react/build/static/js/173.17dcf518.chunk.js","b13cd4d60248fc25a0cb5c8ec412fb5a"],["/react/build/static/js/174.89d0583c.chunk.js","8c8e26fb9aba0dd9dd62d8b83bde4856"],["/react/build/static/js/175.832fa942.chunk.js","9f701c1675acb02d328566076e55ea66"],["/react/build/static/js/176.eb60e4a5.chunk.js","68dd3e6aeae52affe67f030cddd9478f"],["/react/build/static/js/177.9246ed0f.chunk.js","cecee8432f8eda7650e8145acb24d633"],["/react/build/static/js/178.25233bfa.chunk.js","7b0049981be22b7c7255eb2f9b4d43de"],["/react/build/static/js/179.23be0142.chunk.js","4259f0d9155a7ba38f506ff57483b78c"],["/react/build/static/js/18.704d8243.chunk.js","11e0293635579d8c842d6eeb37ab7de3"],["/react/build/static/js/180.5d11f1a7.chunk.js","5e8bf5d1fcc3b4f4b4d3347bbe510686"],["/react/build/static/js/181.79880cb3.chunk.js","94039acd93884470dee67bf091c77325"],["/react/build/static/js/182.67f55261.chunk.js","6fc244c2ec28431b2b56d1541782011d"],["/react/build/static/js/183.851d7210.chunk.js","43417d6a531f395c76844a959d2458c0"],["/react/build/static/js/184.02146860.chunk.js","da2941c08a1442fba74ff4af70ddd40f"],["/react/build/static/js/185.8383d838.chunk.js","913a831c66bafafcfd27cc7fdd9ef469"],["/react/build/static/js/186.21f98652.chunk.js","917e0b3681ed893a61f940f840db3bc6"],["/react/build/static/js/187.2fead581.chunk.js","616a533ce611b85c2e32107c3cb17e94"],["/react/build/static/js/188.0c077d79.chunk.js","749da021c61929fb08d4d77f9edb018a"],["/react/build/static/js/189.12afa5e0.chunk.js","4b1ed7231baa80a3313d71dc7158b398"],["/react/build/static/js/19.855faff3.chunk.js","f246ba3410b130bf2a2b6b15b5a02667"],["/react/build/static/js/190.427e4bce.chunk.js","7d51518a2077e1a039ea4985f50fd8f1"],["/react/build/static/js/191.3bc68443.chunk.js","006a28185d82e906fc02e57842ed1f74"],["/react/build/static/js/192.7a7877c7.chunk.js","8944a32e44b8d42da940d62b35a3065d"],["/react/build/static/js/193.1affba86.chunk.js","bfc2f2d37b46bc1c4cf1ca6b272193c6"],["/react/build/static/js/194.be084f15.chunk.js","fb5818f99ee61a751519d572468d6aea"],["/react/build/static/js/195.a264dc08.chunk.js","693c5d2d74ed3f0916e8b5e66a015dc0"],["/react/build/static/js/196.7e5bd1dd.chunk.js","8f40629f44efc598993fe8a587363867"],["/react/build/static/js/197.a3acc310.chunk.js","1b34f733511f7f25f667b85eafc5b841"],["/react/build/static/js/198.cb49da57.chunk.js","bb27291eb188fb65353326247ae8e2d8"],["/react/build/static/js/199.6ecc7253.chunk.js","f6c1b2a116914cf6d6346729bdf1d4d6"],["/react/build/static/js/2.a51e9f4f.chunk.js","32c06e6da004da3aac86ea604be9a5cf"],["/react/build/static/js/20.9e601607.chunk.js","1bac003279ad57efc66264c13f5562c1"],["/react/build/static/js/200.6cdc7ff5.chunk.js","0bcb69f07307ce8c538d12e5c1a11acd"],["/react/build/static/js/201.f0e1a41b.chunk.js","f04c9103ee5fc6c0be30d9982d5d0f52"],["/react/build/static/js/202.320bf42f.chunk.js","afa6ecea4b631865f6356b747ffd01e4"],["/react/build/static/js/203.a841667a.chunk.js","0d5a13292a73276a314e7bce5d3c8e55"],["/react/build/static/js/204.0024e97d.chunk.js","f16d974c5e28a48d80284fd42091c008"],["/react/build/static/js/205.ee668e94.chunk.js","24eb71ed4c5b8fe57b637a3bf93ea08e"],["/react/build/static/js/206.7ba676f3.chunk.js","4cf53e8033739b332478aaedcefa92df"],["/react/build/static/js/207.1ef730b6.chunk.js","9e3690f56d94e0729992ce89384fce76"],["/react/build/static/js/208.d42e3a12.chunk.js","a5063cba1f3d5cd9b24d186a5e69cc14"],["/react/build/static/js/209.16a32344.chunk.js","d84695227dfbc95a998201922d64e289"],["/react/build/static/js/21.e1ab047a.chunk.js","80f4e82aa8ffa2aa3940f3baaf08c838"],["/react/build/static/js/210.012fc614.chunk.js","e1f51c8459bb35d1e7a3068099db61cb"],["/react/build/static/js/211.34d672ae.chunk.js","cd580fbc80118a0a745b92b136dc67df"],["/react/build/static/js/212.3561639d.chunk.js","262cdc1f07f0c6972f4329c13326984c"],["/react/build/static/js/213.df7a6934.chunk.js","279fce52d18a7d041d922e87ce66ef07"],["/react/build/static/js/213.df7a6934.chunk.js.LICENSE.txt","cf224aa154060b2c3c86fa6ed5af6aa8"],["/react/build/static/js/214.c4f377d9.chunk.js","1a93d54d8606889c97ffd49e3ed8e8c1"],["/react/build/static/js/215.1433c2f6.chunk.js","48176bacbe36bf000a679464f48b67ee"],["/react/build/static/js/216.9bdeebfa.chunk.js","78d4dfed7e453b01b961a1a3f3998039"],["/react/build/static/js/217.7700a84a.chunk.js","1a45573b3ce99ba12f776739433af2fc"],["/react/build/static/js/218.3535b462.chunk.js","23982977e96437b7373284434f4149ff"],["/react/build/static/js/22.82282989.chunk.js","0de98a03d05ced64954aa5af7f1f5f7c"],["/react/build/static/js/23.a523ad44.chunk.js","0887cbc2dbf6f4a0b8cd727b39dffd94"],["/react/build/static/js/24.c0e99cb6.chunk.js","266dd7bc197bf92d076788c34da190a1"],["/react/build/static/js/25.bfa08901.chunk.js","bbd043b30906ebab185c995ff45767f5"],["/react/build/static/js/26.8761cded.chunk.js","ec09dd6135448a34df2904f1da8a82f7"],["/react/build/static/js/27.c9e387b5.chunk.js","c1c780300c60fdc3f3d72650b363d4ed"],["/react/build/static/js/28.06e2211b.chunk.js","ba2956a7ae3da0bd07208e30d24258a9"],["/react/build/static/js/29.3e8ac0f4.chunk.js","85c797fa6745739470dbac965fe97f69"],["/react/build/static/js/3.3fafc57b.chunk.js","78e322938d161a89adb10a92511b756a"],["/react/build/static/js/30.017ae9d3.chunk.js","45fc146f6aa90d4a5df22a9b64b1d198"],["/react/build/static/js/31.65118a95.chunk.js","95695484ff5df5f43b84f801220ee5f3"],["/react/build/static/js/32.83234ca5.chunk.js","86d15fecab055e46c72674eac4727931"],["/react/build/static/js/33.bc2c6722.chunk.js","617a9de0ff96d77f652c02293d0d8ee9"],["/react/build/static/js/34.bfb2328f.chunk.js","df8dba49721f11e3554dc3f6e017a1bb"],["/react/build/static/js/35.49118a5a.chunk.js","91311e5f5dd12e76dac247518639f0d4"],["/react/build/static/js/35.49118a5a.chunk.js.LICENSE.txt","b0d99b131d3d9eb581a2b728f570f362"],["/react/build/static/js/36.2752244b.chunk.js","18853438a46389dab416e1a9e9635039"],["/react/build/static/js/37.dd534647.chunk.js","cb02a7c35518f1640c4240c31d7276b4"],["/react/build/static/js/37.dd534647.chunk.js.LICENSE.txt","cb5c64be860077345ad988d24cd80627"],["/react/build/static/js/38.f7f1a6f8.chunk.js","aa0c9c23ab59dd9e0a6f4067c7024092"],["/react/build/static/js/39.f2d850cd.chunk.js","d94b06ee351398f333f85085b38b23c7"],["/react/build/static/js/4.335b1902.chunk.js","f345693a64158cde186544dc4066344b"],["/react/build/static/js/40.eedb27f5.chunk.js","4c4bb2e94059db30a109b7079129b6ce"],["/react/build/static/js/41.6f7c8ce2.chunk.js","6fbc8dbb3941b27d8f8a66f95f81f5ea"],["/react/build/static/js/42.b7832a34.chunk.js","b0cabcaa6da8b97c9a10fcf60f19d44c"],["/react/build/static/js/43.397dcb34.chunk.js","c01dd7ac64f30317431935b039060353"],["/react/build/static/js/44.b27db5c4.chunk.js","4488c71f078bd5ac502ba41119709c52"],["/react/build/static/js/45.b4018f93.chunk.js","1c5edf93793f1bf7964bb500f23cd874"],["/react/build/static/js/46.c0fdbf38.chunk.js","4896293dffa9c2e27ab3e456fc6ec8ea"],["/react/build/static/js/47.80d015b2.chunk.js","54ad367c2bfd5fa6e674a973b9aae3a2"],["/react/build/static/js/48.0dd3865e.chunk.js","db1b850d52e674fa63fcdf41648d600c"],["/react/build/static/js/49.e428e82d.chunk.js","0da604f668f41403908d7275d1b01eae"],["/react/build/static/js/5.e7c3a06c.chunk.js","1b886ad4169d04290fa05cc4ffa43ac4"],["/react/build/static/js/50.dd2c67d5.chunk.js","5f32df78c0728c4b380c431b393a9e0e"],["/react/build/static/js/51.58e1c27f.chunk.js","92991988eddc49ae3668c52edcb9f7ee"],["/react/build/static/js/52.3a309240.chunk.js","1dea20d6ade559a3bafc654af2da890e"],["/react/build/static/js/53.78f4b32d.chunk.js","a596ff2ec8a6e134069c3b7170608968"],["/react/build/static/js/54.2c3e8985.chunk.js","ae05bf9a6f39d87f903139c0e9d0dfa3"],["/react/build/static/js/55.73c1f462.chunk.js","8066e6cd796ebd731ace4860dfc47868"],["/react/build/static/js/56.ec9bc156.chunk.js","1311768b0522700c7a3ae0fec5374636"],["/react/build/static/js/57.65840853.chunk.js","0866cb827950ab4d3caf87bd8ec71ff1"],["/react/build/static/js/58.6aee3793.chunk.js","9aec418aea1108910b34069fa6b52eaa"],["/react/build/static/js/59.7fc04500.chunk.js","285335063df95e5d530b2f1b7f98c6d1"],["/react/build/static/js/6.6336358f.chunk.js","ed6bdfe1e0dacefbabcf9a8bba22c1e0"],["/react/build/static/js/6.6336358f.chunk.js.LICENSE.txt","7ec01595672f75e83fd81b41f132f4c1"],["/react/build/static/js/60.34c85001.chunk.js","85ceb5d0623bf330c9e5a2d22128777c"],["/react/build/static/js/61.c3927ab7.chunk.js","ffb897f926730aeb72b60eb01ff5c0c8"],["/react/build/static/js/62.56afca91.chunk.js","94f2fc6c03c05e0b0c108183998e05c9"],["/react/build/static/js/63.0e84dbf6.chunk.js","36db741e4525de2e4ac48bf3fd6df444"],["/react/build/static/js/64.9ff8c26d.chunk.js","ee789af312120ab44cd0854a3308d624"],["/react/build/static/js/65.7f8de10f.chunk.js","201963412d7602c1025d35ae7eb594af"],["/react/build/static/js/66.9663ad72.chunk.js","9edf27ce1985a84dcacdfc13d4b9503d"],["/react/build/static/js/67.578f84ef.chunk.js","a5379f7cf2ebdbfccd9d8bb1b16faf95"],["/react/build/static/js/68.b45257fc.chunk.js","94c60338dc7a3569c7104ce98c95f601"],["/react/build/static/js/69.7b8165b1.chunk.js","21abde96b0941e9e5561ee6512b9e7a4"],["/react/build/static/js/7.d6e6f968.chunk.js","0a035f46f6f4b658f429b0b298bc36e5"],["/react/build/static/js/70.c9b33f4e.chunk.js","ab900a767efbe1d73262c39cbcb4f313"],["/react/build/static/js/71.2d301be7.chunk.js","4c51a7a517027d2d3b8f925cecb500d8"],["/react/build/static/js/72.2e7f8a16.chunk.js","f9aef7d816d7d15e41c0a9b16f6f4121"],["/react/build/static/js/73.97c7a854.chunk.js","acf69baae246513a20d1cafc900dc968"],["/react/build/static/js/74.52410ee9.chunk.js","eefbc9647d9b2575c90f199225274f3a"],["/react/build/static/js/75.27d3f681.chunk.js","ba5518d2e15669c3b6cfad1d62446128"],["/react/build/static/js/76.305031f2.chunk.js","5f06edb1e815adf82291410ce00a8ee8"],["/react/build/static/js/77.188adee4.chunk.js","7b40125cf91b92d69d4e45a9f594e6f3"],["/react/build/static/js/78.15cbc2a4.chunk.js","36521b97d951717cb5a1277b642738ae"],["/react/build/static/js/79.adf0aee6.chunk.js","d9f8306cc6d4b3820bc08eaecc7440b1"],["/react/build/static/js/8.4717141c.chunk.js","8d9877a3f2b14149ba12f7a9626d5a10"],["/react/build/static/js/80.d34cac9d.chunk.js","d48ede469345d392f40274be932fb7a0"],["/react/build/static/js/81.d361cd6c.chunk.js","7ccb7964765611abe87389330ef02b77"],["/react/build/static/js/82.9ffc6c81.chunk.js","df6eaaae73b12fdb9526ad0bd86537d5"],["/react/build/static/js/83.e9f4eba2.chunk.js","097a6294a5914127dcfe0091058654c5"],["/react/build/static/js/84.eea12776.chunk.js","cc50021644bddd218dc799d82454578e"],["/react/build/static/js/85.90e015a2.chunk.js","1219642c16e7bce55a04c14fce93f217"],["/react/build/static/js/86.1e605b3f.chunk.js","bb0583e41ea2a90da057bd4d191bd1d3"],["/react/build/static/js/87.04bcc0e2.chunk.js","a78035c3bb9f374339097653ef393d95"],["/react/build/static/js/88.5c3ca964.chunk.js","2c9806b9578cb4aab89c9bd01ebb03c2"],["/react/build/static/js/89.13a9f841.chunk.js","ab6d147863123b62b209728aee32b2ff"],["/react/build/static/js/9.7609e756.chunk.js","6111cf1e796a04db27508d5b78836987"],["/react/build/static/js/9.7609e756.chunk.js.LICENSE.txt","b0d99b131d3d9eb581a2b728f570f362"],["/react/build/static/js/90.3a913fa1.chunk.js","c94d30a86d47761b283fde8a21257b4c"],["/react/build/static/js/91.437fc2d1.chunk.js","9b92104271888504b9e7be59e2e62495"],["/react/build/static/js/92.9d3d608b.chunk.js","560af619c1a503ac47b99911a24d5cf7"],["/react/build/static/js/93.78fff09c.chunk.js","6bee41cc9050d28166b92658a8a2bed1"],["/react/build/static/js/94.db965e3e.chunk.js","f70dca5c84004b43dea52475b998d2f8"],["/react/build/static/js/95.b83ae957.chunk.js","7b27e287480bc20d0712eeeab11708bc"],["/react/build/static/js/96.378bcc41.chunk.js","0be7b9bc166a553faa7a1c6938d265cc"],["/react/build/static/js/97.ee3fd9ff.chunk.js","69c82983df7c4167c4fc1e7b2982e68f"],["/react/build/static/js/98.0279f785.chunk.js","f717e6c0f90a923ffae571b5ff833700"],["/react/build/static/js/99.1d9ed8b6.chunk.js","072357809bac22011c7eb7a483e21429"],["/react/build/static/js/main.902eb96a.chunk.js.LICENSE.txt","cf1eb1a342652bcfa5f86f5d4aba7d28"],["/react/build/static/js/runtime~main.04837fff.js","491524020b05dff5c125e88986d0d8c4"],["/react/build/static/media/2-1bg.d22a63b9.png","ba2b4a272d5ca00d9400b4cd1fd573d6"],["/react/build/static/media/2-2-1.afd0f2f5.png","63de0e927282052b4b7a3a4a4e06c004"],["/react/build/static/media/2-2-2.26bc3301.png","09350b2fc63799fbbbed880ee86c54dc"],["/react/build/static/media/2-2-3.6d6ce99c.png","04c46e92f6c6dbc3f354c7d12f41efdf"],["/react/build/static/media/2-2-head.5e69dbb2.png","1ed02c446d34cd67de8d1685ffd16181"],["/react/build/static/media/2-3-1.bcb33d47.png","6309aee1c5b0f1906cf8224c70a2954d"],["/react/build/static/media/2-3-2.57ef08ae.png","13d71726e3c0f7ba20318b57eece054f"],["/react/build/static/media/2-3-3.52733627.png","284814681a0af3e1c41bf547a189de86"],["/react/build/static/media/2-3-4.339b2f1c.png","9ec275ef1b19daa2a2194674dfb106ad"],["/react/build/static/media/2-3bg.deef1b07.png","5b8e2e8dd995ea94a13247eb5ed7ca9e"],["/react/build/static/media/2-4-1.802eb322.png","d3950f1555e0210dd70a374600f83aae"],["/react/build/static/media/2-4bg.45478d20.png","f28c71d7b533b10dc5c1c33ddc7e028d"],["/react/build/static/media/2-5bg.9cca3de1.png","7d7c0003e780841147d31243f7c305ad"],["/react/build/static/media/2-6-1.302b729e.png","cd88cc40364a0dacde3fa5af91cb8407"],["/react/build/static/media/2-6-2.b262b91e.png","50b143930101e1b295683ba0099f9ab9"],["/react/build/static/media/3-1.9fdda521.png","f6add2be652f2989e8b5c8ebc319f44d"],["/react/build/static/media/3-2.47050941.png","b3ad137b32270db1b9fc4aa08c8e0451"],["/react/build/static/media/3-3.c767aae7.png","5d79fb69eee45493a7555b6414c739c0"],["/react/build/static/media/3-4.92820cbc.png","5d26624685fca97de2721a718a5209eb"],["/react/build/static/media/3-bg.4f22fe34.png","28b762cb9f96c8122b700f54e3c914b4"],["/react/build/static/media/34@2x.ed8e5910.png","174665edd0ab7f03fa9e60353417cbaa"],["/react/build/static/media/35@2x.33462edc.png","8cfe5ce0a0d51e3b6d9af2a5ccb2784a"],["/react/build/static/media/36@2x.8f54f5ba.png","0dd97091f3e6be410d8d5ef8df634ce8"],["/react/build/static/media/37@2x.97a40a2a.png","54b6a5ad4cdecb5d722bb1509e5e0216"],["/react/build/static/media/38@2x.f072fe68.png","e890bdfa45d996910aad3597b0a24c09"],["/react/build/static/media/39@2x.ee1af05a.png","cef1223f2f0ce7cc451c982e2f7dc6dd"],["/react/build/static/media/4-1.79fa159d.png","2bea356c9736a2f3787b03d69b72c733"],["/react/build/static/media/4-2.9c066e75.png","88eada7dcd52a5d211ee86aacd523616"],["/react/build/static/media/4-3.a1487a5b.png","da4afd909ef92b84e7a90043e96504d1"],["/react/build/static/media/4-4.5eb40734.png","d3f20f10c4de4cf438ac376516763db9"],["/react/build/static/media/4-bg.214b12ef.png","bb353b3cf7d527c4c052a5462e5f2209"],["/react/build/static/media/40@2x.f10a55e2.png","603a7113eda7af6d3d908b8b7bed4e1a"],["/react/build/static/media/42@2x.25d6b5fd.png","b17ffff59b4673910f125e208e448757"],["/react/build/static/media/44@2x.1374baf9.png","0f150a0e7cf098056300667f82d986f4"],["/react/build/static/media/46@2x.e272d43e.png","06d55da5cb08016c1d1561e111e41c29"],["/react/build/static/media/48@2x.3bde4de9.png","46fe84acf4e9b0c974d28785a76d416d"],["/react/build/static/media/49.b03e6efe.png","b084f468520ae3ea313839228035ed41"],["/react/build/static/media/50@2x.69b76634.png","59d8c56b75d5833bcaa4ca40c24e0282"],["/react/build/static/media/52@2x.41805cbb.png","9e64828acb8840429063f19df28f6262"],["/react/build/static/media/55@2x.83486b73.png","1f3a3cec5959e66b7e32acb3974c30b2"],["/react/build/static/media/57@2x.8dc6b0b8.png","e9e9efcca4a99b81aeaa2b3d5f3d8149"],["/react/build/static/media/59@2x.b0884ef0.png","076b0a99ff2dfa32cf88da927fd5bdde"],["/react/build/static/media/61@2x.99d3cc3e.png","0899a86bb440717a21f3692383ebf49d"],["/react/build/static/media/63@2x.49f389b9.png","74d7a6b844adc2bac1f21d47f3878a78"],["/react/build/static/media/65@2x.ef33e2f9.png","82a58ddca2302ee7b12b0c38b8df9a4b"],["/react/build/static/media/67@2x.4a4f4b6c.png","7f37bcee2e2be94ddef7ef4feaf6b8a9"],["/react/build/static/media/69@2x.379c6a82.png","b0fbdb5e689fc6ac05bc029ed150c556"],["/react/build/static/media/BJHKHT.f065403a.png","7e59d4b496c81f75d5c11c5166f030a4"],["/react/build/static/media/CEC.3b748059.png","064eea41dfa53645eb0134012b9e7f2e"],["/react/build/static/media/GFKJ.eb30c414.png","a60603b90e7b35d31753400f56be7770"],["/react/build/static/media/HSKY.2e76ba44.png","390849e1165e584772959baecaafb55b"],["/react/build/static/media/ISCAS.851fcfda.png","6a2b57a38c79d3c48a5aa238a113d165"],["/react/build/static/media/KYRJLM.2d659e5c.png","8d92960a37abe7deb48e25b7ea72a2e5"],["/react/build/static/media/KaTeX_AMS-Regular.b1489df1.woff","7f06b4e30317f784d61d26686aed0ab2"],["/react/build/static/media/KaTeX_AMS-Regular.d4531cf7.woff2","e78e28b4834954df047e4925e9dbf354"],["/react/build/static/media/KaTeX_AMS-Regular.f80d9eaf.ttf","aaf4eee9fba9907d61c3935e0b6a54ae"],["/react/build/static/media/KaTeX_Caligraphic-Bold.0c96bc8f.ttf","021dd4dc61ee5f5cdf315f43b48c094b"],["/react/build/static/media/KaTeX_Caligraphic-Bold.7ce7636b.woff","1e802ca9dedc4ed4e3c6f645e4316128"],["/react/build/static/media/KaTeX_Caligraphic-Bold.f046a374.woff2","4ec58befa687e9752c3c91cd9bcf1bcb"],["/react/build/static/media/KaTeX_Caligraphic-Regular.35f3c951.ttf","d49f2d55ce4f40f982d8ba63d746fbf9"],["/react/build/static/media/KaTeX_Caligraphic-Regular.4519ba4c.woff2","7edb53b6693d75b8a2232481eea1a52c"],["/react/build/static/media/KaTeX_Caligraphic-Regular.4a559f36.woff","d3b46c3a530116933081d9d74e3e9fe8"],["/react/build/static/media/KaTeX_Fraktur-Bold.069514d4.ttf","a31e7cba7b7221ebf1a2ae545fb306b2"],["/react/build/static/media/KaTeX_Fraktur-Bold.2ea3916b.woff","c4c8cab7d5be97b2bb283e531c077355"],["/react/build/static/media/KaTeX_Fraktur-Bold.5b8749ee.woff2","d5b59ec9764e10f4a82369ae29f3ac58"],["/react/build/static/media/KaTeX_Fraktur-Regular.0d90113d.woff","b7d9c46bff5d51da6209e355cc4a235d"],["/react/build/static/media/KaTeX_Fraktur-Regular.2c629b06.woff2","32a5339eb809f381a7357ba56f82aab3"],["/react/build/static/media/KaTeX_Fraktur-Regular.96556db6.ttf","a48dad4f58c82e38a10da0ceebb86370"],["/react/build/static/media/KaTeX_Main-Bold.07e762d0.ttf","9ceff51b3cb7ce6eb4e8efa8163a1472"],["/react/build/static/media/KaTeX_Main-Bold.20b90c20.woff2","8e1e01c4b1207c0a383d9a2b4f86e637"],["/react/build/static/media/KaTeX_Main-Bold.a9cdbc85.woff","22086eb5d97009c3e99bcc1d16ce6865"],["/react/build/static/media/KaTeX_Main-BoldItalic.7649d52f.woff","4c57dbc44bfff1fdf08a59cf556fdab3"],["/react/build/static/media/KaTeX_Main-BoldItalic.b345de5b.woff2","284a17fe5baf72ff8217d4c7e70c0f82"],["/react/build/static/media/KaTeX_Main-BoldItalic.bc8d96e9.ttf","e8b44b990516dab7937bf240fde8b46a"],["/react/build/static/media/KaTeX_Main-Italic.44a32ae6.ttf","29c86397e75cdcb3135af8295f1c2e28"],["/react/build/static/media/KaTeX_Main-Italic.ab751a9e.woff2","e533d5a2506cf053cd671b335ec04dde"],["/react/build/static/media/KaTeX_Main-Italic.e3954fe9.woff","99be0e10c38cd42466e6fe1665ef9536"],["/react/build/static/media/KaTeX_Main-Regular.13b3f852.woff2","5c734d78610fa35282f3379f866707f2"],["/react/build/static/media/KaTeX_Main-Regular.9e75cd60.woff","b741441f6d71014d0453ca3ebc884dd4"],["/react/build/static/media/KaTeX_Main-Regular.af7fc7b3.ttf","5c94aef490324b0925dbe5f643e8fd04"],["/react/build/static/media/KaTeX_Math-BoldItalic.4d6241be.ttf","9a2834a9ff8ab411153571e0e55ac693"],["/react/build/static/media/KaTeX_Math-BoldItalic.94810ff6.woff","b13731ef4e2bfc3d8d859271e39550fc"],["/react/build/static/media/KaTeX_Math-BoldItalic.d5d35e84.woff2","d747bd1e7a6a43864285edd73dcde253"],["/react/build/static/media/KaTeX_Math-Italic.11278d36.woff","f0303906c2a67ac63bf1e8ccd638a89e"],["/react/build/static/media/KaTeX_Math-Italic.cae7ea26.ttf","291e76b8871b84560701bd29f9d1dcc7"],["/react/build/static/media/KaTeX_Math-Italic.ffda8803.woff2","4ad08b826b8065e1eab85324d726538c"],["/react/build/static/media/KaTeX_SansSerif-Bold.2946bdb5.woff","3fb419559955e3ce75619f1a5e8c6c84"],["/react/build/static/media/KaTeX_SansSerif-Bold.5a20a475.woff2","6e0830bee40435e72165345e0682fbfc"],["/react/build/static/media/KaTeX_SansSerif-Bold.f0ad0abc.ttf","7dc027cba9f7b11ec92af4a311372a85"],["/react/build/static/media/KaTeX_SansSerif-Italic.c7feacd5.ttf","4059868e460d2d2e6be18e180d20c43d"],["/react/build/static/media/KaTeX_SansSerif-Italic.c834ba6d.woff","727a9b0d97d72d2fc0228fe4e07fb4d8"],["/react/build/static/media/KaTeX_SansSerif-Italic.e5fc2aef.woff2","fba01c9c6fb2866a0f95bcacb2c187a5"],["/react/build/static/media/KaTeX_SansSerif-Regular.5af9e1cf.ttf","5c58d168c0b66d2c32234a6718e74dfb"],["/react/build/static/media/KaTeX_SansSerif-Regular.5bf28900.woff2","d929cd671b19f0cfea55b6200fb47461"],["/react/build/static/media/KaTeX_SansSerif-Regular.a4fd0563.woff","2555754a67062cac3a0913b715ab982f"],["/react/build/static/media/KaTeX_Script-Regular.a1c15978.woff2","755e2491f13b5269f0afd5a56f7aa692"],["/react/build/static/media/KaTeX_Script-Regular.cd3b0634.woff","d524c9a5b62a17f98f4a97af37fea735"],["/react/build/static/media/KaTeX_Script-Regular.dd0db7ae.ttf","d12ea9efb375f9dc331f562e69892638"],["/react/build/static/media/KaTeX_Size1-Regular.1876361f.woff2","048c39cba4dfb0460682a45e84548e4b"],["/react/build/static/media/KaTeX_Size1-Regular.bbd9552c.ttf","7342d45b052c3a2abc21049959fbab7f"],["/react/build/static/media/KaTeX_Size1-Regular.c4ae0d25.woff","08b5f00e7140f7a10e62c8e2484dfa5a"],["/react/build/static/media/KaTeX_Size2-Regular.635e9324.woff","af24b0e4b7e52656ca77914695c99930"],["/react/build/static/media/KaTeX_Size2-Regular.d1e8ff17.ttf","eb130dcc661de766c999c60ba1525a88"],["/react/build/static/media/KaTeX_Size2-Regular.f516b73c.woff2","81d6b8d5ca77d63d5033d6991549a659"],["/react/build/static/media/KaTeX_Size3-Regular.1ef7adae.woff2","b311ca09df2c89a10fbb914b5a053805"],["/react/build/static/media/KaTeX_Size3-Regular.5d632274.ttf","7e02a40c41e52dc3b2b6b197bbdf05ea"],["/react/build/static/media/KaTeX_Size3-Regular.f32a9fde.woff","0d8926405d832a4b065e516bd385d812"],["/react/build/static/media/KaTeX_Size4-Regular.1d132596.ttf","ad7672524b64b730dfd176140a8945cb"],["/react/build/static/media/KaTeX_Size4-Regular.4f012d6a.woff2","6a3255dfc1ba41c46e7e807f8ab16c49"],["/react/build/static/media/KaTeX_Size4-Regular.f668d566.woff","68895bb880a61a7fc019dbfaa5121bb4"],["/react/build/static/media/KaTeX_Typewriter-Regular.4f31d033.woff2","6cc31ea5c223c88705a13727a71417fa"],["/react/build/static/media/KaTeX_Typewriter-Regular.b1d1af1a.ttf","257023560753aeb0b89b7e434d3da17f"],["/react/build/static/media/KaTeX_Typewriter-Regular.d3c8e68f.woff","3fe216d2a5f736c560cde71984554b64"],["/react/build/static/media/LC.f247fdb8.png","3e02cbcebad7837bf48da07b33a10bf5"],["/react/build/static/media/LSLM.99387946.png","41c202edbdb8a04e0cff8dca05fcc3de"],["/react/build/static/media/ML.08d278e2.png","9f958c18dbce14eafeed88a2fff5ec30"],["/react/build/static/media/NJDX.bb34b326.png","48e32a4eb948d5d618f7234210cd111d"],["/react/build/static/media/QH.b57a0131.png","45efbad10af2600ac575f17c7f1c6f25"],["/react/build/static/media/SHJT.426bf0c7.png","93cf5b16ef9208cb5bf1da99eebde8fb"],["/react/build/static/media/TX.b703476c.png","47cf36954b1fbb684e346d72dd890b14"],["/react/build/static/media/WXYJY.21e40191.png","e080df4c7b430301c9f741d432afa8ad"],["/react/build/static/media/XH.a0a88f17.png","a621d3a4f230af8107e727f60ed4c8f0"],["/react/build/static/media/XJY.b4c57bf1.png","e41c17ce768fcf94a03339a71c30d6f3"],["/react/build/static/media/YKD.4f7e2766.png","fa37d44fd25bcf449ec35efe68de61c5"],["/react/build/static/media/ZC.ad056aa5.png","c51f75c3c4c469809acda5c394c02adf"],["/react/build/static/media/achievements.f20b7e39.png","6a9f5aef5cc32d04d0a7a2f7acc38b11"],["/react/build/static/media/award-bg.f71628f1.png","c5dd065eaa235efd1c330b41d27f3370"],["/react/build/static/media/award-tit.4c48185a.png","5dec871e9bf24ad08589bf24da7d56c9"],["/react/build/static/media/ball.24214b6e.png","4600b466befba451dd38df26879cf299"],["/react/build/static/media/banner-interim.c50ff667.png","afee978cdb229c29525a3b28d3f411a2"],["/react/build/static/media/banner.40f1ff0c.png","196a855ae4a95a04943211925b34b83b"],["/react/build/static/media/banner.598a8076.png","1e538e70165e458ca1662f937d1264dd"],["/react/build/static/media/banner.84187e6e.png","ecf9fdcd304fa1e37310d49755e2f009"],["/react/build/static/media/banner.f7da2db1.png","23523c6657f4a1abe198837d0316a162"],["/react/build/static/media/banner_list.e02c5e16.jpg","bc53dcd5b0731ce2ac28c3ea02a01c97"],["/react/build/static/media/beijing.bfcd5b0e.png","518931a330ddf9dd7348d702c82c033c"],["/react/build/static/media/bg.401bf2cf.png","228280fae26c66cbfd718f680d16ce7f"],["/react/build/static/media/bg.9688532b.png","c1f86769f7e46442052e59452f01f9d9"],["/react/build/static/media/bg.a51f2ffd.png","10085e3dfd86fd912dd2df5855fdd7b0"],["/react/build/static/media/bg1.8fea5c5f.png","9908ca0a39c6288aeb6e6753c95f7ca6"],["/react/build/static/media/bgPng.ed010245.png","9c63690dae3e5e96cc49a08ff24cf230"],["/react/build/static/media/box.548a8c8b.png","d86432e2f3b9c9e605b14855d40c4c1f"],["/react/build/static/media/ccf_logo.a54fdc70.png","99678a58665cdb049736919636983ee3"],["/react/build/static/media/ccf_logo1.be10ead7.png","e2e6fef345151e132fdcce161cc87525"],["/react/build/static/media/check_tabs.dc02b037.png","3cd1dc6de8c94ea0b139f837fc00abdf"],["/react/build/static/media/codeafter.c3088c74.png","49ed3ae6c715b4f312f9a4af582ef2a8"],["/react/build/static/media/computer.4fe86b12.png","902233a9dd36c8a274324382e7f693b3"],["/react/build/static/media/contact_bg.ad2cf7be.png","be9e8358ae98671c686db10d24a2a81b"],["/react/build/static/media/detectionBG.6759a755.png","a8244f19972a05a30815da7c25d5abd1"],["/react/build/static/media/devops.39983f5b.png","6fab3d0ca745ca5b57c7923030ff0db7"],["/react/build/static/media/earth.050b1435.png","bdc488cfc8356fbe92e2c5e85f38d3a9"],["/react/build/static/media/fun1.c99ffa49.png","0821dbab48751cec64b2bb3c795796ef"],["/react/build/static/media/fun2.12f22bca.png","54a5d7faf4b9ddb2e82d7b5207089a6c"],["/react/build/static/media/fun3.75c280e6.png","5c69ce2307b9e074af5ce82d88ef8582"],["/react/build/static/media/fun4.f499794e.png","253ae97d5ce8d7de5fd987d0ac9cc51b"],["/react/build/static/media/fun5.96b44942.png","e8afdfd77e8ea57ed9945cde3bcf7b98"],["/react/build/static/media/funBg.410c4305.png","d6f1410497fc1f2ed6acdbc525857fc6"],["/react/build/static/media/funBg3.d1c7d094.png","3e38083b0ae65fdcb3e237ee1caa0e6f"],["/react/build/static/media/funBg4.68c5f49e.png","4387caf6448bde780eccac5072aba145"],["/react/build/static/media/gitee1.279a922b.svg","db64f813b50a88db601751938070597e"],["/react/build/static/media/github2.95ea181b.svg","6a52d8f2d1cc8baf1edaf8a1374a9261"],["/react/build/static/media/gitlink1.4bf0ed96.png","74f1d8c84848fb0b81ee404552ef7427"],["/react/build/static/media/gitlink2.0ec0ec22.png","8f753495bab62a461ee0cb63eb0ee889"],["/react/build/static/media/head.52aa3fc8.png","3a5b86995f4e5b03deb387dd013e58b4"],["/react/build/static/media/help.0bfb2587.png","ed85504ae3ea434b5dca53dc3a666dea"],["/react/build/static/media/help_bg.d2bb4c18.png","4558c0fafe9b751957f47d510d3faf92"],["/react/build/static/media/huake.63b6a34d.png","adbad39e4b3344c8dac6fa02807eb9e5"],["/react/build/static/media/huawei.73ec7c22.png","64d20728102a750c9ce500eb424f1de5"],["/react/build/static/media/ideLogo.0dca8d76.svg","42d6121571a45e6466dc8151da3ee900"],["/react/build/static/media/image20.4f1ce1bb.svg","2f78686cac653fd009cce87e1100b430"],["/react/build/static/media/image21.5cddfd61.svg","8a02d740954406b3a5ea8e748629e245"],["/react/build/static/media/image22.6ff2b063.svg","c66ea17e75e42e4cd6d63831a05b7cad"],["/react/build/static/media/img1.8560258f.png","1a039a78776399d0eee98e6ad7a07ce5"],["/react/build/static/media/img1.e0beda57.png","37963219e6ca5c4144ba62693c52c31f"],["/react/build/static/media/img1.fc155528.png","2aa17810adc47741e9f26238cbe7dba7"],["/react/build/static/media/img10.64149a3d.png","44f29fca2b72ab9726d3413cd75c763e"],["/react/build/static/media/img15.87a3556c.png","caf5daf4b8834cf0c40a93f32616e2f6"],["/react/build/static/media/img16.32badab9.png","e20c519658bc608e7b432ea7557cf618"],["/react/build/static/media/img17.c25d5edc.png","2b82779b3b1f36aa80495153b68f3d3a"],["/react/build/static/media/img18.4963efc1.png","df5029d95eef15daf5a7326e88399d6d"],["/react/build/static/media/img2.789fbbfe.png","f7ef7805e3cd8e94a431def695bd886d"],["/react/build/static/media/img2.ae303051.png","51bd149911e029ebf15ad8838b05c674"],["/react/build/static/media/img3.cee3ac5b.png","eafb9519b0ba2dd31e768fa8c751ea49"],["/react/build/static/media/img4.53c937cb.png","d79d2611f2cfbc03316fff2204ba0b90"],["/react/build/static/media/img5.ca3a2287.png","a55ff2eecc025d68b5f7a6f1f8a9ed85"],["/react/build/static/media/img6.8f81bf78.png","f64772292e6a90fc1da0dbdca501cd11"],["/react/build/static/media/img7.e4a68e6e.png","4c472d65efdbd4517ada8ee751228890"],["/react/build/static/media/img8.10500e00.png","aea38e49166c86c63b177f3145a0b064"],["/react/build/static/media/img9.d25372ba.png","aa259ddd863027c59146b33666f57c2c"],["/react/build/static/media/introduce.30b50cda.png","b3ccb50edadf6c46d3b4bbe1c0dc4eb5"],["/react/build/static/media/jijinhui.041fb524.png","827c1f894afb783870599d02cb5c4c3f"],["/react/build/static/media/joinUs.26ec28cd.png","9cd5fee199af626730ee25a37f118eb3"],["/react/build/static/media/lightspot-bg.87ad53a9.png","d0ab18b0b4f74eab6b2bfe3aa3a2b88c"],["/react/build/static/media/lightspot1.9214f0ae.png","ac3bd597543bcfb1a17a039b9f955c50"],["/react/build/static/media/lightspot2.b7053786.png","5d91f7f67c0f69fb68d40416c15dc9eb"],["/react/build/static/media/lightspot3.2f8af8da.png","b6a4577e53a6ca085671ffd9a8b62ce0"],["/react/build/static/media/lightspot4.93769763.png","f9f2f6654b165d72d9780e101e19e845"],["/react/build/static/media/loginBg.1cddcbff.png","86ec58b9f8f3f50140770546cf840257"],["/react/build/static/media/logo.62af9fee.png","bdb086d84a720bfb0c7a3bef50cc6422"],["/react/build/static/media/logo.f0d4927b.svg","9ee4b6d239cf05d9118b4a863ca4bfa3"],["/react/build/static/media/logo1.77949f0b.png","c55c1cd504df9c1e180610117d52b26c"],["/react/build/static/media/logo1.ec3c2e67.png","1b63bf1709328011dd17013bd4999fd3"],["/react/build/static/media/logo2.b04c07f2.png","82f448805e0380b391c77943d02b1d46"],["/react/build/static/media/mulan.690d2289.png","b9d8b87a75927dc097d45280c2ca0f4b"],["/react/build/static/media/newIcon.6ce5faf2.svg","47650e72fa1a06001e80def6f101b6af"],["/react/build/static/media/news-item.c2aef644.png","fd090d94d0fe94b8f12a9e68ac872c4d"],["/react/build/static/media/news-main.731a5143.png","40d592ac03be023dd1fd67a60a97df57"],["/react/build/static/media/news-main1.d438d3c7.png","f9c1445528c719c33464b6b9d5be8883"],["/react/build/static/media/nps1.b2849b06.png","a22d69867a2d0871e69fe18ceb7a8201"],["/react/build/static/media/nps2.d5d0b666.png","9b14ce3c332a63d95d62716030398ee3"],["/react/build/static/media/partner_bg.88388216.png","eac2e2ad3b1a25d605ed746409b530ef"],["/react/build/static/media/personalInfo1.13c2500e.png","813da468a7e7472edbdf3de5516049f3"],["/react/build/static/media/personalInfo2.f01447c8.png","5176f62523dc034a2977c61065b2e101"],["/react/build/static/media/projectBg.774764d7.png","916780acccd06591f270420affece47c"],["/react/build/static/media/projectDetailTaskBg.66b1fb2d.png","161c7fee542a59bdf4cb8a5a94086831"],["/react/build/static/media/qqChat.9e56cc22.png","fc97e294a452fcfae783dc73d1f24ff6"],["/react/build/static/media/registerBg.e14e89f4.png","5ca168f423644e195c7fe270cc728873"],["/react/build/static/media/resetPasswordBg.df9a6167.png","13b9a18d3a09d34b1320713d38fbd04f"],["/react/build/static/media/resultBanner.152068bc.png","f94f4227d3825fa32615af9bf12b45f9"],["/react/build/static/media/resultBanner2.c3095c5d.png","e7a33f637c22dbd6e7703ab7c56cf9aa"],["/react/build/static/media/resultBanner3.e11193de.png","2d21f1a2ad794f632b733ab4ba3ed4aa"],["/react/build/static/media/rightBg.55f14f0c.png","f38c59f756ada99c3eafd76ab2333925"],["/react/build/static/media/sexange.b3665539.png","fe580c3386c0dac7aa9480dbe1c26b9d"],["/react/build/static/media/slick.2630a3e3.svg","f97e3bbf73254b0112091d0192f17aec"],["/react/build/static/media/slick.29518378.woff","b7c9e1e479de3b53f1e4e30ebac2403a"],["/react/build/static/media/slick.a4e97f5a.eot","ced611daf7709cc778da928fec876475"],["/react/build/static/media/slick.c94f7671.ttf","d41f55a78e6f49a5512878df1737e58a"],["/react/build/static/media/sponsor11.5e9da48d.png","0cc78d9e2df9b816f79923244d807999"],["/react/build/static/media/sponsor21.8a655acc.png","86d7c2304bf3f60d923bdc6f25951f33"],["/react/build/static/media/sponsor22.96e2b643.png","c26b18460bdc7959b7baddc5bf8e9a8c"],["/react/build/static/media/sponsor31.0fd95bcb.png","099a8680be13f97915df39f8247fe2d9"],["/react/build/static/media/sponsor33.27be3b2d.png","11f04aa6ba51b6ba1ae2e09cdabaff8e"],["/react/build/static/media/studentProject.cd6d6c4f.png","b09a0e1f08910aac316f2aeed243fb76"],["/react/build/static/media/subtitle.5019e086.png","b2d9c74c02d4de483f79085596d0064b"],["/react/build/static/media/tab.12ed44f1.png","581200ee4543ddb99f2eeb0c6df7d4f6"],["/react/build/static/media/tabBackground.18febe91.png","d55a8d32e7d0303ebf04cf4ff42b470a"],["/react/build/static/media/taskbar.49a40f3a.png","80443aacad0a26162d838d4f71af128a"],["/react/build/static/media/teacher-img.e0e2a9bf.png","dae1295a05fabc82382c0116d8f3e5c8"],["/react/build/static/media/teacher1.ee492a9b.png","b995335297dd994485a4855aea43ff27"],["/react/build/static/media/teacher10.9298db29.png","b081bd10fc70f320e0f4448fd1c69da6"],["/react/build/static/media/teacher11.8a0d8669.png","3a3db3db638f5426e7bda4bef24a2484"],["/react/build/static/media/teacher12.47e02224.png","0635d72f566d9365bda9d8d88d80defd"],["/react/build/static/media/teacher13.f7886e36.png","f903bba276231fd009dfa6fc32c8b1b6"],["/react/build/static/media/teacher14.83b48396.png","5b3290eacd871568046c9b5591591d7b"],["/react/build/static/media/teacher15.5d777604.png","2e7eb1c34f389f025d84e13c54ca8297"],["/react/build/static/media/teacher2.b2b9919d.png","7279b7ba87a86ca7d46dfa6d0c9df088"],["/react/build/static/media/teacher3.20cb800b.png","e8277cbe9f532bccc0266be07afb402b"],["/react/build/static/media/teacher4.c15a0bda.png","9a0016c1a46ce39fa8e415bcd9ae72b4"],["/react/build/static/media/teacher5.9397d078.png","51a49c0ea258d928438153cfbd399be4"],["/react/build/static/media/teacher6.06b6f465.png","f1b92d0ac115f75b438f05a31fd0b551"],["/react/build/static/media/teacher7.4102dcc1.png","6e4e9fff991f8cc1f88479706ab55a37"],["/react/build/static/media/teacher8.5d3f117e.png","be6bfe0c206b2089065b0313c07e7eb0"],["/react/build/static/media/teacher9.69b0adae.png","e0666a81294a17768829744aa117ea24"],["/react/build/static/media/time-bg.f61a7e5f.png","ebb56fbe31fc6fc51fb81da23fdfcdf8"],["/react/build/static/media/top-1.54a95b91.png","3d2bbe827191450fb82fc04b7ba925c9"],["/react/build/static/media/top-2.2a21b300.png","7cddde07beac784e8edd065bf3c5f4e2"],["/react/build/static/media/top-3.48ab81a2.png","702e62391cc8148d3f6f405720527121"],["/react/build/static/media/top-bg.7b89cf7e.png","1cf27750ff50673346a49beeab0c3bb9"],["/react/build/static/media/typebg.b2b0ea32.png","c02c413fdc8fbcb9bd4a042ff9f0ea5a"],["/react/build/static/media/xigongye.d51231d3.png","751514079a6e7d1cfd19af4527749e53"],["/react/build/static/media/xiuos.67682257.png","6fd484b0615e89cb2a2fcde1e6e261a1"],["/react/build/static/media/xjy.6e62f4d6.png","6542ba49c3e8515e8cada3f15f7ab094"],["/react/build/static/media/浙江大学.3c545e69.png","b305afeded0784578319d459a6d71cc7"],["/react/build/ts.worker.js.LICENSE.txt","ce15c9d372cc5baeacdeb733817bdde4"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(c,a){c=new URL(c);return"/"===c.pathname.slice(-1)&&(c.pathname+=a),c.toString()},cleanResponse=function(a){return a.redirected?("body"in a?Promise.resolve(a.body):a.blob()).then(function(c){return new Response(c,{headers:a.headers,status:a.status,statusText:a.statusText})}):Promise.resolve(a)},createCacheKey=function(c,a,e,d){c=new URL(c);return d&&c.pathname.match(d)||(c.search+=(c.search?"&":"")+encodeURIComponent(a)+"="+encodeURIComponent(e)),c.toString()},isPathWhitelisted=function(c,a){if(0===c.length)return!0;var e=new URL(a).pathname;return c.some(function(c){return e.match(c)})},stripIgnoredUrlParameters=function(c,e){c=new URL(c);return c.hash="",c.search=c.search.slice(1).split("&").map(function(c){return c.split("=")}).filter(function(a){return e.every(function(c){return!c.test(a[0])})}).map(function(c){return c.join("=")}).join("&"),c.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(c){var a=c[0],c=c[1],a=new URL(a,self.location),c=createCacheKey(a,hashParamName,c,/\.\w{8}\./);return[a.toString(),c]}));function setOfCachedUrls(c){return c.keys().then(function(c){return c.map(function(c){return c.url})}).then(function(c){return new Set(c)})}self.addEventListener("install",function(c){c.waitUntil(caches.open(cacheName).then(function(d){return setOfCachedUrls(d).then(function(e){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(a){if(!e.has(a)){var c=new Request(a,{credentials:"same-origin"});return fetch(c).then(function(c){if(!c.ok)throw new Error("Request for "+a+" returned a response with status "+c.status);return cleanResponse(c).then(function(c){return d.put(a,c)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(c){var e=new Set(urlsToCacheKeys.values());c.waitUntil(caches.open(cacheName).then(function(a){return a.keys().then(function(c){return Promise.all(c.map(function(c){if(!e.has(c.url))return a.delete(c)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(a){var e,c,d;"GET"===a.request.method&&(e=stripIgnoredUrlParameters(a.request.url,ignoreUrlParametersMatching),d="index.html",(c=urlsToCacheKeys.has(e))||(e=addDirectoryIndex(e,d),c=urlsToCacheKeys.has(e)),d="/react/build/index.html",!c&&"navigate"===a.request.mode&&isPathWhitelisted(["^(?!\\/__).*"],a.request.url)&&(e=new URL(d,self.location).toString(),c=urlsToCacheKeys.has(e)),c&&a.respondWith(caches.open(cacheName).then(function(c){return c.match(urlsToCacheKeys.get(e)).then(function(c){if(c)return c;throw Error("The cached response that was expected is missing.")})}).catch(function(c){return console.warn('Couldn\'t serve response for "%s" from cache: %O',a.request.url,c),fetch(a.request)})))}); \ No newline at end of file diff --git a/static/js/104.cf8ec763.chunk.js b/static/js/104.421a4b03.chunk.js similarity index 99% rename from static/js/104.cf8ec763.chunk.js rename to static/js/104.421a4b03.chunk.js index bbaf9e833..3fdaa393e 100644 --- a/static/js/104.cf8ec763.chunk.js +++ b/static/js/104.421a4b03.chunk.js @@ -1 +1 @@ -(this.webpackJsonp=this.webpackJsonp||[]).push([[104],{"3Diz":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(n("jsC+")),a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,u=void 0;try{for(var c,o=e[Symbol.iterator]();!(r=(c=o.next()).done)&&(n.push(c.value),!t||n.length!==t);r=!0);}catch(e){a=!0,u=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw u}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("qVdP");var u=n("cDcd"),c=s(u);n("MN5C");var o=s(n("cJAJ")),l=n("faye"),i=n("sYIF");function s(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.projectsId,n=e.branch,s=e.owner,f=e.changeBranch,d=e.branchList,p=e.tagflag,m=void 0===p||p,h=(0,u.useState)(n),v=a(h,2),g=v[0],y=v[1],b=(0,u.useState)(!1),E=a(b,2),x=E[0],w=E[1],j=(0,u.useRef)(null),k=(0,u.useRef)(null);(0,u.useEffect)((function(){document.addEventListener("click",_,!1)}),[]);var _=function(e){var t=e.target,n=(0,l.findDOMNode)(j.current),r=(0,l.findDOMNode)(k.current);if(n&&r){var a=n.contains(t),u=r.contains(t);a||u||w(!1)}};(0,u.useEffect)((function(){y(n)}),[n]);var N=c.default.createElement("div",{ref:j},c.default.createElement(o.default,{visible:x,changeBranch:function(e){w(!1);var t=(0,i.turnbar)(e);f(t)},tagflag:m,projectsId:t,owner:s,branchList:d}));return c.default.createElement(r.default,{placement:"bottomLeft",visible:x,overlay:N,overlayClassName:"branch-tagBox-list",trigger:["click"]},c.default.createElement("div",{className:"branch-tagBox",ref:k,onClick:function(){return w(!x)}},c.default.createElement("span",{className:"color-grey-9 mr3 ml8"},c.default.createElement("i",{className:"iconfont icon-fenzhi2 font-18"})),c.default.createElement("span",{className:"ant-dropdown-link task-hide",style:{fontWeight:"500",minWidth:"45px",maxWidth:"270px"}},g),c.default.createElement("i",{className:"showtag iconfont icon-sanjiaoxing-down font-15 color-grey-9 mr5 ml5 mt1"})))}},MN5C:function(e,t,n){},RIeY:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a,u=y(n("NUBc")),c=y(n("2/Rp")),o=y(n("14Xm")),l=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,u=void 0;try{for(var c,o=e[Symbol.iterator]();!(r=(c=o.next()).done)&&(n.push(c.value),!t||n.length!==t);r=!0);}catch(e){a=!0,u=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw u}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},i=(r=["{\n padding:20px 30px;\n min-height:500px;\n}"],a=["{\n padding:20px 30px;\n min-height:500px;\n}"],Object.freeze(Object.defineProperties(r,{raw:{value:Object.freeze(a)}})));n("DjyN"),n("+L6B");var s=n("cDcd"),f=y(s),d=y(n("3Diz")),p=y(n("ess8")),m=y(n("vOnD")),h=n("spEH"),v=y(n("vDqi")),g=n("tnhM");function y(e){return e&&e.__esModule?e:{default:e}}var b=m.default.div(i);t.default=function(e){var t,n,r=(t=o.default.mark((function e(t,n){var r;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,g.getBranch)(t,n);case 2:r=e.sent,j(r);case 4:case"end":return e.stop()}}),e,this)})),n=function(){var e=t.apply(this,arguments);return new Promise((function(t,n){return function r(a,u){try{var c=e[a](u),o=c.value}catch(e){return void n(e)}if(!c.done)return Promise.resolve(o).then((function(e){r("next",e)}),(function(e){r("throw",e)}));t(o)}("next")}))},function(e,t){return n.apply(this,arguments)}),a=(0,s.useState)("master"),i=l(a,2),m=i[0],y=i[1],E=(0,s.useState)(void 0),x=l(E,2),w=x[0],j=x[1],k=(0,s.useState)("master"),_=l(k,2),N=_[0],S=_[1],B=(0,s.useState)(void 0),O=l(B,2),M=O[0],D=O[1],C=(0,s.useState)(0),I=l(C,2),P=I[0],A=I[1],z=(0,s.useState)(1),T=l(z,2),L=T[0],J=T[1];(0,s.useEffect)((function(){e.defaultBranch&&(y(e.defaultBranch),S(e.defaultBranch))}),[e.defaultBranch]);var U=e.match.params,W=U.projectsId,H=U.owner,R=e.projectDetail;function q(t){e.history.push("/"+H+"/"+W+"/settings/branches/"+t)}return(0,s.useEffect)((function(){H&&(r(W,H),function(e,t){var n="/"+e+"/"+t+"/protected_branches.json";v.default.get(n,{params:{page:L,limit:15}}).then((function(e){e&&(A(e.data.total_count),D(e.data.protected_branches))})).catch((function(e){}))}(H,W))}),[H]),f.default.createElement(h.WhiteBack,null,f.default.createElement(p.default,null,f.default.createElement("span",{className:"font-18"},"分支设置")),f.default.createElement(b,null,f.default.createElement("div",{className:"pb20",style:{borderBottom:"1px dashed #eee"}},f.default.createElement("p",{className:"color-grey-3 mb10 font-18"},"默认分支"),f.default.createElement("p",{className:"mb10"},"默认分支被视作为代码库中的基本分支,是所有克隆、代码提交、合并请求的目标分支"),f.default.createElement(h.AlignCenter,null,f.default.createElement(d.default,{branch:m,repo_id:R&&R.repo_id,projectsId:W,changeBranch:y,owner:H,history:e.history,branchList:w,tagflag:!1}),f.default.createElement("a",{className:"color-blue ml20",onClick:function(){return t="/"+H+"/"+W+".json",void v.default.put(t,{default_branch:m}).then((function(t){if(t){e.showNotification("分支设置成功!");var n=e.getDetail;n&&n()}})).catch((function(e){console.log(e)}));var t}},"设为默认分支"))),f.default.createElement("div",{className:"mt10"},f.default.createElement("p",{className:"color-grey-3 mb10 font-18"},"分支保护"),f.default.createElement(h.AlignCenter,null,f.default.createElement(d.default,{branch:N,repo_id:R&&R.repo_id,projectsId:W,changeBranch:S,owner:H,history:e.history,branchList:w,tagflag:!1}),f.default.createElement("a",{className:M&&M.length>0?"color-blue ml20":"color-grey ml20",onClick:function(){return q(N)}},"设置分支保护")),M&&M.length>0&&f.default.createElement("div",{className:"protectBranchList"},M.map((function(e,t){return f.default.createElement(h.FlexAJ,null,f.default.createElement("span",null,e.branch_name),f.default.createElement(c.default,{onClick:function(){return q(e.branch_name)}},"编辑"))}))),P>15&&f.default.createElement("div",{className:"mt15 mb20",style:{textAlign:"center"}},f.default.createElement(u.default,{simple:!0,current:L,pageSize:15,total:P,onChange:function(e){J(e)}})))))}},cJAJ:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=f(n("W9HT")),a=f(n("BvKs")),u=f(n("5rEg")),c=f(n("14Xm")),o=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,u=void 0;try{for(var c,o=e[Symbol.iterator]();!(r=(c=o.next()).done)&&(n.push(c.value),!t||n.length!==t);r=!0);}catch(e){a=!0,u=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw u}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("T2oS"),n("lUTK"),n("5NDa");var l=n("cDcd"),i=f(l),s=n("tnhM");function f(e){return e&&e.__esModule?e:{default:e}}function d(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function r(a,u){try{var c=t[a](u),o=c.value}catch(e){return void n(e)}if(!c.done)return Promise.resolve(o).then((function(e){r("next",e)}),(function(e){r("throw",e)}));e(o)}("next")}))}}t.default=function(e){var t,n,f=(t=d(c.default.mark((function e(t,n){var r;return c.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,s.getBranch)(t,n);case 2:r=e.sent,P(r),L(r),M(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)}),p=(n=d(c.default.mark((function e(t,n){var r;return c.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,s.getTag)(t,n);case 2:r=e.sent,P(r),L(r),M(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)}),m=e.changeBranch,h=e.tagflag,v=e.projectsId,g=e.owner,y=e.visible,b=(0,l.useState)(void 0),E=o(b,2),x=E[0],w=E[1],j=(0,l.useState)(0),k=o(j,2),_=k[0],N=k[1],S=(0,l.useState)(!0),B=o(S,2),O=B[0],M=B[1],D=(0,l.useState)(void 0),C=o(D,2),I=C[0],P=C[1],A=(0,l.useState)(void 0),z=o(A,2),T=z[0],L=z[1],J=(0,l.useState)("branch"),U=o(J,2),W=U[0],H=U[1];return(0,l.useEffect)((function(){y&&(H("branch"),f(v,g),M(!0))}),[y]),i.default.createElement("div",{className:"overlayBranch"},i.default.createElement("div",{className:"padding15",style:{paddingBottom:"0px"}},i.default.createElement(u.default,{prefix:i.default.createElement("i",{className:"iconfont icon-sousuo_icon1 font-14"}),placeholder:"请输入分支"+(h?"或标签":"")+"名称搜索",autocomplete:"off",className:"OptionsInput",value:x,onChange:function(e){w(e.target.value);var t=e.target.value?I&&I.length>0&&I.filter((function(t){return t.name.indexOf(e.target.value)>-1})):I;L(t)}})),i.default.createElement(a.default,{mode:"horizontal",className:"navUl",selectedKeys:[W],onClick:function(e){H(e.key),M(!0),"branch"===e.key?(f(v,g),N(0)):(p(v,g),N(1))}},i.default.createElement(a.default.Item,{key:"branch"},"分支"),h&&i.default.createElement(a.default.Item,{key:"tag"},"标签")),i.default.createElement(r.default,{spinning:O},i.default.createElement("ul",{className:"OptionsUl",id:"ul-btn"},T&&T.length>0&&T.map((function(e,t){return i.default.createElement("li",{key:t,onClick:function(){return t=e.name,void m(t);var t}},i.default.createElement("a",{className:"task-hide ulALink"},e.name))})),T&&0===T.length&&i.default.createElement("p",{className:"listTips"},"暂无",x,0===_?"分支":"标签","~"))))}},ess8:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a,u=(r=["{\n background-color:#fff;\n padding:20px 30px;\n border-bottom:1px solid #eee;\n font-size:18px;\n color:#333;\n display:flex;\n justify-content: space-between;\n align-items:center;\n}"],a=["{\n background-color:#fff;\n padding:20px 30px;\n border-bottom:1px solid #eee;\n font-size:18px;\n color:#333;\n display:flex;\n justify-content: space-between;\n align-items:center;\n}"],Object.freeze(Object.defineProperties(r,{raw:{value:Object.freeze(a)}}))),c=o(n("cDcd"));function o(e){return e&&e.__esModule?e:{default:e}}var l=o(n("vOnD")).default.div(u);t.default=function(e){var t=e.children;return c.default.createElement(l,null,t)}},tnhM:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getUser=t.getSubEntries=t.getHooks=t.getTag=t.getBranch=void 0;var r=u(n("14Xm")),a=u(n("vDqi"));function u(e){return e&&e.__esModule?e:{default:e}}function c(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function r(a,u){try{var c=t[a](u),o=c.value}catch(e){return void n(e)}if(!c.done)return Promise.resolve(o).then((function(e){r("next",e)}),(function(e){r("throw",e)}));e(o)}("next")}))}}var o,l,i,s,f;t.getBranch=(o=c(r.default.mark((function e(t,n){var u;return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+n+"/"+t+"/branches.json");case 2:return u=e.sent,e.abrupt("return",u&&u.data);case 4:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return o.apply(this,arguments)}),t.getTag=(l=c(r.default.mark((function e(t,n){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+n+"/"+t+"/tags.json",{params:{only_name:!0}});case 2:return e.abrupt("return",e.sent.data.tags);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return l.apply(this,arguments)}),t.getHooks=(i=c(r.default.mark((function e(t,n){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/projects/"+t+"/hooks.json",{params:n});case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return i.apply(this,arguments)}),t.getSubEntries=(s=c(r.default.mark((function e(t,n,u){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+t+"/"+n+"/sub_entries.json",{params:u});case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t,n){return s.apply(this,arguments)}),t.getUser=(f=c(r.default.mark((function e(t){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/users/"+t+"/hovercard.json");case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e){return f.apply(this,arguments)})}}]); \ No newline at end of file +(this.webpackJsonp=this.webpackJsonp||[]).push([[104],{"3Diz":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(n("jsC+")),a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,u=void 0;try{for(var c,o=e[Symbol.iterator]();!(r=(c=o.next()).done)&&(n.push(c.value),!t||n.length!==t);r=!0);}catch(e){a=!0,u=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw u}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("qVdP");var u=n("cDcd"),c=s(u);n("MN5C");var o=s(n("cJAJ")),l=n("faye"),i=n("sYIF");function s(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.projectsId,n=e.branch,s=e.owner,f=e.changeBranch,d=e.branchList,p=e.tagflag,m=void 0===p||p,h=(0,u.useState)(n),v=a(h,2),g=v[0],y=v[1],b=(0,u.useState)(!1),E=a(b,2),x=E[0],w=E[1],j=(0,u.useRef)(null),k=(0,u.useRef)(null);(0,u.useEffect)((function(){document.addEventListener("click",_,!1)}),[]);var _=function(e){var t=e.target,n=(0,l.findDOMNode)(j.current),r=(0,l.findDOMNode)(k.current);if(n&&r){var a=n.contains(t),u=r.contains(t);a||u||w(!1)}};(0,u.useEffect)((function(){y(n)}),[n]);var N=c.default.createElement("div",{ref:j},c.default.createElement(o.default,{visible:x,changeBranch:function(e){w(!1);var t=(0,i.turnbar)(e);f(t)},tagflag:m,projectsId:t,owner:s,branchList:d}));return c.default.createElement(r.default,{placement:"bottomLeft",visible:x,overlay:N,overlayClassName:"branch-tagBox-list",trigger:["click"]},c.default.createElement("div",{className:"branch-tagBox",ref:k,onClick:function(){return w(!x)}},c.default.createElement("span",{className:"color-grey-9 mr3 ml8"},c.default.createElement("i",{className:"iconfont icon-fenzhi2 font-18"})),c.default.createElement("span",{className:"ant-dropdown-link task-hide",style:{fontWeight:"500",minWidth:"45px",maxWidth:"180px"}},g),c.default.createElement("i",{className:"showtag iconfont icon-sanjiaoxing-down font-15 color-grey-9 mr5 ml5 mt1"})))}},MN5C:function(e,t,n){},RIeY:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a,u=y(n("NUBc")),c=y(n("2/Rp")),o=y(n("14Xm")),l=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,u=void 0;try{for(var c,o=e[Symbol.iterator]();!(r=(c=o.next()).done)&&(n.push(c.value),!t||n.length!==t);r=!0);}catch(e){a=!0,u=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw u}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},i=(r=["{\n padding:20px 30px;\n min-height:500px;\n}"],a=["{\n padding:20px 30px;\n min-height:500px;\n}"],Object.freeze(Object.defineProperties(r,{raw:{value:Object.freeze(a)}})));n("DjyN"),n("+L6B");var s=n("cDcd"),f=y(s),d=y(n("3Diz")),p=y(n("ess8")),m=y(n("vOnD")),h=n("spEH"),v=y(n("vDqi")),g=n("tnhM");function y(e){return e&&e.__esModule?e:{default:e}}var b=m.default.div(i);t.default=function(e){var t,n,r=(t=o.default.mark((function e(t,n){var r;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,g.getBranch)(t,n);case 2:r=e.sent,j(r);case 4:case"end":return e.stop()}}),e,this)})),n=function(){var e=t.apply(this,arguments);return new Promise((function(t,n){return function r(a,u){try{var c=e[a](u),o=c.value}catch(e){return void n(e)}if(!c.done)return Promise.resolve(o).then((function(e){r("next",e)}),(function(e){r("throw",e)}));t(o)}("next")}))},function(e,t){return n.apply(this,arguments)}),a=(0,s.useState)("master"),i=l(a,2),m=i[0],y=i[1],E=(0,s.useState)(void 0),x=l(E,2),w=x[0],j=x[1],k=(0,s.useState)("master"),_=l(k,2),N=_[0],S=_[1],B=(0,s.useState)(void 0),O=l(B,2),M=O[0],D=O[1],C=(0,s.useState)(0),I=l(C,2),P=I[0],A=I[1],z=(0,s.useState)(1),T=l(z,2),L=T[0],J=T[1];(0,s.useEffect)((function(){e.defaultBranch&&(y(e.defaultBranch),S(e.defaultBranch))}),[e.defaultBranch]);var U=e.match.params,W=U.projectsId,H=U.owner,R=e.projectDetail;function q(t){e.history.push("/"+H+"/"+W+"/settings/branches/"+t)}return(0,s.useEffect)((function(){H&&(r(W,H),function(e,t){var n="/"+e+"/"+t+"/protected_branches.json";v.default.get(n,{params:{page:L,limit:15}}).then((function(e){e&&(A(e.data.total_count),D(e.data.protected_branches))})).catch((function(e){}))}(H,W))}),[H]),f.default.createElement(h.WhiteBack,null,f.default.createElement(p.default,null,f.default.createElement("span",{className:"font-18"},"分支设置")),f.default.createElement(b,null,f.default.createElement("div",{className:"pb20",style:{borderBottom:"1px dashed #eee"}},f.default.createElement("p",{className:"color-grey-3 mb10 font-18"},"默认分支"),f.default.createElement("p",{className:"mb10"},"默认分支被视作为代码库中的基本分支,是所有克隆、代码提交、合并请求的目标分支"),f.default.createElement(h.AlignCenter,null,f.default.createElement(d.default,{branch:m,repo_id:R&&R.repo_id,projectsId:W,changeBranch:y,owner:H,history:e.history,branchList:w,tagflag:!1}),f.default.createElement("a",{className:"color-blue ml20",onClick:function(){return t="/"+H+"/"+W+".json",void v.default.put(t,{default_branch:m}).then((function(t){if(t){e.showNotification("分支设置成功!");var n=e.getDetail;n&&n()}})).catch((function(e){console.log(e)}));var t}},"设为默认分支"))),f.default.createElement("div",{className:"mt10"},f.default.createElement("p",{className:"color-grey-3 mb10 font-18"},"分支保护"),f.default.createElement(h.AlignCenter,null,f.default.createElement(d.default,{branch:N,repo_id:R&&R.repo_id,projectsId:W,changeBranch:S,owner:H,history:e.history,branchList:w,tagflag:!1}),f.default.createElement("a",{className:M&&M.length>0?"color-blue ml20":"color-grey ml20",onClick:function(){return q(N)}},"设置分支保护")),M&&M.length>0&&f.default.createElement("div",{className:"protectBranchList"},M.map((function(e,t){return f.default.createElement(h.FlexAJ,null,f.default.createElement("span",null,e.branch_name),f.default.createElement(c.default,{onClick:function(){return q(e.branch_name)}},"编辑"))}))),P>15&&f.default.createElement("div",{className:"mt15 mb20",style:{textAlign:"center"}},f.default.createElement(u.default,{simple:!0,current:L,pageSize:15,total:P,onChange:function(e){J(e)}})))))}},cJAJ:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=f(n("W9HT")),a=f(n("BvKs")),u=f(n("5rEg")),c=f(n("14Xm")),o=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,u=void 0;try{for(var c,o=e[Symbol.iterator]();!(r=(c=o.next()).done)&&(n.push(c.value),!t||n.length!==t);r=!0);}catch(e){a=!0,u=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw u}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("T2oS"),n("lUTK"),n("5NDa");var l=n("cDcd"),i=f(l),s=n("tnhM");function f(e){return e&&e.__esModule?e:{default:e}}function d(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function r(a,u){try{var c=t[a](u),o=c.value}catch(e){return void n(e)}if(!c.done)return Promise.resolve(o).then((function(e){r("next",e)}),(function(e){r("throw",e)}));e(o)}("next")}))}}t.default=function(e){var t,n,f=(t=d(c.default.mark((function e(t,n){var r;return c.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,s.getBranch)(t,n);case 2:r=e.sent,P(r),L(r),M(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)}),p=(n=d(c.default.mark((function e(t,n){var r;return c.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,s.getTag)(t,n);case 2:r=e.sent,P(r),L(r),M(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)}),m=e.changeBranch,h=e.tagflag,v=e.projectsId,g=e.owner,y=e.visible,b=(0,l.useState)(void 0),E=o(b,2),x=E[0],w=E[1],j=(0,l.useState)(0),k=o(j,2),_=k[0],N=k[1],S=(0,l.useState)(!0),B=o(S,2),O=B[0],M=B[1],D=(0,l.useState)(void 0),C=o(D,2),I=C[0],P=C[1],A=(0,l.useState)(void 0),z=o(A,2),T=z[0],L=z[1],J=(0,l.useState)("branch"),U=o(J,2),W=U[0],H=U[1];return(0,l.useEffect)((function(){y&&(H("branch"),f(v,g),M(!0))}),[y]),i.default.createElement("div",{className:"overlayBranch"},i.default.createElement("div",{className:"padding15",style:{paddingBottom:"0px"}},i.default.createElement(u.default,{prefix:i.default.createElement("i",{className:"iconfont icon-sousuo_icon1 font-14"}),placeholder:"请输入分支"+(h?"或标签":"")+"名称搜索",autocomplete:"off",className:"OptionsInput",value:x,onChange:function(e){w(e.target.value);var t=e.target.value?I&&I.length>0&&I.filter((function(t){return t.name.indexOf(e.target.value)>-1})):I;L(t)}})),i.default.createElement(a.default,{mode:"horizontal",className:"navUl",selectedKeys:[W],onClick:function(e){H(e.key),M(!0),"branch"===e.key?(f(v,g),N(0)):(p(v,g),N(1))}},i.default.createElement(a.default.Item,{key:"branch"},"分支"),h&&i.default.createElement(a.default.Item,{key:"tag"},"标签")),i.default.createElement(r.default,{spinning:O},i.default.createElement("ul",{className:"OptionsUl",id:"ul-btn"},T&&T.length>0&&T.map((function(e,t){return i.default.createElement("li",{key:t,onClick:function(){return t=e.name,void m(t);var t}},i.default.createElement("a",{className:"task-hide ulALink"},e.name))})),T&&0===T.length&&i.default.createElement("p",{className:"listTips"},"暂无",x,0===_?"分支":"标签","~"))))}},ess8:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a,u=(r=["{\n background-color:#fff;\n padding:20px 30px;\n border-bottom:1px solid #eee;\n font-size:18px;\n color:#333;\n display:flex;\n justify-content: space-between;\n align-items:center;\n}"],a=["{\n background-color:#fff;\n padding:20px 30px;\n border-bottom:1px solid #eee;\n font-size:18px;\n color:#333;\n display:flex;\n justify-content: space-between;\n align-items:center;\n}"],Object.freeze(Object.defineProperties(r,{raw:{value:Object.freeze(a)}}))),c=o(n("cDcd"));function o(e){return e&&e.__esModule?e:{default:e}}var l=o(n("vOnD")).default.div(u);t.default=function(e){var t=e.children;return c.default.createElement(l,null,t)}},tnhM:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getUser=t.getSubEntries=t.getHooks=t.getTag=t.getBranch=void 0;var r=u(n("14Xm")),a=u(n("vDqi"));function u(e){return e&&e.__esModule?e:{default:e}}function c(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function r(a,u){try{var c=t[a](u),o=c.value}catch(e){return void n(e)}if(!c.done)return Promise.resolve(o).then((function(e){r("next",e)}),(function(e){r("throw",e)}));e(o)}("next")}))}}var o,l,i,s,f;t.getBranch=(o=c(r.default.mark((function e(t,n){var u;return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+n+"/"+t+"/branches.json");case 2:return u=e.sent,e.abrupt("return",u&&u.data);case 4:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return o.apply(this,arguments)}),t.getTag=(l=c(r.default.mark((function e(t,n){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+n+"/"+t+"/tags.json",{params:{only_name:!0}});case 2:return e.abrupt("return",e.sent.data.tags);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return l.apply(this,arguments)}),t.getHooks=(i=c(r.default.mark((function e(t,n){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/projects/"+t+"/hooks.json",{params:n});case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return i.apply(this,arguments)}),t.getSubEntries=(s=c(r.default.mark((function e(t,n,u){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+t+"/"+n+"/sub_entries.json",{params:u});case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t,n){return s.apply(this,arguments)}),t.getUser=(f=c(r.default.mark((function e(t){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/users/"+t+"/hovercard.json");case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e){return f.apply(this,arguments)})}}]); \ No newline at end of file diff --git a/static/js/115.05ddec42.chunk.js b/static/js/115.63741259.chunk.js similarity index 75% rename from static/js/115.05ddec42.chunk.js rename to static/js/115.63741259.chunk.js index 3d68ed7b2..0ae5551a6 100644 --- a/static/js/115.05ddec42.chunk.js +++ b/static/js/115.63741259.chunk.js @@ -1 +1 @@ -(this.webpackJsonp=this.webpackJsonp||[]).push([[115],{BtkW:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=h(a("W9HT")),r=h(a("2/Rp")),o=h(a("CtXQ")),l=h(a("9yH6")),i=h(a("Vl3Y")),s=h(a("5rEg")),c=function(){function e(e,t){for(var a=0;a-1)return void a(f.default.createElement("span",null,"分支名不能包含下列任何字符:^*\\/"))}}a()},a.state={submitType:"0",filename:"",isSpin:!1},a}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),c(t,[{key:"render",value:function(){var e=this,t=this.state,a=t.submitType,c=t.filename,u=t.isSpin,d=this.props.form.getFieldDecorator,h=this.props.match.params,v=h.branch,y=h.projectsId,g=h.owner,E=this.props,w=E.current_user,N=E.filepath,S=E.projectDetail,O=E.currentBranch,x=this.props.editor_type,j=O||v;return f.default.createElement("div",null,f.default.createElement("span",{className:"df",style:{alignItems:"center"}},f.default.createElement(m.Link,{to:"/"+(w&&w.login),className:"show-user-link"},f.default.createElement("img",{src:(0,p.getImageUrl)("/"+(w&&w.image_url)),alt:"",className:"screwImg"}),f.default.createElement("span",{className:"color-grey-3 ver-middle"},w&&w.username,":")),f.default.createElement("span",{className:"color-grey-8"},"提交变更")),f.default.createElement(n.default,{spinning:u},f.default.createElement("div",{className:"userScrew"},f.default.createElement("div",{className:"screwPanel"},f.default.createElement(i.default,null,f.default.createElement(i.default.Item,{style:{display:"upload"===x?"block":"none"}},d("path",{rules:[]})(f.default.createElement("div",{className:"setInputAddon"},f.default.createElement(s.default,{addonBefore:"/"+(S&&S.identifier)+"/",value:c||N,onChange:this.changeFileName,placeholder:"文件路径..."})))),f.default.createElement(i.default.Item,null,d("desc",{rules:[{required:!0,message:"请添加描述信息"}]})(f.default.createElement(b,{placeholder:"必填,描述主要修改类型和内容",authSize:{minRows:3,maxRows:5}}))),f.default.createElement(l.default.Group,{value:a,onChange:this.changeSubmittype},f.default.createElement(l.default,{value:"0",className:"mb10"},f.default.createElement("i",{className:"iconfont icon-banbenku font-16 mr5"}),"直接提交至",f.default.createElement("span",{className:"color-orange"},(0,p.returnbar)(j)),"分支"),f.default.createElement(l.default,{value:"1"},f.default.createElement(o.default,{type:"pull-request",className:"mr5"}),"为此提交创建一个",f.default.createElement("span",{className:"font-bd"},"新的分支"),"并发起合并请求")),"1"===a?f.default.createElement("div",{className:"mt15"},f.default.createElement(i.default.Item,{style:{paddingLeft:"24px"}},d("branchname",{rules:[{required:!0,message:"请输入分支名称"},{validator:this.checkBranchName}]})(f.default.createElement(s.default,{placeholder:"请输入分支名称",style:{width:"220px"}})))):""))),f.default.createElement("div",{className:"mt20"},f.default.createElement(r.default,{type:"primary",onClick:"update"===x?this.UpdateFile:this.subMitFrom,className:"mr30"},"提交变更"),f.default.createElement(r.default,{type:"primary grey",onClick:function(){e.props.history.push("/"+g+"/"+y)},className:"mr20"},"取消"))))}}]),t}(u.Component),y=i.default.create({name:"UserSubmitForm"})(v);t.default=y},XmZk:function(e,t,a){},bIax:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAmCAYAAACVr4jIAAAEiklEQVRoQ9WZbWxTZRTHf+feDlAJQhUIftBAUDEaDVG/gHEzEQ3GsVtMWTBGo0QxsLUJRvHDQtmMMRoyaAeJ+O4HCWzZ2rFkghpfQmZMNGqMgiwiJH6YStjmG2Treo+5ZZtDuvXerncrz8c+/3PO/9fbe3uec4VpWqsTOmeWElK4G+VOYCHCPGBAoEeFH4DP1KS1fbP8MlmbMtkEXuPX7tRFGYNtAo8As13E2wKtmNQla6TbhT6nZEpB1zbppozNSwJzCjCcRkn09/H8p/Uy5DV+SkDDMZ0xFORVhce9GrxIL3wsBuuSNXLGSy7/QWNqhILsVwh7MTaRVuC7QICVLZvlb7c5fQe14voy8JxbQ251IhxMniFEvdhuYnwFrYrrCoEjgOHGjFeNQE0yKnvcxPkKasX1W+A2N0YK1JweEJa+H5E/88VPCnR1QmfOslmlBhXANSgZVY5pGc1GhiUoh/MZmOy+CrH2iDTky1MwaGiXhm1hh8C1OYooQj+abQD8XqdSUVmcr0hBoFZcGxDqcHBKYGVMbumoEaeTGnd5NhrarY9phndKgG/Ughg8kayVt4sG6vSnM2xOiHB1iYG+mKyVuqKBWk26AZs3Sgky60XYnYpIbfFAE7oPZX2pgQrsSEbl2UmDxmJqHF3AgnSaDoQ7Sg0U2JqKyisFgVY26WLT5lGENSi3AoESBByxdEKU98Tm3bYt8nMunxc9da2dOheDBpSNCDNKGC6XtbTCm4PC1v93SxeAVjbpMtOmHbjhEgO80K7wkyihZFS+H9kYBV3TqEsNky+Aqy5pyP/IfjeF8tZa+fH8gxkI79HZg0N8KbBsiiCdCYH/97zQnellecd2OZsFtRL6AsqEf7hF+QIERXnaEDozStc4fXJRSo35yWb/eiSc0Plp5SRwRVEr5E5Wn4rKdmerslFvNgMc8bvxV/jHMLlOrLg+Bez1HVJ4KxWRDWPrhBJaruePcjN9rh9xQDuAB/0sJHCor5fKXNO7qiatFpt9fk0hhrk6JBTXboXrfQMVvi4zKZ9okGUl9BmUHb55gFPOFXUmaX7dnycHA6zo3Cy/5oOoSmhclEg+XUH7wlmxdmk/wpUFJZg46IxdxsqDm+S4q9wxNawgzcBDrvReRMofDuhRhJu8xLnQnjMMVrXVSpcL7aikIqaz5gb5ELjLS1xerXJMrITuR6nOK/YgUDjUHpXVHkJGpVVxDQm0FRI7boxwQKyduh4j+9Qr9uoFMggqSsN481fnpZNt0oWOvnBybqPiHiZsHhan/UsP4Rxt5hebdEy+11JR2ZgrvxXX24GvfKx9uizAkpEWsAalycdi0wcq1KYisjsLWhHTwLwgHyjc4xPstIAKfNLXy31OozJ6TAs3ajBt8jlwow+w0wF6vCzDipYt4jwrLhxA39+owcsCHEC5t8iwUwsqfHRuiOrDw5AXgTofhJvVHPqNJ9VmG7CoSMBTBdojBg2Bhbzesk4yY72PO6mv3KuXGwM8IEqVKstFstDOuxTP032g2KCDwz7+UqVHhG9UaLd76XQO2bkuzr9Ki5LaLq4ltwAAAABJRU5ErkJggg=="},jP00:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;t0?a.props.showNotification("文件已存在, 请删除后再上传"):r?o&&-1!==["jpg","jpeg","png","ico","bmp","gif","pdf","csv","xlsx","xls","tif","svg","psd","cdr","webp","vnd.openxmlformats-officedocument.spreadsheetml.sheet","vnd.ms-powerpoint","vnd.openxmlformats-officedocument.presentationml.presentation","vnd.ms-excel"].indexOf(o)?a.props.showNotification("仅支持文本格式,不支持图片,excel等不可以txt读取的文件"):a.setState({fileList:[e],fileName:e.name}):a.props.showNotification("文件大小必须小于"+n+"MB!"),!1},a.state={fileList:void 0,fileContent:void 0,fileName:void 0},a}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),l(t,[{key:"render",value:function(){var e=this.props,t=e.icon,a=e.size,r=this.state,l=r.fileList,i=r.fileName,c={name:"file",fileList:l,onChange:this.handleChange,onRemove:this.onAttachmentRemove,beforeUpload:this.beforeUpload};return s.default.createElement(u,o({},c,{className:this.props.className}),i?s.default.createElement("p",{className:"ant-upload-text"},i):s.default.createElement("div",null,t||s.default.createElement(n.default,{type:"inbox"}),s.default.createElement("p",{className:"ant-upload-text"},"拖动文件或",s.default.createElement("span",{className:"color-blue"},"点击此处上传")),s.default.createElement("p",{className:"mt10"},"暂仅支持文本格式,不支持图片,excel等不可以txt读取的文件"),s.default.createElement("p",{className:"mt10"},"文件名请使用英文且不得超过",a,"MB")))}}]),t}(i.Component);t.default=f}}]); \ No newline at end of file +(this.webpackJsonp=this.webpackJsonp||[]).push([[115],{BtkW:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=h(a("W9HT")),r=h(a("2/Rp")),o=h(a("CtXQ")),l=h(a("9yH6")),i=h(a("Vl3Y")),s=h(a("5rEg")),c=function(){function e(e,t){for(var a=0;a-1)return void a(f.default.createElement("span",null,"分支名不能包含下列任何字符:^*\\/"))}}a()},a.state={submitType:"0",filename:"",isSpin:!1},a}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),c(t,[{key:"render",value:function(){var e=this,t=this.state,a=t.submitType,c=t.filename,u=t.isSpin,d=this.props.form.getFieldDecorator,h=this.props.match.params,y=h.branch,v=h.projectsId,g=h.owner,E=this.props,w=E.current_user,N=E.filepath,S=E.projectDetail,O=E.currentBranch,j=this.props.editor_type,A=O||y;return f.default.createElement("div",null,f.default.createElement("span",{className:"df",style:{alignItems:"center"}},f.default.createElement(m.Link,{to:"/"+(w&&w.login),className:"show-user-link"},f.default.createElement("img",{src:(0,p.getImageUrl)("/"+(w&&w.image_url)),alt:"",className:"screwImg"}),f.default.createElement("span",{className:"color-grey-3 ver-middle"},w&&w.username,":")),f.default.createElement("span",{className:"color-grey-8"},"提交变更")),f.default.createElement(n.default,{spinning:u},f.default.createElement("div",{className:"userScrew"},f.default.createElement("div",{className:"screwPanel"},f.default.createElement(i.default,null,f.default.createElement(i.default.Item,{style:{display:"upload"===j?"block":"none"}},d("path",{rules:[]})(f.default.createElement("div",{className:"setInputAddon"},f.default.createElement(s.default,{addonBefore:"/"+(S&&S.identifier)+"/",value:c||N,onChange:this.changeFileName,placeholder:"文件路径..."})))),f.default.createElement(i.default.Item,null,d("desc",{rules:[{required:!0,message:"请添加描述信息"}]})(f.default.createElement(b,{placeholder:"必填,描述主要修改类型和内容",authSize:{minRows:3,maxRows:5}}))),f.default.createElement(l.default.Group,{value:a,onChange:this.changeSubmittype},f.default.createElement(l.default,{value:"0",className:"mb10"},f.default.createElement("i",{className:"iconfont icon-banbenku font-16 mr5"}),"直接提交至",f.default.createElement("span",{className:"color-orange"},(0,p.returnbar)(A)),"分支"),f.default.createElement(l.default,{value:"1"},f.default.createElement(o.default,{type:"pull-request",className:"mr5"}),"为此提交创建一个",f.default.createElement("span",{className:"font-bd"},"新的分支"),"并发起合并请求")),"1"===a?f.default.createElement("div",{className:"mt15"},f.default.createElement(i.default.Item,{style:{paddingLeft:"24px"}},d("branchname",{rules:[{required:!0,message:"请输入分支名称"},{validator:this.checkBranchName}]})(f.default.createElement(s.default,{placeholder:"请输入分支名称",style:{width:"220px"}})))):""))),f.default.createElement("div",{className:"mt20"},f.default.createElement(r.default,{type:"primary",onClick:"update"===j?this.UpdateFile:this.subMitFrom,className:"mr30"},"提交变更"),f.default.createElement(r.default,{type:"primary grey",onClick:function(){e.props.history.push("/"+g+"/"+v)},className:"mr20"},"取消"))))}}]),t}(u.Component),v=i.default.create({name:"UserSubmitForm"})(y);t.default=v},XmZk:function(e,t,a){},bIax:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAmCAYAAACVr4jIAAAEiklEQVRoQ9WZbWxTZRTHf+feDlAJQhUIftBAUDEaDVG/gHEzEQ3GsVtMWTBGo0QxsLUJRvHDQtmMMRoyaAeJ+O4HCWzZ2rFkghpfQmZMNGqMgiwiJH6YStjmG2Treo+5ZZtDuvXerncrz8c+/3PO/9fbe3uec4VpWqsTOmeWElK4G+VOYCHCPGBAoEeFH4DP1KS1fbP8MlmbMtkEXuPX7tRFGYNtAo8As13E2wKtmNQla6TbhT6nZEpB1zbppozNSwJzCjCcRkn09/H8p/Uy5DV+SkDDMZ0xFORVhce9GrxIL3wsBuuSNXLGSy7/QWNqhILsVwh7MTaRVuC7QICVLZvlb7c5fQe14voy8JxbQ251IhxMniFEvdhuYnwFrYrrCoEjgOHGjFeNQE0yKnvcxPkKasX1W+A2N0YK1JweEJa+H5E/88VPCnR1QmfOslmlBhXANSgZVY5pGc1GhiUoh/MZmOy+CrH2iDTky1MwaGiXhm1hh8C1OYooQj+abQD8XqdSUVmcr0hBoFZcGxDqcHBKYGVMbumoEaeTGnd5NhrarY9phndKgG/Ughg8kayVt4sG6vSnM2xOiHB1iYG+mKyVuqKBWk26AZs3Sgky60XYnYpIbfFAE7oPZX2pgQrsSEbl2UmDxmJqHF3AgnSaDoQ7Sg0U2JqKyisFgVY26WLT5lGENSi3AoESBByxdEKU98Tm3bYt8nMunxc9da2dOheDBpSNCDNKGC6XtbTCm4PC1v93SxeAVjbpMtOmHbjhEgO80K7wkyihZFS+H9kYBV3TqEsNky+Aqy5pyP/IfjeF8tZa+fH8gxkI79HZg0N8KbBsiiCdCYH/97zQnellecd2OZsFtRL6AsqEf7hF+QIERXnaEDozStc4fXJRSo35yWb/eiSc0Plp5SRwRVEr5E5Wn4rKdmerslFvNgMc8bvxV/jHMLlOrLg+Bez1HVJ4KxWRDWPrhBJaruePcjN9rh9xQDuAB/0sJHCor5fKXNO7qiatFpt9fk0hhrk6JBTXboXrfQMVvi4zKZ9okGUl9BmUHb55gFPOFXUmaX7dnycHA6zo3Cy/5oOoSmhclEg+XUH7wlmxdmk/wpUFJZg46IxdxsqDm+S4q9wxNawgzcBDrvReRMofDuhRhJu8xLnQnjMMVrXVSpcL7aikIqaz5gb5ELjLS1xerXJMrITuR6nOK/YgUDjUHpXVHkJGpVVxDQm0FRI7boxwQKyduh4j+9Qr9uoFMggqSsN481fnpZNt0oWOvnBybqPiHiZsHhan/UsP4Rxt5hebdEy+11JR2ZgrvxXX24GvfKx9uizAkpEWsAalycdi0wcq1KYisjsLWhHTwLwgHyjc4xPstIAKfNLXy31OozJ6TAs3ajBt8jlwow+w0wF6vCzDipYt4jwrLhxA39+owcsCHEC5t8iwUwsqfHRuiOrDw5AXgTofhJvVHPqNJ9VmG7CoSMBTBdojBg2Bhbzesk4yY72PO6mv3KuXGwM8IEqVKstFstDOuxTP032g2KCDwz7+UqVHhG9UaLd76XQO2bkuzr9Ki5LaLq4ltwAAAABJRU5ErkJggg=="},jP00:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;t0?(a.props.showNotification("文件已存在, 请删除后再上传"),!1):r?void a.setState({fileList:[e],fileName:e.name}):(a.props.showNotification("文件大小必须小于"+n+"MB!"),!1)},a.customRequest=function(e){(new FormData).append("files[]",e.file);var t=new FileReader;t.readAsDataURL(e.file);var n=a.props.load;t.onloadend=function(t){if(t.target.result){e.onSuccess();var a=t.target.result.substring(t.target.result.indexOf("base64")+7,t.target.result.length);n({fileName:e.file.name,fileContent:a})}}},a.state={fileList:void 0,fileContent:void 0,fileName:void 0},a}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),l(t,[{key:"render",value:function(){var e=this.props,t=e.icon,a=e.size,r=this.state,l=r.fileList,i=r.fileName,c={name:"file",fileList:l,customRequest:this.customRequest,onRemove:this.onAttachmentRemove,beforeUpload:this.beforeUpload};return s.default.createElement(u,o({},c,{className:this.props.className}),i?s.default.createElement("p",{className:"ant-upload-text"},i):s.default.createElement("div",null,t||s.default.createElement(n.default,{type:"inbox"}),s.default.createElement("p",{className:"ant-upload-text"},"拖动文件或",s.default.createElement("span",{className:"color-blue"},"点击此处上传")),s.default.createElement("p",{className:"mt10"},"文件名请使用英文且不得超过",a,"MB")))}}]),t}(i.Component);t.default=f}}]); \ No newline at end of file diff --git a/static/js/146.0549f390.chunk.js b/static/js/146.34142901.chunk.js similarity index 51% rename from static/js/146.0549f390.chunk.js rename to static/js/146.34142901.chunk.js index 83742d80e..0d9f84524 100644 --- a/static/js/146.0549f390.chunk.js +++ b/static/js/146.34142901.chunk.js @@ -1 +1 @@ -(this.webpackJsonp=this.webpackJsonp||[]).push([[146],{Phz4:function(e,t,a){},WT1Z:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=y(a("W9HT")),i=y(a("NUBc")),n=y(a("jsC+")),l=y(a("CtXQ")),r=y(a("kaz8")),d=y(a("+eQT")),u=y(a("BvKs")),o=y(a("5rEg")),c=Object.assign||function(e){for(var t=1;t0&&s.map((function(e){return e.id})),status_type:e})}})).catch((function(e){console.log(e)}))},a.saveCookies=function(e){var t=a.props.match.params,s=(t.projectsId,t.owner,a.state),i=s.select_params,n=s.issue_tag_ids,l=s.tracker_ids,r=s.author_ids,d={select_params:i,assigned_to_ids:s.assigned_to_ids,status_type:e,issue_tag_ids:n,tracker_ids:l,author_id:s.author_id,assigned_to_id:s.assigned_to_id,author_ids:r,fixed_version_ids:s.fixed_version_ids,status_ids:s.status_ids,done_ratios:s.done_ratios,paix:s.paix,update_author_ids:s.update_author_ids,update_fixed_version_idsx:s.update_fixed_version_idsx,update_status_ids:s.update_status_ids,begin:s.begin,end:s.end,search:s.search},u=new Date((new Date).getTime()+864e5);v.default.save("states",c({},d),{expires:u,path:"/"})},a.getMenu=function(e,t,s){a.setState({isSpin:!0});var i=e.key.split("-");"created_on"===i[0]?"desc"===e.item.props.value?a.setState({paix:"最新创建"}):a.setState({paix:"最早创建"}):"updated_on"===i[0]&&("desc"===e.item.props.value?a.setState({paix:"最新更新"}):a.setState({paix:"最早更新"}));var n=a.state.select_params;a.setState({select_params:c({},n,{order_name:i[0],order_type:e.item.props.value,page:1})},(function(){var e=a.state.status_type;a.getIssueList(e)}))},a.getOption=function(e,t,s,i){var n,l=a.props.current_user,r="all"===e.key?void 0:e.key,d=a.state.author_id,u=a.state.assigned_to_id,o=a.state.select_params;o[""+t]=r,o.page=1,l&&(d=o.author_id&&o.author_id===l.user_id?l.user_id:void 0,u=o.assigned_to_id&&o.assigned_to_id===l.user_id?l.user_id:void 0),a.setState((S(n={},t+"s",s),S(n,"select_params",o),S(n,"author_id",d),S(n,"assigned_to_id",u),n),(function(){if(!i){var e=a.state.status_type;a.getIssueList(e)}}))},a.renderMenu=function(e,t,s,i){return m.default.createElement(u.default,{className:"orderCondition"},m.default.createElement(u.default.Item,{key:"all",onClick:function(e){return a.getOption(e,s,t,i)}},t),e&&e.length>0&&e.map((function(e,t){return m.default.createElement(u.default.Item,{key:e.id,onClick:function(t){return a.getOption(t,s,e.name,i)},style:{textAlign:e.color?"left":"center",padding:"6px 15px"}},e.color&&m.default.createElement("span",{className:"tagColor",style:{backgroundColor:""+e.color}}),e.name)})))},a.ChangePage=function(e){window.scrollTo(0,0);var t=a.state,s=t.status_type,i=t.select_params;a.setState({isSpin:!0,checkedValue:[],all:!1,select_params:c({},i,{page:e})},(function(){a.getIssueList(s)}))},a.searchFunc=function(e){a.setState({search:e,isSpin:!0,checkedValue:[],all:void 0});var t=a.state,s=t.status_type,i=t.select_params;a.setState({select_params:c({},i,{search:e,page:1})},(function(){a.getIssueList(s)}))},a.openorder=function(e){var t={author_id:void 0,assigned_to_id:void 0,page:1,limit:15};a.setState({status_type:e,select_params:t,author_id:void 0,assigned_to_id:void 0,issue_tag_ids:"标记",tracker_ids:"类型",author_ids:"发布人",assigned_to_ids:"负责人",status_ids:"状态",done_ratios:"完成度",fixed_version_ids:"里程碑",checkedValue:[],all:void 0,paix:"排序"},(function(){a.getIssueList(e)}))},a.ChangeAssign=function(e){var t=a.props.current_user;if(a.setState({isSpin:!0}),e){if(!t)return void a.setState({isSpin:!1});1===e?(a.setState({assigned_to_ids:t.username,assigned_to_id:t.user_id,author_id:void 0,author_ids:"发布人"}),a.state.select_params.author_id=void 0,a.state.select_params.assigned_to_id=t.user_id):(a.setState({author_ids:t.username,author_id:t.user_id,assigned_to_id:void 0,assigned_to_ids:"负责人"}),a.state.select_params.assigned_to_id=void 0,a.state.select_params.author_id=t.user_id)}else a.setState({author_ids:"发布人",author_id:void 0,assigned_to_ids:"负责人",assigned_to_id:void 0}),a.state.select_params.assigned_to_id=void 0,a.state.select_params.author_id=void 0;var s=a.state.status_type;a.state.select_params.page=1,a.getIssueList(s)},a.deletedetail=function(e){var t=a.props.match.params,s=t.projectsId,i="/"+t.owner+"/"+s+"/issues/"+e+".json";E.default.delete(i,{data:{project_id:s,id:e}}).then((function(e){if(e){var t=a.state.status_type;a.getIssueList(t);var s=a.props.getDetail;s&&s()}})).catch((function(e){console.log(e)}))},a.createIssue=function(){var e=a.state.data,t=a.props.match.params,s=t.projectsId,i=t.owner;e&&e.user_admin_or_member?a.props.history.push("/"+i+"/"+s+"/issues/new","_blank"):a.props.showLoginDialog("/"+i+"/"+s+"/issues/new")},a.renderNew=function(){return m.default.createElement("a",{className:"topWrapper_btn ml10",onClick:a.createIssue},"+ 创建疑修")},a.changeBeginTime=function(e,t){var s=a.state,i=s.status_type,n=s.select_params;a.setState({begin:t,select_params:c({},n,{page:1})},(function(){a.getIssueList(i,t,a.state.end)}))},a.changeEndTime=function(e,t){var s=a.state,i=s.status_type,n=s.select_params;a.setState({end:t,select_params:c({},n,{page:1})},(function(){a.getIssueList(i,a.state.begin,t)}))},a.checkIssues=function(e){a.setState({checkedValue:e});var t=a.state.allValue;a.setState({all:t&&e&&e.length===t.length}),0===e.length&&a.setState({update_author_ids:"更换负责人",update_fixed_version_ids:"更换里程碑",update_status_ids:"修改状态",select_params:{update_author_id:void 0,update_fixed_version_id:void 0,update_status_id:void 0}})},a.changeAll=function(e){if(e.target.checked){var t=a.state.allValue;a.setState({checkedValue:t})}else a.setState({checkedValue:[]});a.setState({all:e.target.checked})},a.updateIssues=function(){var e=a.state,t=e.checkedValue,s=e.select_params,i=a.props.match.params,n=i.projectsId,l=i.owner;if(s.update_author_id||s.update_fixed_version_id||s.update_status_id){a.setState({isSpin:!0});var r="/"+l+"/"+n+"/issues/series_update.json";E.default.post(r,{ids:t,assigned_to_id:s.update_author_id,fixed_version_id:s.update_fixed_version_id,status_id:s.update_status_id}).then((function(e){if(e){var t=a.props.getDetail;s&&s.update_status_id&&t&&t(),a.props.showNotification("修改成功!"),a.successFunc()}})).catch((function(e){console.log(e)}))}else a.resetSelectParams()},a.successFunc=function(){a.resetSelectParams();var e=a.state.status_type;a.getIssueList(e)},a.resetSelectParams=function(){var e=a.state.select_params;e.update_author_id=void 0,e.update_fixed_version_id=void 0,e.update_status_id=void 0,a.setState({all:!1,checkedValue:[],update_author_ids:"更换负责人",update_fixed_version_ids:"更换里程碑",update_status_ids:"修改状态",select_params:e})},a.deleteIssues=function(){a.props.confirm({content:"是否确认删除所有选中的任务?",onOk:function(){a.setState({isSpin:!0});var e=a.state.checkedValue,t=a.props.match.params,s=t.projectsId,i="/"+t.owner+"/"+s+"/issues/clean.json";E.default.post(i,{ids:e}).then((function(e){if(e){var t=a.props.getDetail;t&&t(),a.props.showNotification("删除成功!"),a.successFunc()}})).catch((function(e){console.log(e)}))}})},a.clearSelectParams=function(){a.setState({status_type:"1",issue_tag_ids:"标记",tracker_ids:"类型",author_ids:"发布人",assigned_to_ids:"负责人",fixed_version_ids:"里程碑",status_ids:"状态",done_ratios:"完成度",paix:"排序",update_author_ids:"更换负责人",update_fixed_version_ids:"更换里程碑",update_status_ids:"修改状态",begin:"",end:"",checkedValue:[],allValue:[],all:!1,search:void 0,select_params:{assigned_to_id:void 0,author_id:void 0,issue_tag_id:void 0,tracker_id:void 0,done_ratio:void 0,status_id:void 0,fixed_version_id:void 0,order_name:void 0,order_type:void 0,search:void 0,update_author_id:void 0,update_fixed_version_id:void 0,update_status_id:void 0,page:1,limit:15}},(function(){a.getIssueList("1")}))},a.menu=function(){return m.default.createElement(u.default,{onClick:function(e){return a.getMenu(e)}},m.default.createElement(u.default.Item,{key:"created_on-desc",value:"desc"},"最新创建"),m.default.createElement(u.default.Item,{key:"created_on-asc",value:"asc"},"最早创建"),m.default.createElement(u.default.Item,{key:"updated_on-desc",value:"desc"},"最新更新"),m.default.createElement(u.default.Item,{key:"updated_on-asc",value:"asc"},"最早更新"))},a.state={issue_chosen:void 0,data:void 0,issues:void 0,isSpin:!1,search:void 0,author_id:void 0,assigned_to_id:void 0,search_count:void 0,issue_type:void 0,status_type:"1",issue_tag_ids:"标记",tracker_ids:"类型",author_ids:"发布人",assigned_to_ids:"负责人",fixed_version_ids:"里程碑",status_ids:"状态",done_ratios:"完成度",paix:"排序",update_author_ids:"更换负责人",update_fixed_version_ids:"更换里程碑",update_status_ids:"修改状态",begin:"",end:"",checkedValue:[],allValue:[],all:!1,select_params:{assigned_to_id:void 0,author_id:void 0,issue_tag_id:void 0,tracker_id:void 0,done_ratio:void 0,status_id:void 0,fixed_version_id:void 0,order_name:void 0,order_type:void 0,search:void 0,update_author_id:void 0,update_fixed_version_id:void 0,update_status_id:void 0,page:1,limit:15}},a}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),p(t,[{key:"render",value:function(){var e=this,t=this.props.current_user,a=this.state,u=a.issue_chosen,o=a.issues,p=a.search_count,_=a.data,v=a.author_id,E=a.assigned_to_id,y=a.isSpin,S=a.status_type,b=a.select_params,x=a.begin,N=a.end,w=a.checkedValue,C=a.all,I=a.search;return m.default.createElement("div",{className:"main mt20",style:{padding:"0px"}},m.default.createElement("div",{style:{padding:"10px 20px 0px 20px"}},m.default.createElement("div",{className:"topWrapper",style:{paddingTop:"10px"}},m.default.createElement("ul",{className:"topWrapper_type"},m.default.createElement("li",null,m.default.createElement("label",null,"所有:"),m.default.createElement("span",{className:S?"":"active",onClick:function(){return e.openorder()}},_&&_.all_count)),m.default.createElement("li",null,m.default.createElement("label",null,"开启中:"),m.default.createElement("span",{className:"1"===S?"active":"",onClick:function(){return e.openorder("1")}},_&&_.open_count)),m.default.createElement("li",null,m.default.createElement("label",null,"已关闭:"),m.default.createElement("span",{className:"2"===S?"active":"",onClick:function(){return e.openorder("2")}},_&&_.close_count))),this.renderNew()),m.default.createElement("div",{className:"topWrapper",style:{borderBottom:"none"}},m.default.createElement("div",{className:"target-detail-search"},m.default.createElement(k,{placeholder:"输入关键字搜索疑修",enterButton:!0,onSearch:this.searchFunc,style:{width:300},value:I,allowClear:!0,onChange:function(t){e.setState({search:t.target.value})}})),m.default.createElement("div",null,m.default.createElement("a",{className:"mr20 color-grey-6",onClick:this.clearSelectParams},m.default.createElement("i",{className:"iconfont icon-shanchu6 mr3 font-14"}),"清除筛选条件"),m.default.createElement(d.default,{value:x?(0,f.default)(x,"YYYY-MM-DD"):"",style:{marginRight:"20px"},placeholder:"请选择开始时间",onChange:this.changeBeginTime}),m.default.createElement(d.default,{value:N?(0,f.default)(N,"YYYY-MM-DD"):"",placeholder:"请选择结束时间",onChange:this.changeEndTime})))),m.default.createElement(s.default,{spinning:y},m.default.createElement("div",{className:"f-wrap-between screenWrap"},m.default.createElement("div",{className:"df"},t&&t.login&&_&&_.user_operate_issue?m.default.createElement(r.default,{value:"0",style:{lineHeight:"50px",marginRight:"15px"},checked:C,onChange:this.changeAll}):"",w&&w.length>0?m.default.createElement("span",{style:{lineHeight:"50px"}},"选中",w.length,"个issue"):m.default.createElement("ul",{className:"searchBanner"},m.default.createElement("li",{className:v||E?"":"active",onClick:function(){return e.ChangeAssign()}},m.default.createElement("label",null,"搜索结果"),m.default.createElement("span",null,_&&_.search_count)),m.default.createElement("li",{style:{display:t&&""===t.login?"none":"flex"},className:E?"active":"",onClick:function(){return e.ChangeAssign(1)}},m.default.createElement("label",null,"指派给我"),m.default.createElement("span",null,_&&_.assign_me_count)),m.default.createElement("li",{style:{display:t&&""===t.login?"none":"flex"},className:v?"active":"",onClick:function(){return e.ChangeAssign(2)}},m.default.createElement("label",null,"我的发布"),m.default.createElement("span",null,_&&_.my_published_count)))),w&&w.length>0?m.default.createElement("ul",{className:"topWrapper_select wrapperStyle"},m.default.createElement("li",{className:"mr20"},m.default.createElement(n.default,{className:"topWrapperSelect",overlay:this.renderMenu(u&&u.assign_user,"更换负责人","update_author_id",!0),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.update_author_ids,m.default.createElement(l.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",{className:"mr20"},m.default.createElement(n.default,{className:"topWrapperSelect wrapperStyle",overlay:this.renderMenu(u&&u.issue_version,"更换里程碑","update_fixed_version_id",!0),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.update_fixed_version_ids,m.default.createElement(l.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",{className:"mr20"},m.default.createElement(n.default,{className:"topWrapperSelect wrapperStyle",overlay:this.renderMenu(u&&u.issue_status,"修改状态","update_status_id",!0),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.update_status_ids,m.default.createElement(l.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("a",{onClick:this.updateIssues,className:"updateBtn blue mr20"},"确定"),m.default.createElement("a",{onClick:this.deleteIssues,className:"updateBtn red mr20"},"删除")):m.default.createElement("ul",{className:"topWrapper_select"},m.default.createElement("li",null,m.default.createElement(n.default,{className:"topWrapperSelect",overlay:this.renderMenu(u&&u.issue_tag,"标记","issue_tag_id"),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.issue_tag_ids,m.default.createElement(l.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",null,m.default.createElement(n.default,{className:"topWrapperSelect",overlay:this.renderMenu(u&&u.assign_user,"发布人","author_id"),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.author_ids,m.default.createElement(l.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",null,m.default.createElement(n.default,{className:"topWrapperSelect",overlay:this.renderMenu(u&&u.assign_user,"负责人","assigned_to_id"),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.assigned_to_ids,m.default.createElement(l.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",null,m.default.createElement(n.default,{className:"topWrapperSelect",overlay:this.renderMenu(u&&u.tracker,"类型","tracker_id"),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.tracker_ids,m.default.createElement(l.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",null,m.default.createElement(n.default,{className:"topWrapperSelect",overlay:this.renderMenu(u&&u.issue_version,"里程碑","fixed_version_id"),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.fixed_version_ids,m.default.createElement(l.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",null,m.default.createElement(n.default,{className:"topWrapperSelect",overlay:this.renderMenu(u&&u.issue_status,"状态","status_id"),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.status_ids,m.default.createElement(l.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",null,m.default.createElement(n.default,{className:"topWrapperSelect",overlay:this.renderMenu(u&&u.done_ratio,"完成度","done_ratio"),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.done_ratios,m.default.createElement(l.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",null,m.default.createElement(n.default,{className:"topWrapperSelect",overlay:this.menu(),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.paix,m.default.createElement(l.default,{type:"caret-down",className:"ml5"})))))),0===p?m.default.createElement(h.default,{_html:"暂时还没有相关数据!"}):m.default.createElement("div",{style:{minHeight:"500px"}},m.default.createElement(r.default.Group,{name:"issues",onChange:this.checkIssues,value:w,style:{width:"100%"}},o&&o.length>0&&o.map((function(a,s){return m.default.createElement(g.default,c({key:s,item:a,checkbox:t&&_&&_.user_operate_issue?m.default.createElement(r.default,{value:a.id,key:a.id,style:{margin:"4px 15px 0px 0px"}}):"",search_count:p,page:b.page,limit:b.limit},e.props,e.state,{deletedetail:e.deletedetail,user_admin_or_member:_&&_.user_operate_issue}))})))),p>b.limit?m.default.createElement("div",{className:"pt30 mb30 edu-txt-center",style:{borderTop:"1px solid #eee"}},m.default.createElement(i.default,{simple:!0,current:b.page,total:p,pageSize:b.limit,onChange:this.ChangePage})):""))}}]),t}(_.Component);t.default=b}}]); \ No newline at end of file +(this.webpackJsonp=this.webpackJsonp||[]).push([[146],{Phz4:function(e,t,a){},WT1Z:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=y(a("W9HT")),i=y(a("NUBc")),l=y(a("jsC+")),n=y(a("CtXQ")),r=y(a("kaz8")),d=y(a("+eQT")),u=y(a("BvKs")),o=y(a("5rEg")),c=Object.assign||function(e){for(var t=1;t0&&s.map((function(e){return e.id})),status_type:e})}})).catch((function(e){console.log(e)}))},a.saveCookies=function(e){var t=a.props.match.params,s=(t.projectsId,t.owner,a.state),i=s.select_params,l=s.issue_tag_ids,n=s.tracker_ids,r=s.author_ids,d={select_params:i,assigned_to_ids:s.assigned_to_ids,status_type:e,issue_tag_ids:l,tracker_ids:n,author_id:s.author_id,assigned_to_id:s.assigned_to_id,author_ids:r,fixed_version_ids:s.fixed_version_ids,status_ids:s.status_ids,done_ratios:s.done_ratios,paix:s.paix,update_author_ids:s.update_author_ids,update_fixed_version_idsx:s.update_fixed_version_idsx,update_status_ids:s.update_status_ids,begin:s.begin,end:s.end,search:s.search},u=new Date((new Date).getTime()+864e5);v.default.save("states",c({},d),{expires:u,path:"/"})},a.getMenu=function(e,t,s){a.setState({isSpin:!0});var i=e.key.split("-");"created_on"===i[0]?"desc"===e.item.props.value?a.setState({paix:"最新创建"}):a.setState({paix:"最早创建"}):"updated_on"===i[0]&&("desc"===e.item.props.value?a.setState({paix:"最新更新"}):a.setState({paix:"最早更新"}));var l=a.state.select_params;a.setState({select_params:c({},l,{order_name:i[0],order_type:e.item.props.value,page:1})},(function(){var e=a.state.status_type;a.getIssueList(e)}))},a.getOption=function(e,t,s,i){var l,n=a.props.current_user,r="all"===e.key?void 0:e.key,d=a.state.author_id,u=a.state.assigned_to_id,o=a.state.select_params;o[""+t]=r,o.page=1,n&&(d=o.author_id&&o.author_id===n.user_id?n.user_id:void 0,u=o.assigned_to_id&&o.assigned_to_id===n.user_id?n.user_id:void 0),a.setState((S(l={},t+"s",s),S(l,"select_params",o),S(l,"author_id",d),S(l,"assigned_to_id",u),l),(function(){if(!i){var e=a.state.status_type;a.getIssueList(e)}}))},a.renderMenu=function(e,t,s,i){return m.default.createElement(u.default,{className:"orderCondition"},m.default.createElement(u.default.Item,{key:"all",onClick:function(e){return a.getOption(e,s,t,i)}},t),e&&e.length>0&&e.map((function(e,t){return m.default.createElement(u.default.Item,{key:e.id,onClick:function(t){return a.getOption(t,s,e.name,i)},style:{textAlign:e.color?"left":"center",padding:"6px 15px"}},e.color&&m.default.createElement("span",{className:"tagColor",style:{backgroundColor:""+e.color}}),e.name)})))},a.ChangePage=function(e){window.scrollTo(0,0);var t=a.state,s=t.status_type,i=t.select_params;a.setState({isSpin:!0,checkedValue:[],all:!1,select_params:c({},i,{page:e})},(function(){a.getIssueList(s)}))},a.searchFunc=function(e){a.setState({search:e,isSpin:!0,checkedValue:[],all:void 0});var t=a.state,s=t.status_type,i=t.select_params;a.setState({select_params:c({},i,{search:e,page:1})},(function(){a.getIssueList(s)}))},a.openorder=function(e){var t={author_id:void 0,assigned_to_id:void 0,page:1,limit:15};a.setState({status_type:e,select_params:t,author_id:void 0,assigned_to_id:void 0,issue_tag_ids:"标记",tracker_ids:"类型",author_ids:"发布人",assigned_to_ids:"负责人",status_ids:"状态",done_ratios:"完成度",fixed_version_ids:"里程碑",checkedValue:[],all:void 0,paix:"排序"},(function(){a.getIssueList(e)}))},a.ChangeAssign=function(e){var t=a.props.current_user;if(a.setState({isSpin:!0}),e){if(!t)return void a.setState({isSpin:!1});1===e?(a.setState({assigned_to_ids:t.username,assigned_to_id:t.user_id,author_id:void 0,author_ids:"发布人"}),a.state.select_params.author_id=void 0,a.state.select_params.assigned_to_id=t.user_id):(a.setState({author_ids:t.username,author_id:t.user_id,assigned_to_id:void 0,assigned_to_ids:"负责人"}),a.state.select_params.assigned_to_id=void 0,a.state.select_params.author_id=t.user_id)}else a.setState({author_ids:"发布人",author_id:void 0,assigned_to_ids:"负责人",assigned_to_id:void 0}),a.state.select_params.assigned_to_id=void 0,a.state.select_params.author_id=void 0;var s=a.state.status_type;a.state.select_params.page=1,a.getIssueList(s)},a.deletedetail=function(e){var t=a.props.match.params,s=t.projectsId,i="/"+t.owner+"/"+s+"/issues/"+e+".json";E.default.delete(i,{data:{project_id:s,id:e}}).then((function(e){if(e){var t=a.state.status_type;a.getIssueList(t);var s=a.props.getDetail;s&&s()}})).catch((function(e){console.log(e)}))},a.createIssue=function(){var e=a.state.data,t=a.props.match.params,s=t.projectsId,i=t.owner;e&&e.user_admin_or_member?a.props.history.push("/"+i+"/"+s+"/issues/new","_blank"):a.props.showLoginDialog("/"+i+"/"+s+"/issues/new")},a.renderNew=function(){return m.default.createElement("a",{className:"topWrapper_btn ml10",onClick:a.createIssue},"+ 创建疑修")},a.changeBeginTime=function(e,t){var s=a.state,i=s.status_type,l=s.select_params;a.setState({begin:t,select_params:c({},l,{page:1})},(function(){a.getIssueList(i,t,a.state.end)}))},a.changeEndTime=function(e,t){var s=a.state,i=s.status_type,l=s.select_params;a.setState({end:t,select_params:c({},l,{page:1})},(function(){a.getIssueList(i,a.state.begin,t)}))},a.checkIssues=function(e){a.setState({checkedValue:e});var t=a.state.allValue;a.setState({all:t&&e&&e.length===t.length}),0===e.length&&a.setState({update_author_ids:"更换负责人",update_fixed_version_ids:"更换里程碑",update_status_ids:"修改状态",select_params:{update_author_id:void 0,update_fixed_version_id:void 0,update_status_id:void 0}})},a.changeAll=function(e){if(e.target.checked){var t=a.state.allValue;a.setState({checkedValue:t})}else a.setState({checkedValue:[]});a.setState({all:e.target.checked})},a.updateIssues=function(){var e=a.state,t=e.checkedValue,s=e.select_params,i=a.props.match.params,l=i.projectsId,n=i.owner;if(s.update_author_id||s.update_fixed_version_id||s.update_status_id){a.setState({isSpin:!0});var r="/"+n+"/"+l+"/issues/series_update.json";E.default.post(r,{ids:t,assigned_to_id:s.update_author_id,fixed_version_id:s.update_fixed_version_id,status_id:s.update_status_id}).then((function(e){if(e){var t=a.props.getDetail;s&&s.update_status_id&&t&&t(),a.props.showNotification("修改成功!"),a.successFunc()}})).catch((function(e){console.log(e)}))}else a.resetSelectParams()},a.successFunc=function(){a.resetSelectParams();var e=a.state.status_type;a.getIssueList(e)},a.resetSelectParams=function(){var e=a.state.select_params;e.update_author_id=void 0,e.update_fixed_version_id=void 0,e.update_status_id=void 0,a.setState({all:!1,checkedValue:[],update_author_ids:"更换负责人",update_fixed_version_ids:"更换里程碑",update_status_ids:"修改状态",select_params:e})},a.deleteIssues=function(){a.props.confirm({content:"是否确认删除所有选中的任务?",onOk:function(){a.setState({isSpin:!0});var e=a.state.checkedValue,t=a.props.match.params,s=t.projectsId,i="/"+t.owner+"/"+s+"/issues/clean.json";E.default.post(i,{ids:e}).then((function(e){if(e){var t=a.props.getDetail;t&&t(),a.props.showNotification("删除成功!"),a.successFunc()}})).catch((function(e){console.log(e)}))}})},a.clearSelectParams=function(){a.setState({status_type:"1",issue_tag_ids:"标记",tracker_ids:"类型",author_ids:"发布人",assigned_to_ids:"负责人",fixed_version_ids:"里程碑",status_ids:"状态",done_ratios:"完成度",paix:"排序",update_author_ids:"更换负责人",update_fixed_version_ids:"更换里程碑",update_status_ids:"修改状态",begin:"",end:"",checkedValue:[],allValue:[],all:!1,search:void 0,select_params:{assigned_to_id:void 0,author_id:void 0,issue_tag_id:void 0,tracker_id:void 0,done_ratio:void 0,status_id:void 0,fixed_version_id:void 0,order_name:void 0,order_type:void 0,search:void 0,update_author_id:void 0,update_fixed_version_id:void 0,update_status_id:void 0,page:1,limit:15}},(function(){a.getIssueList("1")}))},a.menu=function(){return m.default.createElement(u.default,{onClick:function(e){return a.getMenu(e)}},m.default.createElement(u.default.Item,{key:"created_on-desc",value:"desc"},"最新创建"),m.default.createElement(u.default.Item,{key:"created_on-asc",value:"asc"},"最早创建"),m.default.createElement(u.default.Item,{key:"updated_on-desc",value:"desc"},"最新更新"),m.default.createElement(u.default.Item,{key:"updated_on-asc",value:"asc"},"最早更新"))},a.state={issue_chosen:void 0,data:void 0,issues:void 0,isSpin:!1,search:void 0,author_id:void 0,assigned_to_id:void 0,search_count:void 0,issue_type:void 0,status_type:"1",issue_tag_ids:"标记",tracker_ids:"类型",author_ids:"发布人",assigned_to_ids:"负责人",fixed_version_ids:"里程碑",status_ids:"状态",done_ratios:"完成度",paix:"排序",update_author_ids:"更换负责人",update_fixed_version_ids:"更换里程碑",update_status_ids:"修改状态",begin:"",end:"",checkedValue:[],allValue:[],all:!1,select_params:{assigned_to_id:void 0,author_id:void 0,issue_tag_id:void 0,tracker_id:void 0,done_ratio:void 0,status_id:void 0,fixed_version_id:void 0,order_name:void 0,order_type:void 0,search:void 0,update_author_id:void 0,update_fixed_version_id:void 0,update_status_id:void 0,page:1,limit:15}},a}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),p(t,[{key:"render",value:function(){var e=this,t=this.props.current_user,a=this.state,u=a.issue_chosen,o=a.issues,p=a.search_count,_=a.data,v=a.isSpin,E=a.status_type,y=a.select_params,S=a.begin,b=a.end,x=a.checkedValue,N=a.all,w=a.search,C=this.state.select_params,I=C.assigned_to_id,j=C.author_id;return m.default.createElement("div",{className:"main mt20",style:{padding:"0px"}},m.default.createElement("div",{style:{padding:"10px 20px 0px 20px"}},m.default.createElement("div",{className:"topWrapper",style:{paddingTop:"10px"}},m.default.createElement("ul",{className:"topWrapper_type"},m.default.createElement("li",null,m.default.createElement("label",null,"所有:"),m.default.createElement("span",{className:E?"":"active",onClick:function(){return e.openorder()}},_&&_.all_count)),m.default.createElement("li",null,m.default.createElement("label",null,"开启中:"),m.default.createElement("span",{className:"1"===E?"active":"",onClick:function(){return e.openorder("1")}},_&&_.open_count)),m.default.createElement("li",null,m.default.createElement("label",null,"已关闭:"),m.default.createElement("span",{className:"2"===E?"active":"",onClick:function(){return e.openorder("2")}},_&&_.close_count))),this.renderNew()),m.default.createElement("div",{className:"topWrapper",style:{borderBottom:"none"}},m.default.createElement("div",{className:"target-detail-search"},m.default.createElement(k,{placeholder:"输入关键字搜索疑修",enterButton:!0,onSearch:this.searchFunc,style:{width:300},value:w,allowClear:!0,onChange:function(t){e.setState({search:t.target.value})}})),m.default.createElement("div",null,m.default.createElement("a",{className:"mr20 color-grey-6",onClick:this.clearSelectParams},m.default.createElement("i",{className:"iconfont icon-shanchu6 mr3 font-14"}),"清除筛选条件"),m.default.createElement(d.default,{value:S?(0,f.default)(S,"YYYY-MM-DD"):"",style:{marginRight:"20px"},placeholder:"请选择开始时间",onChange:this.changeBeginTime}),m.default.createElement(d.default,{value:b?(0,f.default)(b,"YYYY-MM-DD"):"",placeholder:"请选择结束时间",onChange:this.changeEndTime})))),m.default.createElement(s.default,{spinning:v},m.default.createElement("div",{className:"f-wrap-between screenWrap"},m.default.createElement("div",{className:"df"},t&&t.login&&_&&_.user_operate_issue?m.default.createElement(r.default,{value:"0",style:{lineHeight:"50px",marginRight:"15px"},checked:N,onChange:this.changeAll}):"",x&&x.length>0?m.default.createElement("span",{style:{lineHeight:"50px"}},"选中",x.length,"个issue"):m.default.createElement("ul",{className:"searchBanner"},m.default.createElement("li",{className:j||I?"":"active",onClick:function(){return e.ChangeAssign()}},m.default.createElement("label",null,"搜索结果"),m.default.createElement("span",null,_&&_.search_count)),m.default.createElement("li",{style:{display:t&&""===t.login?"none":"flex"},className:I?"active":"",onClick:function(){return e.ChangeAssign(1)}},m.default.createElement("label",null,"指派给我"),m.default.createElement("span",null,_&&_.assign_me_count)),m.default.createElement("li",{style:{display:t&&""===t.login?"none":"flex"},className:j?"active":"",onClick:function(){return e.ChangeAssign(2)}},m.default.createElement("label",null,"我的发布"),m.default.createElement("span",null,_&&_.my_published_count)))),x&&x.length>0?m.default.createElement("ul",{className:"topWrapper_select wrapperStyle"},m.default.createElement("li",{className:"mr20"},m.default.createElement(l.default,{className:"topWrapperSelect",overlay:this.renderMenu(u&&u.assign_user,"更换负责人","update_author_id",!0),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.update_author_ids,m.default.createElement(n.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",{className:"mr20"},m.default.createElement(l.default,{className:"topWrapperSelect wrapperStyle",overlay:this.renderMenu(u&&u.issue_version,"更换里程碑","update_fixed_version_id",!0),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.update_fixed_version_ids,m.default.createElement(n.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",{className:"mr20"},m.default.createElement(l.default,{className:"topWrapperSelect wrapperStyle",overlay:this.renderMenu(u&&u.issue_status,"修改状态","update_status_id",!0),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.update_status_ids,m.default.createElement(n.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("a",{onClick:this.updateIssues,className:"updateBtn blue mr20"},"确定"),m.default.createElement("a",{onClick:this.deleteIssues,className:"updateBtn red mr20"},"删除")):m.default.createElement("ul",{className:"topWrapper_select"},m.default.createElement("li",null,m.default.createElement(l.default,{className:"topWrapperSelect",overlay:this.renderMenu(u&&u.issue_tag,"标记","issue_tag_id"),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.issue_tag_ids,m.default.createElement(n.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",null,m.default.createElement(l.default,{className:"topWrapperSelect",overlay:this.renderMenu(u&&u.assign_user,"发布人","author_id"),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.author_ids,m.default.createElement(n.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",null,m.default.createElement(l.default,{className:"topWrapperSelect",overlay:this.renderMenu(u&&u.assign_user,"负责人","assigned_to_id"),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.assigned_to_ids,m.default.createElement(n.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",null,m.default.createElement(l.default,{className:"topWrapperSelect",overlay:this.renderMenu(u&&u.tracker,"类型","tracker_id"),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.tracker_ids,m.default.createElement(n.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",null,m.default.createElement(l.default,{className:"topWrapperSelect",overlay:this.renderMenu(u&&u.issue_version,"里程碑","fixed_version_id"),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.fixed_version_ids,m.default.createElement(n.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",null,m.default.createElement(l.default,{className:"topWrapperSelect",overlay:this.renderMenu(u&&u.issue_status,"状态","status_id"),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.status_ids,m.default.createElement(n.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",null,m.default.createElement(l.default,{className:"topWrapperSelect",overlay:this.renderMenu(u&&u.done_ratio,"完成度","done_ratio"),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.done_ratios,m.default.createElement(n.default,{type:"caret-down",className:"ml5"})))),m.default.createElement("li",null,m.default.createElement(l.default,{className:"topWrapperSelect",overlay:this.menu(),trigger:["click"],placement:"bottomCenter"},m.default.createElement("span",null,this.state.paix,m.default.createElement(n.default,{type:"caret-down",className:"ml5"})))))),0===p?m.default.createElement(h.default,{_html:"暂时还没有相关数据!"}):m.default.createElement("div",{style:{minHeight:"500px"}},m.default.createElement(r.default.Group,{name:"issues",onChange:this.checkIssues,value:x,style:{width:"100%"}},o&&o.length>0&&o.map((function(a,s){return m.default.createElement(g.default,c({key:s,item:a,checkbox:t&&_&&_.user_operate_issue?m.default.createElement(r.default,{value:a.id,key:a.id,style:{margin:"4px 15px 0px 0px"}}):"",search_count:p,page:y.page,limit:y.limit},e.props,e.state,{deletedetail:e.deletedetail,user_admin_or_member:_&&_.user_operate_issue}))})))),p>y.limit?m.default.createElement("div",{className:"pt30 mb30 edu-txt-center",style:{borderTop:"1px solid #eee"}},m.default.createElement(i.default,{simple:!0,current:y.page,total:p,pageSize:y.limit,onChange:this.ChangePage})):""))}}]),t}(_.Component);t.default=b}}]); \ No newline at end of file diff --git a/static/js/22.a2643015.chunk.js b/static/js/22.82282989.chunk.js similarity index 99% rename from static/js/22.a2643015.chunk.js rename to static/js/22.82282989.chunk.js index b8ba04e2f..af59fcc2b 100644 --- a/static/js/22.a2643015.chunk.js +++ b/static/js/22.82282989.chunk.js @@ -1 +1 @@ -(this.webpackJsonp=this.webpackJsonp||[]).push([[22],{"0Rql":function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAQCAYAAABtPJ3XAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAALKADAAQAAAABAAAAEAAAAACYv7IkAAABuElEQVRIDdVWr0/DQBT+ujQowgSZwAAKQkhAoAiGTBT2B+ARM/wIAQx2dgYICdRU4PkDBhM4goYEgwODWBBDIjje17VJV9rudkdIeMmt69137333+n6cg1+StR01L6rqMjwFTFKtA7zKoy0juDl3njhnK6LTTjYaauSjg2PRsqUUSlnaHAdfMu+PVXB41XA+szC6c1aESbbbQQsKVSGF2gqwvgxMTfTMv7wB1/dA6w6Qw9Dlt+UKajakXd2TZeFCzwrZ8TJwtAkszvSjZqcBjtUloHkJvHdRjb7Gbj9S/83Yw1HMPoqpUnPvJ9k0hYdnOdRZOMvwWDCN6cyYSxvLea8zZhkGac9m4YkhNopzJqeR2BD2aJExqysJbLhXd18SZ0w4Ll1xgiWV5v2PsfHePFzRvOtth/lbhMleY9abisKoqV1jD8dcWbp0ZRhsnk63fcEKOrxIlTiRb7PPOsvSpSPEUsTiqVSJg97bcL82Hg7YwdgUWLIGCTHEco9gg0H4vHVjwlEd9ZkBbApFpLlGTJQtvmkN5iGsOh3vBtKa59jB2BR0WjP30LCpGMVv0ti/uvwkif/V9fIbUzmWMlmEs/gAAAAASUVORK5CYII="},"3Diz":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=s(n("jsC+")),r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,i=void 0;try{for(var o,l=e[Symbol.iterator]();!(a=(o=l.next()).done)&&(n.push(o.value),!t||n.length!==t);a=!0);}catch(e){r=!0,i=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("qVdP");var i=n("cDcd"),o=s(i);n("MN5C");var l=s(n("cJAJ")),c=n("faye"),u=n("sYIF");function s(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.projectsId,n=e.branch,s=e.owner,m=e.changeBranch,f=e.branchList,d=e.tagflag,p=void 0===d||d,h=(0,i.useState)(n),g=r(h,2),b=g[0],v=g[1],y=(0,i.useState)(!1),A=r(y,2),x=A[0],w=A[1],E=(0,i.useRef)(null),j=(0,i.useRef)(null);(0,i.useEffect)((function(){document.addEventListener("click",O,!1)}),[]);var O=function(e){var t=e.target,n=(0,c.findDOMNode)(E.current),a=(0,c.findDOMNode)(j.current);if(n&&a){var r=n.contains(t),i=a.contains(t);r||i||w(!1)}};(0,i.useEffect)((function(){v(n)}),[n]);var S=o.default.createElement("div",{ref:E},o.default.createElement(l.default,{visible:x,changeBranch:function(e){w(!1);var t=(0,u.turnbar)(e);m(t)},tagflag:p,projectsId:t,owner:s,branchList:f}));return o.default.createElement(a.default,{placement:"bottomLeft",visible:x,overlay:S,overlayClassName:"branch-tagBox-list",trigger:["click"]},o.default.createElement("div",{className:"branch-tagBox",ref:j,onClick:function(){return w(!x)}},o.default.createElement("span",{className:"color-grey-9 mr3 ml8"},o.default.createElement("i",{className:"iconfont icon-fenzhi2 font-18"})),o.default.createElement("span",{className:"ant-dropdown-link task-hide",style:{fontWeight:"500",minWidth:"45px",maxWidth:"270px"}},b),o.default.createElement("i",{className:"showtag iconfont icon-sanjiaoxing-down font-15 color-grey-9 mr5 ml5 mt1"})))}},"3ppx":function(e,t,n){(t=n("JPst")(!1)).push([e.i,"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-timeline {\n box-sizing: border-box;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5;\n font-feature-settings: 'tnum';\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ant-timeline-item {\n position: relative;\n margin: 0;\n padding: 0 0 20px;\n font-size: 14px;\n list-style: none;\n}\n.ant-timeline-item-tail {\n position: absolute;\n top: 10px;\n left: 4px;\n height: calc(100% - 10px);\n border-left: 2px solid #e8e8e8;\n}\n.ant-timeline-item-pending .ant-timeline-item-head {\n font-size: 12px;\n background-color: transparent;\n}\n.ant-timeline-item-pending .ant-timeline-item-tail {\n display: none;\n}\n.ant-timeline-item-head {\n position: absolute;\n width: 10px;\n height: 10px;\n background-color: #fff;\n border: 2px solid transparent;\n border-radius: 100px;\n}\n.ant-timeline-item-head-blue {\n color: #466aff;\n border-color: #466aff;\n}\n.ant-timeline-item-head-red {\n color: #f5222d;\n border-color: #f5222d;\n}\n.ant-timeline-item-head-green {\n color: #52c41a;\n border-color: #52c41a;\n}\n.ant-timeline-item-head-gray {\n color: rgba(0, 0, 0, 0.25);\n border-color: rgba(0, 0, 0, 0.25);\n}\n.ant-timeline-item-head-custom {\n position: absolute;\n top: 5.5px;\n left: 5px;\n width: auto;\n height: auto;\n margin-top: 0;\n padding: 3px 1px;\n line-height: 1;\n text-align: center;\n border: 0;\n border-radius: 0;\n transform: translate(-50%, -50%);\n}\n.ant-timeline-item-content {\n position: relative;\n top: -6px;\n margin: 0 0 0 18px;\n word-break: break-word;\n}\n.ant-timeline-item-last > .ant-timeline-item-tail {\n display: none;\n}\n.ant-timeline-item-last > .ant-timeline-item-content {\n min-height: 48px;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,\n.ant-timeline.ant-timeline-right .ant-timeline-item-tail,\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,\n.ant-timeline.ant-timeline-right .ant-timeline-item-head,\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,\n.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom {\n left: 50%;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,\n.ant-timeline.ant-timeline-right .ant-timeline-item-head {\n margin-left: -4px;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,\n.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom {\n margin-left: 1px;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,\n.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content {\n left: calc(50% - 4px);\n width: calc(50% - 14px);\n text-align: left;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content {\n width: calc(50% - 12px);\n margin: 0;\n text-align: right;\n}\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail,\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom {\n left: calc(100% - 4px - 2px);\n}\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content {\n width: calc(100% - 18px);\n}\n.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail {\n display: block;\n height: calc(100% - 14px);\n border-left: 2px dotted #e8e8e8;\n}\n.ant-timeline.ant-timeline-reverse .ant-timeline-item-last .ant-timeline-item-tail {\n display: none;\n}\n.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail {\n top: 15px;\n display: block;\n height: calc(100% - 15px);\n border-left: 2px dotted #e8e8e8;\n}\n.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-content {\n min-height: 48px;\n}\n",""]),e.exports=t},"Ehk+":function(e,t,n){var a=n("3ppx");"string"==typeof a&&(a=[[e.i,a,""]]);var r={hmr:!0,transform:void 0};n("aET+")(a,r);a.locals&&(e.exports=a.locals)},FRFo:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=l(n("3S7+")),r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,i=void 0;try{for(var o,l=e[Symbol.iterator]();!(a=(o=l.next()).done)&&(n.push(o.value),!t||n.length!==t);a=!0);}catch(e){r=!0,i=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("5Dmo");var i=n("cDcd"),o=l(i);function l(e){return e&&e.__esModule?e:{default:e}}function c(e){var t=e.beforeText,n=e.afterText,l=e.className,c=e.inputId,u=e.timeOut,s=(0,i.useState)((function(){return t})),m=r(s,2),f=m[0],d=m[1],p=(0,i.useCallback)((function(){var e=document.querySelector("#"+c);e?(e.select(),document.execCommand("copy")&&document.execCommand("copy"),document.getSelection().removeAllRanges(),d(n),u&&setTimeout((function(){d(t)}),1500)):console.error("您的CopyTool未设置正确的inputId")}),[]);return o.default.createElement(a.default,{placement:"top",title:f,onVisibleChange:function(){d(t)}},o.default.createElement("i",{className:"iconfont icon-fuzhiicon "+l,style:{color:"#466aff"},onClick:p}))}c.defaultProps={beforeText:"复制链接",afterText:"复制成功",className:"",inputId:"copyText",timeOut:!0},t.default=(0,i.memo)(c)},MN5C:function(e,t,n){},PhNK:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.truncateCommitId=function(e){return e&&e.length>11?e.substring(0,10):e},t.timeFormat=function(e){var t=new Date(1e3*e),n=t.getHours()<10?"0".concat(t.getHours()):t.getHours(),a=t.getMinutes()<10?"0".concat(t.getMinutes()):t.getMinutes();return t.getFullYear()+"-"+(t.getMonth()+1)+"-"+t.getDate()+" "+n+":"+a}},RC8p:function(e,t,n){"use strict";n.r(t);n("cIOH"),n("Ehk+")},"Rs/d":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a,r,i=(a=["\n display:flex;\n font-weight: bold;\n ","\n align-items: center;\n & img{\n width:30px;\n height:30px;\n border-radius:50%;\n }\n ","\n "],r=["\n display:flex;\n font-weight: bold;\n ","\n align-items: center;\n & img{\n width:30px;\n height:30px;\n border-radius:50%;\n }\n ","\n "],Object.freeze(Object.defineProperties(a,{raw:{value:Object.freeze(r)}}))),o=u(n("cDcd")),l=u(n("vOnD")),c=n("eO8H");function u(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.url,n=e.name,a=e.column,r=e.id,u=e.login,s=l.default.span(i,a&&"flex-direction: column;text-align:center;",!a&&"\n & span{\n margin-left:8px;\n }");return r?o.default.createElement(c.Link,{to:"/"+u},o.default.createElement(s,null,t&&o.default.createElement("img",{src:t,alt:""}),o.default.createElement("span",null,n))):o.default.createElement(s,null,t&&o.default.createElement("img",{src:t,alt:""}),o.default.createElement("span",null,n))}},VEFH:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=A(n("W9HT")),r=A(n("NUBc")),i=A(n("rgW5")),o=function(){function e(e,t){for(var n=0;n0&&e.data.commits.map((function(e,n){t.push({name:e.author&&e.author.name,login:e.author&&e.author.login,id:e.author&&e.author.id,image_url:e.author&&e.author.image_url,sha:e.sha,time_from_now:e.time_from_now,message:e.message,timestamp:e.timestamp})})),n.setState({commitDatas:t,dataCount:e.data.total_count,isSpining:!1})}})).catch((function(e){console.log(e)}))},n.changeBranch=function(e){var t=n.props.match.params,a=t.projectsId,r=t.owner;n.props.history.push("/"+r+"/"+a+"/commits/branch/"+e)},n.ChangePage=function(e){n.props.history.push({pathname:n.props.history.location.pathname,search:"page="+e})},n.state={commitDatas:void 0,dataCount:void 0,limit:10,page:1,isSpining:!1,branchList:void 0},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),o(t,[{key:"UrlParamHash",value:function(e){for(var t={},n=void 0,a=e.slice(e.indexOf("?")+1).split("&"),r=0;r0&&t.map((function(e,t){return c.default.createElement(i.default.Item,{key:t,dot:1===l&&0===t?c.default.createElement("span",{className:"new-conmmit"},"最新"):c.default.createElement("i",{className:"iconfont icon-a-yuanquan2x"})},c.default.createElement("div",{className:"commitList-item f-wrap-between"},c.default.createElement("div",null,c.default.createElement(m.AlignTop,null,c.default.createElement("div",{className:"commitDesc"},j?c.default.createElement(v.Link,{to:"/"+k+"/"+S+"/commits/"+(0,s.truncateCommitId)(""+e.sha),className:"font-14 color-grey-3 font-bd"},c.default.createElement(h.default,{value:e.message})):c.default.createElement(h.default,{value:e.message}))),c.default.createElement("p",{className:"f-wrap-alignCenter mt15 pb5"},c.default.createElement(p.default,{id:e.id,url:e.image_url&&(0,u.getImageUrl)("/"+e.image_url)||"https://dss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3025493530,1989042357&fm=26&gp=0.jpg",name:e.name,login:e.login}),e.timestamp&&c.default.createElement("label",{className:"font-14 color-grey-3 ml3"},"提交于 ",(0,s.timeFormat)(e.timestamp)))),c.default.createElement("div",null,c.default.createElement("div",{className:"treecopy"},c.default.createElement("div",null,c.default.createElement("span",{className:"treecopy-cont shadow"},c.default.createElement("img",{src:g.default,alt:"sha",width:"16px"}),j?c.default.createElement(v.Link,{to:"/"+k+"/"+S+"/commits/"+(0,s.truncateCommitId)(""+e.sha)},(0,s.truncateCommitId)(""+e.sha)):c.default.createElement("span",{style:{color:"#466AFF",cursor:"default"}},(0,s.truncateCommitId)(""+e.sha)),c.default.createElement("input",{type:"text",id:"value"+t,value:""+(0,s.truncateCommitId)(""+e.sha)})),c.default.createElement(y.default,{beforeText:"复制commit id",afterText:"复制成功",inputId:"value"+t})),c.default.createElement("button",{className:"btn-83",onClick:function(){window.location.href="/"+k+"/"+S+"/tree/"+(0,s.truncateCommitId)(e.sha)}},"浏览文件")))))})),t&&0===t.length&&c.default.createElement(d.default,{_html:"暂无数据"})),n>o?c.default.createElement("div",{className:"edu-txt-center pt30 mb30"},c.default.createElement(r.default,{simple:!0,current:l,total:n,pageSize:o,onChange:this.ChangePage})):"")))}}]),t}(l.Component);t.default=x},cJAJ:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=m(n("W9HT")),r=m(n("BvKs")),i=m(n("5rEg")),o=m(n("14Xm")),l=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,i=void 0;try{for(var o,l=e[Symbol.iterator]();!(a=(o=l.next()).done)&&(n.push(o.value),!t||n.length!==t);a=!0);}catch(e){r=!0,i=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("T2oS"),n("lUTK"),n("5NDa");var c=n("cDcd"),u=m(c),s=n("tnhM");function m(e){return e&&e.__esModule?e:{default:e}}function f(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function a(r,i){try{var o=t[r](i),l=o.value}catch(e){return void n(e)}if(!o.done)return Promise.resolve(l).then((function(e){a("next",e)}),(function(e){a("throw",e)}));e(l)}("next")}))}}t.default=function(e){var t,n,m=(t=f(o.default.mark((function e(t,n){var a;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,s.getBranch)(t,n);case 2:a=e.sent,B(a),H(a),N(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)}),d=(n=f(o.default.mark((function e(t,n){var a;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,s.getTag)(t,n);case 2:a=e.sent,B(a),H(a),N(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)}),p=e.changeBranch,h=e.tagflag,g=e.projectsId,b=e.owner,v=e.visible,y=(0,c.useState)(void 0),A=l(y,2),x=A[0],w=A[1],E=(0,c.useState)(0),j=l(E,2),O=j[0],S=j[1],k=(0,c.useState)(!0),C=l(k,2),_=C[0],N=C[1],P=(0,c.useState)(void 0),I=l(P,2),T=I[0],B=I[1],D=(0,c.useState)(void 0),M=l(D,2),R=M[0],H=M[1],L=(0,c.useState)("branch"),U=l(L,2),F=U[0],z=U[1];return(0,c.useEffect)((function(){v&&(z("branch"),m(g,b),N(!0))}),[v]),u.default.createElement("div",{className:"overlayBranch"},u.default.createElement("div",{className:"padding15",style:{paddingBottom:"0px"}},u.default.createElement(i.default,{prefix:u.default.createElement("i",{className:"iconfont icon-sousuo_icon1 font-14"}),placeholder:"请输入分支"+(h?"或标签":"")+"名称搜索",autocomplete:"off",className:"OptionsInput",value:x,onChange:function(e){w(e.target.value);var t=e.target.value?T&&T.length>0&&T.filter((function(t){return t.name.indexOf(e.target.value)>-1})):T;H(t)}})),u.default.createElement(r.default,{mode:"horizontal",className:"navUl",selectedKeys:[F],onClick:function(e){z(e.key),N(!0),"branch"===e.key?(m(g,b),S(0)):(d(g,b),S(1))}},u.default.createElement(r.default.Item,{key:"branch"},"分支"),h&&u.default.createElement(r.default.Item,{key:"tag"},"标签")),u.default.createElement(a.default,{spinning:_},u.default.createElement("ul",{className:"OptionsUl",id:"ul-btn"},R&&R.length>0&&R.map((function(e,t){return u.default.createElement("li",{key:t,onClick:function(){return t=e.name,void p(t);var t}},u.default.createElement("a",{className:"task-hide ulALink"},e.name))})),R&&0===R.length&&u.default.createElement("p",{className:"listTips"},"暂无",x,0===O?"分支":"标签","~"))))}},"r+Iv":function(e,t,n){},rgW5:function(e,t,n){"use strict";n.r(t);var a=n("cDcd"),r=n("eHJ2"),i=n.n(r),o=n("BGR+"),l=n("H84U");function c(){return(c=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,a=new Array(t);n .ant-timeline-item-tail {\n display: none;\n}\n.ant-timeline-item-last > .ant-timeline-item-content {\n min-height: 48px;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,\n.ant-timeline.ant-timeline-right .ant-timeline-item-tail,\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,\n.ant-timeline.ant-timeline-right .ant-timeline-item-head,\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,\n.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom {\n left: 50%;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,\n.ant-timeline.ant-timeline-right .ant-timeline-item-head {\n margin-left: -4px;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,\n.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom {\n margin-left: 1px;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,\n.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content {\n left: calc(50% - 4px);\n width: calc(50% - 14px);\n text-align: left;\n}\n.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content {\n width: calc(50% - 12px);\n margin: 0;\n text-align: right;\n}\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail,\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom {\n left: calc(100% - 4px - 2px);\n}\n.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content {\n width: calc(100% - 18px);\n}\n.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail {\n display: block;\n height: calc(100% - 14px);\n border-left: 2px dotted #e8e8e8;\n}\n.ant-timeline.ant-timeline-reverse .ant-timeline-item-last .ant-timeline-item-tail {\n display: none;\n}\n.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail {\n top: 15px;\n display: block;\n height: calc(100% - 15px);\n border-left: 2px dotted #e8e8e8;\n}\n.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-content {\n min-height: 48px;\n}\n",""]),e.exports=t},"Ehk+":function(e,t,n){var a=n("3ppx");"string"==typeof a&&(a=[[e.i,a,""]]);var r={hmr:!0,transform:void 0};n("aET+")(a,r);a.locals&&(e.exports=a.locals)},FRFo:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=l(n("3S7+")),r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,i=void 0;try{for(var o,l=e[Symbol.iterator]();!(a=(o=l.next()).done)&&(n.push(o.value),!t||n.length!==t);a=!0);}catch(e){r=!0,i=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("5Dmo");var i=n("cDcd"),o=l(i);function l(e){return e&&e.__esModule?e:{default:e}}function c(e){var t=e.beforeText,n=e.afterText,l=e.className,c=e.inputId,u=e.timeOut,s=(0,i.useState)((function(){return t})),m=r(s,2),f=m[0],d=m[1],p=(0,i.useCallback)((function(){var e=document.querySelector("#"+c);e?(e.select(),document.execCommand("copy")&&document.execCommand("copy"),document.getSelection().removeAllRanges(),d(n),u&&setTimeout((function(){d(t)}),1500)):console.error("您的CopyTool未设置正确的inputId")}),[]);return o.default.createElement(a.default,{placement:"top",title:f,onVisibleChange:function(){d(t)}},o.default.createElement("i",{className:"iconfont icon-fuzhiicon "+l,style:{color:"#466aff"},onClick:p}))}c.defaultProps={beforeText:"复制链接",afterText:"复制成功",className:"",inputId:"copyText",timeOut:!0},t.default=(0,i.memo)(c)},MN5C:function(e,t,n){},PhNK:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.truncateCommitId=function(e){return e&&e.length>11?e.substring(0,10):e},t.timeFormat=function(e){var t=new Date(1e3*e),n=t.getHours()<10?"0".concat(t.getHours()):t.getHours(),a=t.getMinutes()<10?"0".concat(t.getMinutes()):t.getMinutes();return t.getFullYear()+"-"+(t.getMonth()+1)+"-"+t.getDate()+" "+n+":"+a}},RC8p:function(e,t,n){"use strict";n.r(t);n("cIOH"),n("Ehk+")},"Rs/d":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a,r,i=(a=["\n display:flex;\n font-weight: bold;\n ","\n align-items: center;\n & img{\n width:30px;\n height:30px;\n border-radius:50%;\n }\n ","\n "],r=["\n display:flex;\n font-weight: bold;\n ","\n align-items: center;\n & img{\n width:30px;\n height:30px;\n border-radius:50%;\n }\n ","\n "],Object.freeze(Object.defineProperties(a,{raw:{value:Object.freeze(r)}}))),o=u(n("cDcd")),l=u(n("vOnD")),c=n("eO8H");function u(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.url,n=e.name,a=e.column,r=e.id,u=e.login,s=l.default.span(i,a&&"flex-direction: column;text-align:center;",!a&&"\n & span{\n margin-left:8px;\n }");return r?o.default.createElement(c.Link,{to:"/"+u},o.default.createElement(s,null,t&&o.default.createElement("img",{src:t,alt:""}),o.default.createElement("span",null,n))):o.default.createElement(s,null,t&&o.default.createElement("img",{src:t,alt:""}),o.default.createElement("span",null,n))}},VEFH:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=A(n("W9HT")),r=A(n("NUBc")),i=A(n("rgW5")),o=function(){function e(e,t){for(var n=0;n0&&e.data.commits.map((function(e,n){t.push({name:e.author&&e.author.name,login:e.author&&e.author.login,id:e.author&&e.author.id,image_url:e.author&&e.author.image_url,sha:e.sha,time_from_now:e.time_from_now,message:e.message,timestamp:e.timestamp})})),n.setState({commitDatas:t,dataCount:e.data.total_count,isSpining:!1})}})).catch((function(e){console.log(e)}))},n.changeBranch=function(e){var t=n.props.match.params,a=t.projectsId,r=t.owner;n.props.history.push("/"+r+"/"+a+"/commits/branch/"+e)},n.ChangePage=function(e){n.props.history.push({pathname:n.props.history.location.pathname,search:"page="+e})},n.state={commitDatas:void 0,dataCount:void 0,limit:10,page:1,isSpining:!1,branchList:void 0},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),o(t,[{key:"UrlParamHash",value:function(e){for(var t={},n=void 0,a=e.slice(e.indexOf("?")+1).split("&"),r=0;r0&&t.map((function(e,t){return c.default.createElement(i.default.Item,{key:t,dot:1===l&&0===t?c.default.createElement("span",{className:"new-conmmit"},"最新"):c.default.createElement("i",{className:"iconfont icon-a-yuanquan2x"})},c.default.createElement("div",{className:"commitList-item f-wrap-between"},c.default.createElement("div",null,c.default.createElement(m.AlignTop,null,c.default.createElement("div",{className:"commitDesc"},j?c.default.createElement(v.Link,{to:"/"+k+"/"+S+"/commits/"+(0,s.truncateCommitId)(""+e.sha),className:"font-14 color-grey-3 font-bd"},c.default.createElement(h.default,{value:e.message})):c.default.createElement(h.default,{value:e.message}))),c.default.createElement("p",{className:"f-wrap-alignCenter mt15 pb5"},c.default.createElement(p.default,{id:e.id,url:e.image_url&&(0,u.getImageUrl)("/"+e.image_url)||"https://dss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3025493530,1989042357&fm=26&gp=0.jpg",name:e.name,login:e.login}),e.timestamp&&c.default.createElement("label",{className:"font-14 color-grey-3 ml3"},"提交于 ",(0,s.timeFormat)(e.timestamp)))),c.default.createElement("div",null,c.default.createElement("div",{className:"treecopy"},c.default.createElement("div",null,c.default.createElement("span",{className:"treecopy-cont shadow"},c.default.createElement("img",{src:g.default,alt:"sha",width:"16px"}),j?c.default.createElement(v.Link,{to:"/"+k+"/"+S+"/commits/"+(0,s.truncateCommitId)(""+e.sha)},(0,s.truncateCommitId)(""+e.sha)):c.default.createElement("span",{style:{color:"#466AFF",cursor:"default"}},(0,s.truncateCommitId)(""+e.sha)),c.default.createElement("input",{type:"text",id:"value"+t,value:""+(0,s.truncateCommitId)(""+e.sha)})),c.default.createElement(y.default,{beforeText:"复制commit id",afterText:"复制成功",inputId:"value"+t})),c.default.createElement("button",{className:"btn-83",onClick:function(){window.location.href="/"+k+"/"+S+"/tree/"+(0,s.truncateCommitId)(e.sha)}},"浏览文件")))))})),t&&0===t.length&&c.default.createElement(d.default,{_html:"暂无数据"})),n>o?c.default.createElement("div",{className:"edu-txt-center pt30 mb30"},c.default.createElement(r.default,{simple:!0,current:l,total:n,pageSize:o,onChange:this.ChangePage})):"")))}}]),t}(l.Component);t.default=x},cJAJ:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=m(n("W9HT")),r=m(n("BvKs")),i=m(n("5rEg")),o=m(n("14Xm")),l=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],a=!0,r=!1,i=void 0;try{for(var o,l=e[Symbol.iterator]();!(a=(o=l.next()).done)&&(n.push(o.value),!t||n.length!==t);a=!0);}catch(e){r=!0,i=e}finally{try{!a&&l.return&&l.return()}finally{if(r)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("T2oS"),n("lUTK"),n("5NDa");var c=n("cDcd"),u=m(c),s=n("tnhM");function m(e){return e&&e.__esModule?e:{default:e}}function f(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function a(r,i){try{var o=t[r](i),l=o.value}catch(e){return void n(e)}if(!o.done)return Promise.resolve(l).then((function(e){a("next",e)}),(function(e){a("throw",e)}));e(l)}("next")}))}}t.default=function(e){var t,n,m=(t=f(o.default.mark((function e(t,n){var a;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,s.getBranch)(t,n);case 2:a=e.sent,B(a),H(a),N(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)}),d=(n=f(o.default.mark((function e(t,n){var a;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,s.getTag)(t,n);case 2:a=e.sent,B(a),H(a),N(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)}),p=e.changeBranch,h=e.tagflag,g=e.projectsId,b=e.owner,v=e.visible,y=(0,c.useState)(void 0),A=l(y,2),x=A[0],w=A[1],E=(0,c.useState)(0),j=l(E,2),O=j[0],S=j[1],k=(0,c.useState)(!0),C=l(k,2),_=C[0],N=C[1],P=(0,c.useState)(void 0),I=l(P,2),T=I[0],B=I[1],D=(0,c.useState)(void 0),M=l(D,2),R=M[0],H=M[1],L=(0,c.useState)("branch"),U=l(L,2),F=U[0],z=U[1];return(0,c.useEffect)((function(){v&&(z("branch"),m(g,b),N(!0))}),[v]),u.default.createElement("div",{className:"overlayBranch"},u.default.createElement("div",{className:"padding15",style:{paddingBottom:"0px"}},u.default.createElement(i.default,{prefix:u.default.createElement("i",{className:"iconfont icon-sousuo_icon1 font-14"}),placeholder:"请输入分支"+(h?"或标签":"")+"名称搜索",autocomplete:"off",className:"OptionsInput",value:x,onChange:function(e){w(e.target.value);var t=e.target.value?T&&T.length>0&&T.filter((function(t){return t.name.indexOf(e.target.value)>-1})):T;H(t)}})),u.default.createElement(r.default,{mode:"horizontal",className:"navUl",selectedKeys:[F],onClick:function(e){z(e.key),N(!0),"branch"===e.key?(m(g,b),S(0)):(d(g,b),S(1))}},u.default.createElement(r.default.Item,{key:"branch"},"分支"),h&&u.default.createElement(r.default.Item,{key:"tag"},"标签")),u.default.createElement(a.default,{spinning:_},u.default.createElement("ul",{className:"OptionsUl",id:"ul-btn"},R&&R.length>0&&R.map((function(e,t){return u.default.createElement("li",{key:t,onClick:function(){return t=e.name,void p(t);var t}},u.default.createElement("a",{className:"task-hide ulALink"},e.name))})),R&&0===R.length&&u.default.createElement("p",{className:"listTips"},"暂无",x,0===O?"分支":"标签","~"))))}},"r+Iv":function(e,t,n){},rgW5:function(e,t,n){"use strict";n.r(t);var a=n("cDcd"),r=n("eHJ2"),i=n.n(r),o=n("BGR+"),l=n("H84U");function c(){return(c=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,a=new Array(t);n for newlines inside paragraphs.","markdown.preview.linkify":"Enable or disable conversion of URL-like text to links in the markdown preview.","markdown.preview.doubleClickToSwitchToEditor.desc":"Double click in the markdown preview to switch to the editor.","markdown.preview.fontFamily.desc":"Controls the font family used in the markdown preview.","markdown.preview.fontSize.desc":"Controls the font size in pixels used in the markdown preview.","markdown.preview.lineHeight.desc":"Controls the line height used in the markdown preview. This number is relative to the font size.","markdown.preview.markEditorSelection.desc":"Mark the current editor selection in the markdown preview.","markdown.preview.scrollEditorWithPreview.desc":"When a markdown preview is scrolled, update the view of the editor.","markdown.preview.scrollPreviewWithEditor.desc":"When a markdown editor is scrolled, update the view of the preview.","markdown.preview.title":"Open Preview","markdown.previewSide.title":"Open Preview to the Side","markdown.showLockedPreviewToSide.title":"Open Locked Preview to the Side","markdown.showSource.title":"Show Source","markdown.styles.dec":"A list of URLs or local paths to CSS style sheets to use from the markdown preview. Relative paths are interpreted relative to the folder open in the explorer. If there is no open folder, they are interpreted relative to the location of the markdown file. All '\\' need to be written as '\\\\'.","markdown.showPreviewSecuritySelector.title":"Change Preview Security Settings","markdown.trace.desc":"Enable debug logging for the markdown extension.","markdown.preview.refresh.title":"Refresh Preview","markdown.preview.toggleLock.title":"Toggle Preview Locking","configuration.markdown.preview.openMarkdownLinks.description":"Controls how links to other markdown files in the markdown preview should be opened.","configuration.markdown.preview.openMarkdownLinks.inEditor":"Try to open links in the editor","configuration.markdown.preview.openMarkdownLinks.inPreview":"Try to open links in the markdown preview","configuration.markdown.links.openLocation.description":"Controls where links in markdown files should be opened.","configuration.markdown.links.openLocation.currentGroup":"Open links in the active editor group.","configuration.markdown.links.openLocation.beside":"Open links beside the active editor."},pkgNlsJSON:{},nlsList:[],extendConfig:{},webAssets:["package.json","media/highlight.css","media/index.js","media/markdown.css","media/pre.js","media/preview-dark.svg","media/preview-light.svg","README.md","icon.png","schemas/package.schema.json","dist/browser/extension.js"],mode:"public"}},"3Diz":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=c(n("jsC+")),a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("qVdP");var i=n("cDcd"),s=c(i);n("MN5C");var o=c(n("cJAJ")),l=n("faye"),d=n("sYIF");function c(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.projectsId,n=e.branch,c=e.owner,u=e.changeBranch,m=e.branchList,p=e.tagflag,f=void 0===p||p,_=(0,i.useState)(n),g=a(_,2),h=g[0],w=g[1],b=(0,i.useState)(!1),y=a(b,2),v=y[0],k=y[1],x=(0,i.useRef)(null),T=(0,i.useRef)(null);(0,i.useEffect)((function(){document.addEventListener("click",E,!1)}),[]);var E=function(e){var t=e.target,n=(0,l.findDOMNode)(x.current),r=(0,l.findDOMNode)(T.current);if(n&&r){var a=n.contains(t),i=r.contains(t);a||i||k(!1)}};(0,i.useEffect)((function(){w(n)}),[n]);var j=s.default.createElement("div",{ref:x},s.default.createElement(o.default,{visible:v,changeBranch:function(e){k(!1);var t=(0,d.turnbar)(e);u(t)},tagflag:f,projectsId:t,owner:c,branchList:m}));return s.default.createElement(r.default,{placement:"bottomLeft",visible:v,overlay:j,overlayClassName:"branch-tagBox-list",trigger:["click"]},s.default.createElement("div",{className:"branch-tagBox",ref:T,onClick:function(){return k(!v)}},s.default.createElement("span",{className:"color-grey-9 mr3 ml8"},s.default.createElement("i",{className:"iconfont icon-fenzhi2 font-18"})),s.default.createElement("span",{className:"ant-dropdown-link task-hide",style:{fontWeight:"500",minWidth:"45px",maxWidth:"270px"}},h),s.default.createElement("i",{className:"showtag iconfont icon-sanjiaoxing-down font-15 color-grey-9 mr5 ml5 mt1"})))}},"760K":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n("cDcd"),i=(r=a)&&r.__esModule?r:{default:r},s=n("sYIF");t.default=function(e){var t=e.treeValuePath,n=e.returnUlr,r=e.returnMain,a=e.getPathUrl,o=e.identifier;return i.default.createElement("li",{className:"listtablepath"},i.default.createElement("p",null,i.default.createElement("a",{onClick:r,className:"color-blue"},o),t.map((function(e,r){return i.default.createElement(i.default.Fragment,{key:r},r===t.length-1?i.default.createElement("span",{className:"color-grey-6 subFileName",key:r},(0,s.returnbar)(e)):i.default.createElement("a",{onClick:function(){return n(""+a(t,r+1))},className:"color-blue subFileName"},(0,s.returnbar)(e)))}))))}},BTkp:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n-1)return void n(u.default.createElement("span",null,"分支名不能包含下列任何字符:^*\\/"))}}n()},n.state={submitType:"0",filename:"",isSpin:!1},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),d(t,[{key:"render",value:function(){var e=this,t=this.state,n=t.submitType,d=t.filename,c=t.isSpin,f=this.props.form.getFieldDecorator,_=this.props.match.params,h=_.branch,w=_.projectsId,b=_.owner,y=this.props,v=y.current_user,k=y.filepath,x=y.projectDetail,T=y.currentBranch,E=this.props.editor_type,j=T||h;return u.default.createElement("div",null,u.default.createElement("span",{className:"df",style:{alignItems:"center"}},u.default.createElement(p.Link,{to:"/"+(v&&v.login),className:"show-user-link"},u.default.createElement("img",{src:(0,m.getImageUrl)("/"+(v&&v.image_url)),alt:"",className:"screwImg"}),u.default.createElement("span",{className:"color-grey-3 ver-middle"},v&&v.username,":")),u.default.createElement("span",{className:"color-grey-8"},"提交变更")),u.default.createElement(r.default,{spinning:c},u.default.createElement("div",{className:"userScrew"},u.default.createElement("div",{className:"screwPanel"},u.default.createElement(o.default,null,u.default.createElement(o.default.Item,{style:{display:"upload"===E?"block":"none"}},f("path",{rules:[]})(u.default.createElement("div",{className:"setInputAddon"},u.default.createElement(l.default,{addonBefore:"/"+(x&&x.identifier)+"/",value:d||k,onChange:this.changeFileName,placeholder:"文件路径..."})))),u.default.createElement(o.default.Item,null,f("desc",{rules:[{required:!0,message:"请添加描述信息"}]})(u.default.createElement(g,{placeholder:"必填,描述主要修改类型和内容",authSize:{minRows:3,maxRows:5}}))),u.default.createElement(s.default.Group,{value:n,onChange:this.changeSubmittype},u.default.createElement(s.default,{value:"0",className:"mb10"},u.default.createElement("i",{className:"iconfont icon-banbenku font-16 mr5"}),"直接提交至",u.default.createElement("span",{className:"color-orange"},(0,m.returnbar)(j)),"分支"),u.default.createElement(s.default,{value:"1"},u.default.createElement(i.default,{type:"pull-request",className:"mr5"}),"为此提交创建一个",u.default.createElement("span",{className:"font-bd"},"新的分支"),"并发起合并请求")),"1"===n?u.default.createElement("div",{className:"mt15"},u.default.createElement(o.default.Item,{style:{paddingLeft:"24px"}},f("branchname",{rules:[{required:!0,message:"请输入分支名称"},{validator:this.checkBranchName}]})(u.default.createElement(l.default,{placeholder:"请输入分支名称",style:{width:"220px"}})))):""))),u.default.createElement("div",{className:"mt20"},u.default.createElement(a.default,{type:"primary",onClick:"update"===E?this.UpdateFile:this.subMitFrom,className:"mr30"},"提交变更"),u.default.createElement(a.default,{type:"primary grey",onClick:function(){e.props.history.push("/"+b+"/"+w)},className:"mr20"},"取消"))))}}]),t}(c.Component),w=o.default.create({name:"UserSubmitForm"})(h);t.default=w},Eitf:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=g(n("JsLm")),a=g(n("NJEC")),i=g(n("jsC+")),s=g(n("2fM7")),o=g(n("W9HT")),l=Object.assign||function(e){for(var t=1;t0?u.default.createElement(_.default,{menuList:e,hash:n.props.history.location.hash}):u.default.createElement(o.default,null)},n.state={value:void 0,language:void 0,languages:void 0,description:e.detail.replace_content,menuList:void 0},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),d(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.readOnly,o=t.detail,d=t.current_user,c=t.isManager,m=t.isDeveloper,_=t.currentBranch,g=t.platform,h=t.md,w=t.type,b=this.state,y=b.language,v=b.languages,k=b.description,x=d&&d.login&&(c||m),T=s.default.Option;return u.default.createElement(u.default.Fragment,null,u.default.createElement(r.default,{className:"griditemAnchor",offsetTop:58},u.default.createElement("div",{className:"griditemCate"},h&&n&&u.default.createElement(i.default,{overlay:this.menu(),trigger:["hover"],overlayClassName:"menuslist"},u.default.createElement("span",{className:"catelogue mr20"},u.default.createElement("i",{className:"iconfont icon-muluicon font-12 mr5"}),u.default.createElement("span",null,"目录"))),u.default.createElement("span",{className:"color-grey-6 font-16"},function(e){if(0===e)return"0 B";var t=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,t)).toFixed(2)+" "+["B","KB","MB","GB","TB","PB","EB","ZB","YB"][t]}(o&&o.size))),u.default.createElement("p",{className:"text-right"},x&&g&&u.default.createElement("div",null,n?u.default.createElement("span",null,o.direct_download?"":u.default.createElement("span",null,u.default.createElement("a",{onClick:function(){return e.DownLoadFile(o.download_url)},className:"ml20"},u.default.createElement("i",{className:"iconfont icon-xiazai1 font-15 color-grey-6"})),2!==w&&u.default.createElement("a",{onClick:function(){return e.EditFile(!1)},className:"ml20"},u.default.createElement("i",{className:"iconfont icon-bianji1 font-15 color-grey-6"})))):u.default.createElement(u.default.Fragment,null,u.default.createElement(s.default,{showSearch:!0,placeholder:"请选择文本语言",style:{width:200},value:y,onChange:this.select_language},u.default.createElement(T,{value:void 0},"请选择文本语言"),v&&v.map((function(e,t){return u.default.createElement(T,{value:e,key:t},e)}))),u.default.createElement("button",{type:"button",className:"ant-btn ant-btn-sm ml20",onClick:function(){return e.EditFile(!0)}},u.default.createElement("span",null,"取 消"))),2!==w&&u.default.createElement(a.default,{title:"确认删除这个文件?",className:"ml20",okText:"确定",cancelText:"取消",onConfirm:this.deleteFile},u.default.createElement("a",null,u.default.createElement("i",{className:"iconfont icon-shanchu font-15 color-grey-6"})))))),u.default.createElement("div",null,o.image_type?u.default.createElement("div",{className:"edu-txt-center pt20 pb20"},u.default.createElement("img",{alt:"",src:o.download_url,style:{maxWidth:"80%"}})):o.direct_download?u.default.createElement("div",{className:"mt20 text-center"},u.default.createElement("a",{href:o.download_url,className:"color-blue font-15"},"下载原始文件")):h&&n?u.default.createElement("div",{className:"files-md",id:"files-md"},u.default.createElement(f.default,{className:"file-md imageLayerParent",value:k,url:this.props.history.location})):u.default.createElement(p.default,l({},this.props,this.state,{language:y||"javascript",filepath:"/"+o.path,content:o.content,readOnly:n,editorType:"update",currentBranch:_,descName:o&&"Update "+o.name}))))}}]),t}(c.Component);t.default=w},FRFo:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n("3S7+")),a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("5Dmo");var i=n("cDcd"),s=o(i);function o(e){return e&&e.__esModule?e:{default:e}}function l(e){var t=e.beforeText,n=e.afterText,o=e.className,l=e.inputId,d=e.timeOut,c=(0,i.useState)((function(){return t})),u=a(c,2),m=u[0],p=u[1],f=(0,i.useCallback)((function(){var e=document.querySelector("#"+l);e?(e.select(),document.execCommand("copy")&&document.execCommand("copy"),document.getSelection().removeAllRanges(),p(n),d&&setTimeout((function(){p(t)}),1500)):console.error("您的CopyTool未设置正确的inputId")}),[]);return s.default.createElement(r.default,{placement:"top",title:m,onVisibleChange:function(){p(t)}},s.default.createElement("i",{className:"iconfont icon-fuzhiicon "+o,style:{color:"#466aff"},onClick:f}))}l.defaultProps={beforeText:"复制链接",afterText:"复制成功",className:"",inputId:"copyText",timeOut:!0},t.default=(0,i.memo)(l)},IEkG:function(e,t,n){"use strict";e.exports={extension:{publisher:"alex-ext-public",name:"json-language-features-worker",version:"1.53.0-patch.1"},packageJSON:{name:"json-language-features-worker",publisher:"alex",version:"1.53.0-patch.1",displayName:"%displayName%",description:"%description%",icon:"icons/json.png",activationEvents:["onLanguage:json","onLanguage:jsonc"],kaitianContributes:{workerMain:"client/dist/browser/jsonClientMain.js"},contributes:{configuration:{id:"json",order:20,type:"object",title:"JSON",properties:{"json.schemas":{type:"array",scope:"resource",description:"%json.schemas.desc%",items:{type:"object",default:{fileMatch:["/myfile"],url:"schemaURL"},properties:{url:{type:"string",default:"/user.schema.json",description:"%json.schemas.url.desc%"},fileMatch:{type:"array",items:{type:"string",default:"MyFile.json",description:"%json.schemas.fileMatch.item.desc%"},minItems:1,description:"%json.schemas.fileMatch.desc%"},schema:{$ref:"http://json-schema.org/draft-07/schema#",description:"%json.schemas.schema.desc%"}}}},"json.format.enable":{type:"boolean",scope:"window",default:!0,description:"%json.format.enable.desc%"},"json.trace.server":{type:"string",scope:"window",enum:["off","messages","verbose"],default:"off",description:"%json.tracing.desc%"},"json.colorDecorators.enable":{type:"boolean",scope:"window",default:!0,description:"%json.colorDecorators.enable.desc%",deprecationMessage:"%json.colorDecorators.enable.deprecationMessage%"},"json.maxItemsComputed":{type:"number",default:5e3,description:"%json.maxItemsComputed.desc%"},"json.schemaDownload.enable":{type:"boolean",default:!0,description:"%json.enableSchemaDownload.desc%",tags:["usesOnlineServices"]}}},configurationDefaults:{"[json]":{"editor.quickSuggestions":{strings:!0},"editor.suggest.insertMode":"replace"},"[jsonc]":{"editor.quickSuggestions":{strings:!0},"editor.suggest.insertMode":"replace"}},jsonValidation:[{fileMatch:"*.schema.json",url:"http://json-schema.org/draft-07/schema#"}],workerMain:"client/dist/browser/jsonClientMain.js"},browser:"./client/dist/browser/jsonClientMain"},defaultPkgNlsJSON:{displayName:"JSON Language Features",description:"Provides rich language support for JSON files.","json.schemas.desc":"Associate schemas to JSON files in the current project","json.schemas.url.desc":"A URL to a schema or a relative path to a schema in the current directory","json.schemas.fileMatch.desc":"An array of file patterns to match against when resolving JSON files to schemas. `*` can be used as a wildcard. Exclusion patterns can also be defined and start with '!'. A file matches when there is at least one matching pattern and the last matching pattern is not an exclusion pattern.","json.schemas.fileMatch.item.desc":"A file pattern that can contain '*' to match against when resolving JSON files to schemas.","json.schemas.schema.desc":"The schema definition for the given URL. The schema only needs to be provided to avoid accesses to the schema URL.","json.format.enable.desc":"Enable/disable default JSON formatter","json.tracing.desc":"Traces the communication between VS Code and the JSON language server.","json.colorDecorators.enable.desc":"Enables or disables color decorators","json.colorDecorators.enable.deprecationMessage":"The setting `json.colorDecorators.enable` has been deprecated in favor of `editor.colorDecorators`.","json.schemaResolutionErrorMessage":"Unable to resolve schema.","json.clickToRetry":"Click to retry.","json.maxItemsComputed.desc":"The maximum number of outline symbols and folding regions computed (limited for performance reasons).","json.maxItemsExceededInformation.desc":"Show notification when exceeding the maximum number of outline symbols and folding regions.","json.enableSchemaDownload.desc":"When enabled, JSON schemas can be fetched from http and https locations."},pkgNlsJSON:{},nlsList:[],extendConfig:{},webAssets:["package.json","server/dist/browser/jsonServerMain.js","README.md","icons/json.png","http://json-schema.org/draft-07/schema#","client/dist/browser/jsonClientMain.js"],mode:"public"}},IxBv:function(e,t,n){"use strict";e.exports={extension:{publisher:"alex-ext-public",name:"html-language-features-worker",version:"1.53.0-patch.1"},packageJSON:{name:"html-language-features-worker",publisher:"alex",version:"1.53.0-patch.1",displayName:"%displayName%",description:"%description%",icon:"icons/html.png",activationEvents:["onLanguage:html","onLanguage:handlebars"],kaitianContributes:{workerMain:"client/dist/browser/htmlClientMain.js"},contributes:{configuration:{id:"html",order:20,type:"object",title:"HTML",properties:{"html.customData":{type:"array",markdownDescription:"%html.customData.desc%",default:[],items:{type:"string"},scope:"resource"},"html.format.enable":{type:"boolean",scope:"window",default:!0,description:"%html.format.enable.desc%"},"html.format.wrapLineLength":{type:"integer",scope:"resource",default:120,description:"%html.format.wrapLineLength.desc%"},"html.format.unformatted":{type:["string","null"],scope:"resource",default:"wbr",markdownDescription:"%html.format.unformatted.desc%"},"html.format.contentUnformatted":{type:["string","null"],scope:"resource",default:"pre,code,textarea",markdownDescription:"%html.format.contentUnformatted.desc%"},"html.format.indentInnerHtml":{type:"boolean",scope:"resource",default:!1,markdownDescription:"%html.format.indentInnerHtml.desc%"},"html.format.preserveNewLines":{type:"boolean",scope:"resource",default:!0,description:"%html.format.preserveNewLines.desc%"},"html.format.maxPreserveNewLines":{type:["number","null"],scope:"resource",default:null,markdownDescription:"%html.format.maxPreserveNewLines.desc%"},"html.format.indentHandlebars":{type:"boolean",scope:"resource",default:!1,markdownDescription:"%html.format.indentHandlebars.desc%"},"html.format.endWithNewline":{type:"boolean",scope:"resource",default:!1,description:"%html.format.endWithNewline.desc%"},"html.format.extraLiners":{type:["string","null"],scope:"resource",default:"head, body, /html",markdownDescription:"%html.format.extraLiners.desc%"},"html.format.wrapAttributes":{type:"string",scope:"resource",default:"auto",enum:["auto","force","force-aligned","force-expand-multiline","aligned-multiple","preserve","preserve-aligned"],enumDescriptions:["%html.format.wrapAttributes.auto%","%html.format.wrapAttributes.force%","%html.format.wrapAttributes.forcealign%","%html.format.wrapAttributes.forcemultiline%","%html.format.wrapAttributes.alignedmultiple%","%html.format.wrapAttributes.preserve%","%html.format.wrapAttributes.preservealigned%"],description:"%html.format.wrapAttributes.desc%"},"html.format.wrapAttributesIndentSize":{type:["number","null"],scope:"resource",default:null,description:"%html.format.wrapAttributesIndentSize.desc%"},"html.format.templating":{type:["boolean"],scope:"resource",default:!1,description:"%html.format.templating.desc%"},"html.format.unformattedContentDelimiter":{type:["string"],scope:"resource",default:"",markdownDescription:"%html.format.unformattedContentDelimiter.desc%"},"html.suggest.html5":{type:"boolean",scope:"resource",default:!0,description:"%html.suggest.html5.desc%"},"html.validate.scripts":{type:"boolean",scope:"resource",default:!0,description:"%html.validate.scripts%"},"html.validate.styles":{type:"boolean",scope:"resource",default:!0,description:"%html.validate.styles%"},"html.autoClosingTags":{type:"boolean",scope:"resource",default:!0,description:"%html.autoClosingTags%"},"html.hover.documentation":{type:"boolean",scope:"resource",default:!0,description:"%html.hover.documentation%"},"html.hover.references":{type:"boolean",scope:"resource",default:!0,description:"%html.hover.references%"},"html.mirrorCursorOnMatchingTag":{type:"boolean",scope:"resource",default:!1,description:"%html.mirrorCursorOnMatchingTag%",deprecationMessage:"%html.mirrorCursorOnMatchingTagDeprecationMessage%"},"html.trace.server":{type:"string",scope:"window",enum:["off","messages","verbose"],default:"off",description:"%html.trace.server.desc%"}}},configurationDefaults:{"[html]":{"editor.suggest.insertMode":"replace"},"[handlebars]":{"editor.suggest.insertMode":"replace"}},jsonValidation:[{fileMatch:"*.html-data.json",url:"https://raw.githubusercontent.com/microsoft/vscode-html-languageservice/master/docs/customData.schema.json"},{fileMatch:"package.json",url:"./schemas/package.schema.json"}],workerMain:"client/dist/browser/htmlClientMain.js"},browser:"./client/dist/browser/htmlClientMain"},defaultPkgNlsJSON:{displayName:"HTML Language Features",description:"Provides rich language support for HTML and Handlebar files","html.customData.desc":"A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-html-languageservice/blob/master/docs/customData.md).\n\nVS Code loads custom data on startup to enhance its HTML support for the custom HTML tags, attributes and attribute values you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.","html.format.enable.desc":"Enable/disable default HTML formatter.","html.format.wrapLineLength.desc":"Maximum amount of characters per line (0 = disable).","html.format.unformatted.desc":"List of tags, comma separated, that shouldn't be reformatted. `null` defaults to all tags listed at https://www.w3.org/TR/html5/dom.html#phrasing-content.","html.format.contentUnformatted.desc":"List of tags, comma separated, where the content shouldn't be reformatted. `null` defaults to the `pre` tag.","html.format.indentInnerHtml.desc":"Indent `` and `` sections.","html.format.preserveNewLines.desc":"Controls whether existing line breaks before elements should be preserved. Only works before elements, not inside tags or for text.","html.format.maxPreserveNewLines.desc":"Maximum number of line breaks to be preserved in one chunk. Use `null` for unlimited.","html.format.indentHandlebars.desc":"Format and indent `{{#foo}}` and `{{/foo}}`.","html.format.endWithNewline.desc":"End with a newline.","html.format.extraLiners.desc":'List of tags, comma separated, that should have an extra newline before them. `null` defaults to `"head, body, /html"`.',"html.format.wrapAttributes.desc":"Wrap attributes.","html.format.wrapAttributes.auto":"Wrap attributes only when line length is exceeded.","html.format.wrapAttributes.force":"Wrap each attribute except first.","html.format.wrapAttributes.forcealign":"Wrap each attribute except first and keep aligned.","html.format.wrapAttributes.forcemultiline":"Wrap each attribute.","html.format.wrapAttributes.alignedmultiple":"Wrap when line length is exceeded, align attributes vertically.","html.format.wrapAttributes.preserve":"Preserve wrapping of attributes","html.format.wrapAttributes.preservealigned":"Preserve wrapping of attributes but align.","html.format.templating.desc":"Honor django, erb, handlebars and php templating language tags.","html.format.unformattedContentDelimiter.desc":"Keep text content together between this string.","html.format.wrapAttributesIndentSize.desc":"Alignment size when using 'force aligned' and 'aligned multiple' in `#html.format.wrapAttributes#` or `null` to use the default indent size.","html.suggest.html5.desc":"Controls whether the built-in HTML language support suggests HTML5 tags, properties and values.","html.trace.server.desc":"Traces the communication between VS Code and the HTML language server.","html.validate.scripts":"Controls whether the built-in HTML language support validates embedded scripts.","html.validate.styles":"Controls whether the built-in HTML language support validates embedded styles.","html.autoClosingTags":"Enable/disable autoclosing of HTML tags.","html.mirrorCursorOnMatchingTag":"Enable/disable mirroring cursor on matching HTML tag.","html.mirrorCursorOnMatchingTagDeprecationMessage":"Deprecated in favor of `editor.linkedEditing`","html.hover.documentation":"Show tag and attribute documentation in hover.","html.hover.references":"Show references to MDN in hover."},pkgNlsJSON:{},nlsList:[],extendConfig:{},webAssets:["package.json","server/dist/browser/htmlServerMain.js","README.md","icons/html.png","https://raw.githubusercontent.com/microsoft/vscode-html-languageservice/master/docs/customData.schema.json","schemas/package.schema.json","client/dist/browser/htmlClientMain.js"],mode:"public"}},KhU6:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n("/wGt")),a=u(n("W9HT")),i=u(n("MJZm")),s=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("bbsP"),n("T2oS"),n("ozfa");var o=n("cDcd"),l=u(o),d=n("sYIF");n("KkuB");var c=u(n("vDqi"));function u(e){return e&&e.__esModule?e:{default:e}}var m=i.default.TreeNode,p=i.default.DirectoryTree;t.default=function(e){var t=e.visible,n=e.onClose,i=e.branch,u=e.owner,f=e.projectsId,_=e.history,g=e.name,h=e.list,w=(0,o.useState)(void 0),b=s(w,2),y=b[0],v=b[1],k=(0,o.useState)(!0),x=s(k,2),T=x[0],E=x[1],j=(0,o.useState)(!0),S=s(j,2),q=S[0],C=S[1];return(0,o.useEffect)((function(){var e;t&&q&&(h?(v(h),E(!1)):(e="/"+u+"/"+f+"/entries.json",c.default.get(e,{params:{ref:i}}).then((function(e){e&&v(e.data.entries),E(!1)})).catch((function(e){}))),C(!1))}),[t]),l.default.createElement(r.default,{placement:"left",visible:t,closable:!1,onClose:n,width:"320px",maskStyle:{backgroundColor:"rgba(0,0,0,0.09)"}},l.default.createElement(a.default,{spinning:T},l.default.createElement("div",{className:"drawerHead"},l.default.createElement("p",{className:"font-20"},g),l.default.createElement("p",null,l.default.createElement("i",{class:"iconfont icon-fenzhi2 font-18 color-grey-9 mr3"}),i)),l.default.createElement(p,{loadData:function(e){return new Promise((function(t){if(e.props.children)t();else{var n=[],r="/"+u+"/"+f+"/sub_entries.json";c.default.get(r,{params:{filepath:e.props.dataRef.path,ref:i,type:"dir"}}).then((function(e){e&&(n=e.data.entries)})).catch((function(e){})),setTimeout((function(){e.props.dataRef.children=n,v([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&t.map((function(t){return l.default.createElement(m,{title:t.name,key:t.key,dataRef:t,isLeaf:"file"===t.type},e(t.children))}))}(y))))}},KusB:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n("cDcd"),i=(r=a)&&r.__esModule?r:{default:r},s=n("eO8H"),o=n("PhNK"),l=n("QuzT");var d={submodule:"icon-file-submodule font-17",file:"icon-wenjian6 font-15 color-blue-file",dir:"icon-wenjianjia4 font-15 color-blue_4C"};t.default=function(e){var t=e.item,n=e.goToSubRoot,r=e.owner,c=e.projectsId,u=e.platform;return(0,a.useEffect)((function(){}),[]),i.default.createElement("li",null,i.default.createElement("span",null,!u&&t.image_type?i.default.createElement("span",null,i.default.createElement("i",{className:"iconfont "+d[""+t.type]+" mr8"}),t.name):i.default.createElement("a",{onClick:function(){return n(t.path,t.type,t.name)},className:"submodule"===t.type?"submoduleStyle":""},i.default.createElement("i",{className:"iconfont "+d[""+t.type]+" mr8"}),t.name)),i.default.createElement("span",{title:"init project"},i.default.createElement(s.Link,{to:"/"+r+"/"+c+"/commits/"+(0,o.truncateCommitId)(""+(t.commit&&t.commit.sha)),title:t.commit&&t.commit.message},(0,l.getEmoji)(function(e){var t=e.match(/:([a-zA-Z_]+):/g);if(t&&t.length>0)for(var n=0;n0?l.default.createElement(u.default,{menuList:h,hash:n.location.hash}):l.default.createElement(i.default,null),trigger:["hover"],overlayClassName:"menuslist"},l.default.createElement("span",{className:"catelogue"},l.default.createElement("i",{className:"iconfont icon-muluicon font-12 mr5"}),l.default.createElement("span",null,"目录"))),l.default.createElement("span",{className:"commonBox-title-read"},l.default.createElement("a",{href:"#readme "},"README.md"))),t?l.default.createElement("a",{className:"ml20 pull-right",onClick:function(){return f(m&&m.path,!1)}},l.default.createElement("i",{className:"iconfont icon-a-bianji font-17 color-grey-6"})):"")),v&&l.default.createElement("div",{className:"commonBox-info"},l.default.createElement(d.default,{className:"break_word_comments imageLayerParent readmeFile",value:v,url:n.location})))}},PhNK:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.truncateCommitId=function(e){return e&&e.length>11?e.substring(0,10):e},t.timeFormat=function(e){var t=new Date(1e3*e),n=t.getHours()<10?"0".concat(t.getHours()):t.getHours(),r=t.getMinutes()<10?"0".concat(t.getMinutes()):t.getMinutes();return t.getFullYear()+"-"+(t.getMonth()+1)+"-"+t.getDate()+" "+n+":"+r}},"R/Rt":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t0&&i.default.createElement("span",{className:"infoCount"},r.total_count)),r&&r.total_count>0?r.list.map((function(e,r){return 0===r&&i.default.createElement(s.AlignTop,{className:"mt10"},i.default.createElement("div",null,i.default.createElement("p",{className:"font-16 color-grey-6",style:{display:"flex",alignItems:"center"}},i.default.createElement(o.Link,{to:{pathname:"/"+t+"/"+n+"/releases",query:{turnFromNew:!0}},style:{maxWidth:"200px",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}},e.name),i.default.createElement("span",{className:"font-12 laterest ml5"},"最新")),i.default.createElement("p",{className:"color-grey-3 font-12"},e.created_at)))})):i.default.createElement("div",{className:"mt8"},"您暂未发布任何版本",a&&i.default.createElement(o.Link,{className:"color-blue ml20",to:{pathname:"/"+t+"/"+n+"/releases/new",state:{stable:!0}}},"创建新版本")))}},YIv0:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=d(n("PArb")),a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("/zsF");var i=n("cDcd"),s=d(i),o=n("spEH"),l=d(n("vDqi"));function d(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.owner,n=e.projectsId,d=(0,i.useState)(void 0),c=a(d,2),u=c[0],m=c[1];function p(){for(var e="#",t=["1","2","3","4","4","5","6","7","8","9","a","b","c","d","e","f"],n=0;n<6;n++){e+=t[parseInt(16*Math.random())]}return e}return(0,i.useEffect)((function(){var e;e="/"+t+"/"+n+"/languages.json",l.default.get(e).then((function(e){if(e){var t=e.data;if(t){var n=[];Object.keys(t).map((function(e,r){n.push({name:e,percent:t[e],color:p()})})),m(n)}}})).catch((function(e){}))}),[]),u&&u.length>0?s.default.createElement("div",null,s.default.createElement(r.default,null),s.default.createElement("p",{className:"font-16 color-ooo aboutSubTitle"},"开发语言"),s.default.createElement("div",{className:"progress"},u&&u.map((function(e,t){return s.default.createElement("span",{key:e.id||t,style:{width:e.percent,backgroundColor:e.color}})}))),u&&u.length>0&&s.default.createElement(o.FlexAJ,{className:"progresstip"},u.map((function(e,t){return s.default.createElement("span",{key:e.id||t},s.default.createElement("i",{className:"zero",style:{backgroundColor:""+e.color}}),s.default.createElement("span",null,e.name),s.default.createElement("span",null,e.percent))})))):""}},YXVS:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.underscoreToCamelcase=function e(t){if(Array.isArray(t))return t.map((function(t){return e(t)}));if("object"!==(void 0===t?"undefined":r(t))||null==t)return t;var n={};for(var a in t)if(!t.hasOwnProperty||t.hasOwnProperty(a)){var i=a.replace(/_([a-z])/g,(function(e){return e[1].toUpperCase()}));n[i]=e(t[a])}return n},t.camelcaseToUnderscore=function e(t){if(Array.isArray(t))return t.map((function(t){return e(t)}));if("object"!==(void 0===t?"undefined":r(t))||null==t)return t;var n={};for(var a in t)if(!t.hasOwnProperty||t.hasOwnProperty(a)){var i=a.replace(/([a-z][A-Z])/g,(function(e){return e[0]+"_"+e[1].toLowerCase()}));n[i]=e(t[a])}return n}},cJAJ:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n("W9HT")),a=u(n("BvKs")),i=u(n("5rEg")),s=u(n("14Xm")),o=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("T2oS"),n("lUTK"),n("5NDa");var l=n("cDcd"),d=u(l),c=n("tnhM");function u(e){return e&&e.__esModule?e:{default:e}}function m(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function r(a,i){try{var s=t[a](i),o=s.value}catch(e){return void n(e)}if(!s.done)return Promise.resolve(o).then((function(e){r("next",e)}),(function(e){r("throw",e)}));e(o)}("next")}))}}t.default=function(e){var t,n,u=(t=m(s.default.mark((function e(t,n){var r;return s.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,c.getBranch)(t,n);case 2:r=e.sent,M(r),L(r),P(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)}),p=(n=m(s.default.mark((function e(t,n){var r;return s.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,c.getTag)(t,n);case 2:r=e.sent,M(r),L(r),P(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)}),f=e.changeBranch,_=e.tagflag,g=e.projectsId,h=e.owner,w=e.visible,b=(0,l.useState)(void 0),y=o(b,2),v=y[0],k=y[1],x=(0,l.useState)(0),T=o(x,2),E=T[0],j=T[1],S=(0,l.useState)(!0),q=o(S,2),C=q[0],P=q[1],N=(0,l.useState)(void 0),R=o(N,2),O=R[0],M=R[1],D=(0,l.useState)(void 0),F=o(D,2),A=F[0],L=F[1],U=(0,l.useState)("branch"),I=o(U,2),J=I[0],W=I[1];return(0,l.useEffect)((function(){w&&(W("branch"),u(g,h),P(!0))}),[w]),d.default.createElement("div",{className:"overlayBranch"},d.default.createElement("div",{className:"padding15",style:{paddingBottom:"0px"}},d.default.createElement(i.default,{prefix:d.default.createElement("i",{className:"iconfont icon-sousuo_icon1 font-14"}),placeholder:"请输入分支"+(_?"或标签":"")+"名称搜索",autocomplete:"off",className:"OptionsInput",value:v,onChange:function(e){k(e.target.value);var t=e.target.value?O&&O.length>0&&O.filter((function(t){return t.name.indexOf(e.target.value)>-1})):O;L(t)}})),d.default.createElement(a.default,{mode:"horizontal",className:"navUl",selectedKeys:[J],onClick:function(e){W(e.key),P(!0),"branch"===e.key?(u(g,h),j(0)):(p(g,h),j(1))}},d.default.createElement(a.default.Item,{key:"branch"},"分支"),_&&d.default.createElement(a.default.Item,{key:"tag"},"标签")),d.default.createElement(r.default,{spinning:C},d.default.createElement("ul",{className:"OptionsUl",id:"ul-btn"},A&&A.length>0&&A.map((function(e,t){return d.default.createElement("li",{key:t,onClick:function(){return t=e.name,void f(t);var t}},d.default.createElement("a",{className:"task-hide ulALink"},e.name))})),A&&0===A.length&&d.default.createElement("p",{className:"listTips"},"暂无",v,0===E?"分支":"标签","~"))))}},dEUZ:function(e,t,n){},eIPa:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=g(n("diRs")),a=g(n("W9HT")),i=g(n("2/Rp")),s=g(n("14Xm")),o=Object.assign||function(e){for(var t=1;t0&&c.default.createElement("p",{className:"task-hide",style:{maxWidth:"215px"}},"所属组织:",function(e){var t="";return e.map((function(e){t=t+e.name+"、"})),t&&t.substr(0,t.length-1)}(e.organizations))))),c.default.createElement(u.AlignCenter,{className:"menuinfos"},c.default.createElement(m.Link,{to:"/"+e.login+"/projects"},c.default.createElement("span",null,e.projects_count),c.default.createElement("span",null,"项目数")),c.default.createElement(m.Link,{to:"/"+e.login+"/followers"},c.default.createElement("span",null,e.followers_count),c.default.createElement("span",null,"粉丝数")),c.default.createElement(m.Link,{to:"/"+e.login+"/following"},c.default.createElement("span",null,e.following_count),c.default.createElement("span",null,"关注数"))),c.default.createElement("div",{className:"pb20",style:{display:"flex",justifyContent:"center"}},b&&b===e.login?c.default.createElement(i.default,{className:"currentBtn"},"当前用户"):e.is_watch?c.default.createElement(i.default,{type:"default",onClick:function(){return Z(!1,e.login)}},"已关注"):c.default.createElement(i.default,{type:"primary",onClick:function(){return Z(!0,e.login)}},"关注TA")));D(t)}}function Z(e,t){(0,_.default)({method:e?"post":"delete",url:"/watchers/"+(e?"follow":"unfollow")+".json",params:{target_type:"user",id:t}}).then((function(n){if(n&&(0===n.data.status||2===n.data.status)){var r=k&&k.filter((function(e){return e.login===t}));r&&(r[0].is_watch=e),z(r[0])}})).catch((function(e){console.log(e)}))}function Q(e,t,n){t!==L&&U(t);var r=j.concat();r.map((function(e){return e.visible=!1})),e&&(r[n].visible=e),r.splice(),S(r)}return(0,d.useEffect)((function(){var e;e="/"+h+"/"+w+"/contributors.json",_.default.get(e).then((function(e){e&&(N(e.data.total_count),S(e.data.list))})).catch((function(e){}))}),[]),(0,d.useEffect)((function(){L?g(L):D(void 0)}),[L]),P>0?c.default.createElement("div",{className:"halfs"},c.default.createElement(m.Link,{to:"/"+h+"/"+w+"/contribute",className:"font-16 color-ooo hoverA"},c.default.createElement("span",null,"贡献者"),P>0&&c.default.createElement("span",{className:"infoCount"},P)),c.default.createElement("div",{className:"attrPerson",onMouseLeave:function(){return Q(!1)}},j&&j.length>0&&j.map((function(e,t){return c.default.createElement(r.default,{content:M,visible:e.visible,overlayClassName:"menuPanels",placement:"top"},c.default.createElement(m.Link,{key:t,to:"/"+e.login},c.default.createElement("img",{src:(0,p.getImageUrl)("/"+e.image_url),alt:"",onMouseOver:function(){return Q(!0,e.login,t)}})))})))):""}},gUMM:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=O(n("W9HT")),a=O(n("PArb")),i=O(n("2/Rp")),s=O(n("jsC+")),o=O(n("BvKs")),l=Object.assign||function(e){for(var t=1;t0){var e=Jt.filter((function(e){return"pulls"===e.menu_name})),t=Jt.filter((function(e){return"issues"===e.menu_name}));e&&0===e.length&&jt(!1),t&&0===t.length&&Pt(!1)}}),[Jt]),(0,c.useEffect)((function(){Lt&&(M(Lt),nt(Lt.description),st(Lt.website),ct(Lt.lesson_url),wt(Lt.default_branch),L(Lt.invite_code))}),[Lt]),(0,c.useEffect)((function(){Q(J?decodeURIComponent(J).split("/"):void 0)}),[J]),(0,c.useEffect)((function(){if(Ft&&Dt&&ht){var e=(0,p.turnbar)(At);if(Ut.indexOf("/"+Dt+"/"+Ft)>-1&&Ut.indexOf("/tree/"+e+"/")>-1){var t=Ut.split("/tree/"+e+"/")[1];W(t),function(e,t){Ie(!0);var n="/"+Dt+"/"+Ft+"/sub_entries.json";b.default.get(n,{params:{filepath:(0,p.returnbar)(e),ref:t||At,type:re}}).then((function(t){if(t){var n=t.data.entries;n.type?(ye(void 0),Te(n),ae(n.type),ft(void 0)):(Te(void 0),ye(n),ae("dir"),Wt(e,At||ht));var r=t.data.last_commit;G(r&&r.commit),ee(r&&r.committer),He(!1),Fe(!0),Fe(!vt),le(!0)}setTimeout((function(){Ie(!1)}),500)})).catch((function(e){Ie(!1)}))}(t,At),ae("file")}else W(void 0),function(e){Ie(!0);var t="/"+Dt+"/"+Ft+"/entries.json";b.default.get(t,{params:{ref:e}}).then((function(e){if(e){ge(e.data.commits_count),ye(e.data.entries),Te(void 0),Re(e.data.tar_url),qe(e.data.zip_url);var t=e.data.last_commit;G(t&&t.commit),ee(t&&t.committer),He(!0),Fe(!0),kt(!1),le(!0),Wt("",At||ht)}setTimeout((function(){Ie(!1)}),500)})).catch((function(e){Ie(!1)}))}(At||ht),ae("dir")}}),[Ft,Dt,Ut,ht]),(0,c.useEffect)((function(){b.default.get("/"+Dt+"/"+Ft+"/releases.json").then((function(e){if(e&&e.data){var t={list:e.data.releases,total_count:e.data.releases&&e.data.releases.length};Mt(t)}}))}),[]),(0,c.useEffect)((function(){if(O&&K){var e=document.getElementById("ptxt");if(e)e.offsetHeight>36&&me(!0)}}),[O,K]);var Zt,Qt,Vt=u.default.createElement(g.default,{http_url:O&&O.clone_url,ssh_url:O&&e&&e.platform&&O.ssh_url,zip_url:e&&e.platform&&Se,tar_url:e&&e.platform&&Ne,showNotification:e.showNotification}),Ht=xe&&xe.name,Kt=Ht&&".md"===Ht.substring(Ht.length-3,Ht.length),Gt=e.current_user,Yt=e.checkIfLogin,Xt=e.showLoginDialog,$t=Gt&&Gt.login&&Ct,en=O&&O.permission&&"Reporter"!==O.permission&&2!==O.type&&Et&&e.platform,tn="dir"===re&&O&&2!==O.type&&(O.permission&&"Reporter"!==O.permission||Gt&&Gt.admin);return u.default.createElement(m.WhiteBack,null,u.default.createElement(q.default,{desc:tt,website:it,lesson_url:dt,visible:Ye,onCancel:function(){return Xe(!1)},onOk:function(e,t,n){var r="/"+Dt+"/"+Ft+".json";b.default.put(r,{description:e,website:t||"",lesson_url:n||""}).then((function(e){e&&e.data&&e.data.id&&(nt(e.data.description),st(e.data.website),ct(e.data.lesson_url))}))}}),u.default.createElement(r.default,{spinning:Ue},(be||xe)&&u.default.createElement(u.default.Fragment,null,u.default.createElement(S.default,{history:e.history,owner:Dt,projectsId:Ft,name:O&&O.name,branch:At||ht,visible:Be,onClose:function(){return ze(!1)},list:Ve?be:void 0}),u.default.createElement("div",{className:"drawerBtn",onClick:function(){return ze(!0)}},u.default.createElement("i",{className:"iconfont icon-zuohuaicon font-14"}),u.default.createElement("span",null,"目录"))),u.default.createElement("div",{style:{minHeight:"500px"}},O&&u.default.createElement(m.Box,{className:"Panels"},u.default.createElement(m.LongWidth,null,u.default.createElement("div",{className:"panelmenu"},u.default.createElement(m.FlexAJ,null,u.default.createElement(m.AlignCenter,null,u.default.createElement("div",{className:"mr30"},e&&e.platform?u.default.createElement(h.default,{repo_id:O&&O.repo_id,projectsId:Ft,branch:At||ht,changeBranch:function(t){var n="/"+Dt+"/"+Ft+(t&&"/tree/"+t)+(J?"/"+J:"");e.history.push(n)},owner:Dt,history:e.history,branchList:O&&O.branches&&O.branches.list}):u.default.createElement("span",null,"分支:",u.default.createElement("span",{className:"color-grey-6"},At||ht))),Z&&Z.length>0?u.default.createElement(y.default,{identifier:O&&O.identifier,treeValuePath:Z,returnUlr:function(t){var n=(0,p.turnbar)(At);ae("dir"),e.history.push("/"+Dt+"/"+Ft+"/tree"+(n?"/"+n:"")+"/"+t)},returnMain:function(){W(void 0);var t=At||ht,n=(0,p.turnbar)(t);e.history.push("/"+Dt+"/"+Ft+"/tree/"+n)},getPathUrl:function(e,t){if(e&&e.length>0&&t){for(var n="",r=0;r0||xe?u.default.createElement("div",{className:"listtable"},(K&&K.message||$)&&u.default.createElement("div",{className:"listtablehead"},$&&u.default.createElement(w.default,{url:(0,p.getImageUrl)("/"+$.image_url),name:$.name,id:$.id,login:$.login}),K.message&&u.default.createElement("div",{className:ue&&oe?"ellipsistxt hidetxt":"ellipsistxt"},u.default.createElement("pre",{id:"ptxt"},u.default.createElement(f.Link,{to:"/"+Dt+"/"+Ft+"/commits/"+(0,_.truncateCommitId)(K.sha)},u.default.createElement(R.default,{value:K.message})))),ue&&u.default.createElement("span",{className:"ellipsis",onClick:function(){return function(e){le(!e)}(oe)}},u.default.createElement("i",{className:"iconfont icon-shenglvehao"})),u.default.createElement("span",{className:"ml20 color-grey-6 font-12 mt3"},K.time_from_now),_e?u.default.createElement(f.Link,{to:"/"+Dt+"/"+Ft+"/commits/branch/"+(0,p.turnbar)(At||ht),className:"ml20 color-grey-3",style:{height:"28px",lineHeight:"28px"}},u.default.createElement("i",{className:"iconfont icon-tijiaoicon mr3 font-16"}),u.default.createElement("span",{style:{fontWeight:"500"}},_e,"次提交")):""),u.default.createElement("ul",{className:"listtablebody"},be&&be.length>0&&be.map((function(t,n){return u.default.createElement(v.default,{key:t.id||n,owner:Dt,item:t,projectsId:Ft,goToSubRoot:Bt,platform:e.platform})})),xe&&u.default.createElement(x.default,l({},e,{detail:xe,readOnly:De,md:Kt,onEdit:function(e){Fe(e),kt(!1)},currentBranch:At||ht,branch:At||ht,type:O.type})))):"",be&&0===be.length&&!xe?u.default.createElement(C.default,{_html:"暂未发现文件"}):"",pt&&pt.replace_content?u.default.createElement(k.default,{ChangeFile:function(t,n){var r=At||ht,a=(0,p.turnbar)(r);e.history.push("/"+Dt+"/"+Ft+"/tree/"+a+"/"+t),ae("file"),kt(!0)},readme:pt,operate:e&&(e.isManager||e.isDeveloper)&&2!==O.type,history:e.history}):"")),!(Z&&Z.length>0)&&!xe&&u.default.createElement(m.ShortWidth,null,u.default.createElement(m.Gap,{style:{paddingLeft:"30px"}},u.default.createElement("div",{className:"panelmenu"},u.default.createElement(m.FlexAJ,{className:"font-18 color-ooo mb20",style:{lineHeight:"28px"}},"关于",O.permission&&("Admin"===O.permission||"Owner"===O.permission||"Manager"===O.permission)&&u.default.createElement("i",{onClick:function(){return Xe(!0)},className:"iconfont icon-a-shezhi color-grey-9 font-15 pointer"})),tt&&u.default.createElement("p",{className:"font-14 color-grey-3 mb15 task-hide-2",style:{lineHeight:"24px",WebkitLineClamp:"4",textAlign:"justify",wordBreak:"break-all"},title:tt},tt),it&&u.default.createElement("div",{className:"color-grey-6 df pinfos mb5"},u.default.createElement("i",{className:"iconfont icon-lianjie2 font-15 mr10"}),u.default.createElement("a",{href:it,target:"_blank",style:{wordBreak:"break-all",lineHeight:"20px",marginTop:"5px",textDecoration:"underline"}},it)),u.default.createElement("div",{className:"pinfos mb5"},u.default.createElement("i",{className:"iconfont icon-zishuwenjian_icon font-15 mr10"}),u.default.createElement("a",{href:"#readme"},"README.md")),u.default.createElement("div",{className:"color-grey-6 mb5"},u.default.createElement("i",{className:"iconfont icon-neicunicon font-15 mr10"}),u.default.createElement("span",null,O&&O.size)),O&&O.license_name&&u.default.createElement("div",{className:"pinfos"},u.default.createElement("i",{className:"iconfont icon-xieyiicon font-16 mr10"}),u.default.createElement(f.Link,{to:"/"+Dt+"/"+Ft+"/tree/"+(0,p.turnbar)(At||ht)+"/LICENSE",className:"color-grey-6"},O.license_name))),A&&u.default.createElement("div",null,u.default.createElement(a.default,null),u.default.createElement(P.default,{code:A})),dt&&u.default.createElement("div",null,u.default.createElement(a.default,null),u.default.createElement("p",{className:"font-16 color-ooo"},"实践课程"),u.default.createElement("a",{href:dt,target:"_blank",className:"color-grey-6",style:{textDecoration:"underline",wordBreak:"break-all"}},dt)),Ot&&e.platform&&u.default.createElement(u.default.Fragment,null,u.default.createElement(a.default,null),u.default.createElement(T.default,{owner:Dt,projectsId:Ft,releaseVersions:Ot,history:e.history,distribution:It})),u.default.createElement(E.default,{owner:Dt,projectsId:Ft}),u.default.createElement(j.default,{owner:Dt,projectsId:Ft})))))))}},j5x1:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n-1}));b(n)}else b(t)},prefix:o.default.createElement("i",{className:"iconfont icon-sousuo_icon1 font-14"})})),w&&w.length>0?o.default.createElement("div",{className:"anchorBox"},o.default.createElement(a.default,{affix:!1,onChange:function(e){u(e)},offsetTop:140},w.map((function(e,t){return o.default.createElement("div",{style:{paddingLeft:15*e.level+"px"},className:c===e.href?"items active":"items"},o.default.createElement(d,{href:"#"+e.text,title:e.text}))})))):"")}},tnhM:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getUser=t.getSubEntries=t.getHooks=t.getTag=t.getBranch=void 0;var r=i(n("14Xm")),a=i(n("vDqi"));function i(e){return e&&e.__esModule?e:{default:e}}function s(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function r(a,i){try{var s=t[a](i),o=s.value}catch(e){return void n(e)}if(!s.done)return Promise.resolve(o).then((function(e){r("next",e)}),(function(e){r("throw",e)}));e(o)}("next")}))}}var o,l,d,c,u;t.getBranch=(o=s(r.default.mark((function e(t,n){var i;return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+n+"/"+t+"/branches.json");case 2:return i=e.sent,e.abrupt("return",i&&i.data);case 4:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return o.apply(this,arguments)}),t.getTag=(l=s(r.default.mark((function e(t,n){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+n+"/"+t+"/tags.json",{params:{only_name:!0}});case 2:return e.abrupt("return",e.sent.data.tags);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return l.apply(this,arguments)}),t.getHooks=(d=s(r.default.mark((function e(t,n){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/projects/"+t+"/hooks.json",{params:n});case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return d.apply(this,arguments)}),t.getSubEntries=(c=s(r.default.mark((function e(t,n,i){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+t+"/"+n+"/sub_entries.json",{params:i});case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t,n){return c.apply(this,arguments)}),t.getUser=(u=s(r.default.mark((function e(t){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/users/"+t+"/hovercard.json");case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e){return u.apply(this,arguments)})},w9N6:function(e,t,n){"use strict";e.exports={extension:{publisher:"alex-ext-public",name:"ide-dark-theme",version:"2.4.0"},packageJSON:{publisher:"kaitian",name:"ide-dark-theme",version:"2.4.0",displayName:"IDE UI Theme",description:"IDE UI Theme",contributes:{themes:[{id:"opensumi-dark",label:"OpenSumi Dark",uiTheme:"vs-dark",path:"./themes/dark/plus.json"},{id:"opensumi-light",label:"OpenSumi Light",uiTheme:"vs",path:"./themes/light/plus.json"}]}},pkgNlsJSON:{},nlsList:[],extendConfig:{},webAssets:[],mode:"public"}},yEiv:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.apiService=void 0;var r=n("kg56");t.apiService={get:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,r.request)(e,{method:"GET",params:t},n)},post:function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return(0,r.request)(e,{method:"POST",params:t,data:n},a)},put:function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return(0,r.request)(e,{method:"PUT",params:t,data:n},a)},delete:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,r.request)(e,{method:"DELETE",params:t},n)}}},z2sw:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(n("cDcd"));n("dEUZ");var a=i(n("FRFo"));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.code,n=e.className;return r.default.createElement("div",{className:n},r.default.createElement("span",{className:"font-16 color-ooo"},"邀请码"),r.default.createElement("div",null,r.default.createElement("input",{value:t,id:"devitecode",style:{width:"62px",border:"none",cursor:"default"},readOnly:!0}),r.default.createElement(a.default,{timeOut:!0,beforeText:r.default.createElement("p",{className:"edu-txt-center"},"可以通过邀请码邀请成员加入项目",r.default.createElement("br",null),"点击复制邀请码。"),className:"ml8 font-16",inputId:"devitecode"})))}},zdCV:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.mockService={"/webapi/projects/Gitlink/forgeplus/":{encoding:"UTF-8",id:42422,import_status:"none",namespace:{avatar:{url:null},created_at:"2020-07-02T10:34:49+0800",description:"",id:23159,name:"ide-s",owner:null,owner_id:null,path:"ide-s",permission:null,public:!1,state:null,tenant:{created_at:null,id:0,name:"git",path:"git",updated_at:null,while_list_ip:null},type:"Group",updated_at:"2020-07-02T10:34:49+0800",web_url:"http://gitlab-test.alipay.net/groups/ide-s"},path:"TypeScript-Node-Starter",path_with_namespace:"ide-s/TypeScript-Node-Starter"},"/api/v3/user":{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",name:"testName",role:0,state:"active",theme_id:2,username:"guqiankun.gqk",web_url:"/u/guqiankun.gqk/",website_url:""},"/webapi/projects/42422/get_pull_request_by_iid":{check_suites:[],created_at:"2020-08-06T11:35:38+0800",description:"* 123\n* 456",diff:{add_line_num:753,base_commit_sha:"df72e4d1c394af6d1c21cd042116f83a792fa8c6",commits_count:16,created_at:"2021-05-20T14:27:46+0800",del_line_num:379,files_count:22,head_commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",id:31918,overflow:!1,start_commit_sha:"2566c6dec7756e51f7f16267d9a2a63116ac015b",updated_at:"2021-05-20T14:27:46+0800"},id:13055,iid:2,source_branch:"feat/123123",source_project_id:42422,state:"opened",target_branch:"master",target_project_id:42422},"/api/v3/projects/42422/pull_requests/13055/diffs":[{add_line_num:753,base_commit_sha:"df72e4d1c394af6d1c21cd042116f83a792fa8c6",commits_count:16,created_at:"2021-05-20T14:27:46+0800",del_line_num:379,files_count:22,head_commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",id:31918,overflow:!1,start_commit_sha:"2566c6dec7756e51f7f16267d9a2a63116ac015b",updated_at:"2021-05-20T14:27:46+0800"},{add_line_num:741,base_commit_sha:"df72e4d1c394af6d1c21cd042116f83a792fa8c6",commits_count:15,created_at:"2020-10-27T14:22:15+0800",del_line_num:379,files_count:21,head_commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",id:20699,overflow:!1,start_commit_sha:"2566c6dec7756e51f7f16267d9a2a63116ac015b",updated_at:"2020-12-10T20:05:04+0800"}],"/webapi/projects/42422/pull_requests/13055/comments":{committed_reviews:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"maoqiang@test.com",extern_uid:"30041",id:13616,name:"毛嫱",state:"active",username:"maoqiang",web_url:"https://test.com.com/nwpipe/u/30041"},body:null,created_at:"2020-09-10T10:39:41+08:00",id:1650,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"maoqiang@test.com",extern_uid:"30041",id:13616,name:"毛嫱",state:"active",username:"maoqiang",web_url:"https://test.com.com/nwpipe/u/30041"},commit_id:null,created_at:"2020-09-14T12:09:16+0800",discussion_id:69,id:74,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"试试回复哈",noteable_id:1650,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-14T12:09:16+0800"}],updated_at:"2020-09-14T12:09:20+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"liuya.zmn@test.com",extern_uid:"208698",id:14920,name:"六牙",state:"active",username:"liuya.zmn",web_url:"https://test.com.com/nwpipe/u/208698"},body:null,created_at:"2020-09-09T14:21:01+08:00",id:1644,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"liuya.zmn@test.com",extern_uid:"208698",id:14920,name:"六牙",state:"active",username:"liuya.zmn",web_url:"https://test.com.com/nwpipe/u/208698"},commit_id:null,created_at:"2020-09-09T14:21:01+0800",discussion_id:null,id:63,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -80,40 +80,40 @@ export const getSignup = (req: Request, res: Response) => {\n * Create a new local account.\n */\n export const postSignup = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n- await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/signup");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n+ await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/signup");\n+ }\n+\n+ const user = new User({\n+ email: req.body.email,\n+ password: req.body.password\n+ });\n+\n+ User.findOne({ email: req.body.email }, (err, existingUser) => {\n+ if (err) { return next(err); }\n+ if (existingUser) {\n+ req.flash("errors", { msg: "Account with that email address already exists." });\n+ return res.redirect("/signup");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_94_101",line_type:"old",note:"111",noteable_id:1644,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17641,del_line_num:265,deleted_file:!1,diff:'@@ -80,40 +80,40 @@ export const getSignup = (req: Request, res: Response) => {\n * Create a new local account.\n */\n export const postSignup = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n- await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/signup");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n+ await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/signup");\n+ }\n+\n+ const user = new User({\n+ email: req.body.email,\n+ password: req.body.password\n+ });\n+\n+ User.findOne({ email: req.body.email }, (err, existingUser) => {\n+ if (err) { return next(err); }\n+ if (existingUser) {\n+ req.flash("errors", { msg: "Account with that email address already exists." });\n+ return res.redirect("/signup");\n }\n',id:47,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-09T14:21:12+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"liuya.zmn@test.com",extern_uid:"208698",id:14920,name:"六牙",state:"active",username:"liuya.zmn",web_url:"https://test.com.com/nwpipe/u/208698"},body:null,created_at:"2020-09-09T14:21:25+08:00",id:1645,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"liuya.zmn@test.com",extern_uid:"208698",id:14920,name:"六牙",state:"active",username:"liuya.zmn",web_url:"https://test.com.com/nwpipe/u/208698"},commit_id:null,created_at:"2020-09-09T14:21:26+0800",discussion_id:null,id:64,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -80,40 +80,40 @@ export const getSignup = (req: Request, res: Response) => {\n * Create a new local account.\n */\n export const postSignup = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n- await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/signup");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n+ await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/signup");\n+ }\n+\n+ const user = new User({\n+ email: req.body.email,\n+ password: req.body.password\n+ });\n+\n+ User.findOne({ email: req.body.email }, (err, existingUser) => {\n+ if (err) { return next(err); }\n+ if (existingUser) {\n+ req.flash("errors", { msg: "Account with that email address already exists." });\n+ return res.redirect("/signup");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_94_92",line_type:"old",note:"222",noteable_id:1645,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17641,del_line_num:265,deleted_file:!1,diff:'@@ -80,40 +80,40 @@ export const getSignup = (req: Request, res: Response) => {\n * Create a new local account.\n */\n export const postSignup = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n- await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/signup");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n+ await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/signup");\n+ }\n+\n+ const user = new User({\n+ email: req.body.email,\n+ password: req.body.password\n+ });\n+\n+ User.findOne({ email: req.body.email }, (err, existingUser) => {\n+ if (err) { return next(err); }\n+ if (existingUser) {\n+ req.flash("errors", { msg: "Account with that email address already exists." });\n+ return res.redirect("/signup");\n }\n',id:47,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-09T14:21:41+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-08-06T11:35:40+08:00",id:1483,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-08-11T16:36:49+0800",discussion_id:null,id:8,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139517,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/en-us/codeReview.ts",\n+ "old_path": "app/web/locales/en-us/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139518,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "old_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 2,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 6,\n+ "deleted_file": false,\n+ "id": 139519,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/browser/index.ts",\n+ "old_path": "app/web/module/browser/index.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "0",\n+ "add_line_num": 298,\n+ "b_mode": "100644",\n+ "binary_file": false,\n',id:1077,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},line_code:"02699cd6ca65aa6819d7e387678d8ea5359b5e59_0_56",line_type:"new",note:"123123123",noteable_id:1483,noteable_type:"ReviewComment",outdated:!1,path:"a.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139517,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/en-us/codeReview.ts",\n+ "old_path": "app/web/locales/en-us/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139518,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "old_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 2,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 6,\n+ "deleted_file": false,\n+ "id": 139519,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/browser/index.ts",\n+ "old_path": "app/web/module/browser/index.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "0",\n+ "add_line_num": 298,\n+ "b_mode": "100644",\n+ "binary_file": false,\n',id:43,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-11T16:36:53+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-08-11T16:36:54+08:00",id:1530,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-08-11T20:56:08+0800",discussion_id:null,id:9,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_49_48",line_type:"old",note:"@taian.lta(伊北) 测试一下咔咔咔咔咔咔",noteable_id:1530,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:45,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-11T20:56:31+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-08-11T20:56:32+08:00",id:1537,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-08-13T15:13:13+0800",discussion_id:null,id:12,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139517,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/en-us/codeReview.ts",\n+ "old_path": "app/web/locales/en-us/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139518,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "old_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 2,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 6,\n+ "deleted_file": false,\n+ "id": 139519,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/browser/index.ts",\n+ "old_path": "app/web/module/browser/index.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "0",\n+ "add_line_num": 298,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139520,\n+ "mark_as_read": false,\n+ "new_file": true,\n+ "new_path": "app/web/module/code-review/browser/code-fold.contribution.tsx",\n+ "old_path": "app/web/module/code-review/browser/code-fold.contribution.tsx",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 47,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139521,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/code-review/browser/comment-common.service.ts",\n+ "old_path": "app/web/module/code-review/browser/comment-common.service.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 15,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 16,\n+ "deleted_file": false,\n+ "id": 139522,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/code-review/browser/comment-write.contribution.ts",\n+ "old_path": "app/web/module/code-review/browser/comment-write.contribution.ts",\n',id:1077,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},line_code:"02699cd6ca65aa6819d7e387678d8ea5359b5e59_0_95",line_type:"new",note:"123",noteable_id:1537,noteable_type:"ReviewComment",outdated:!1,path:"a.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139517,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/en-us/codeReview.ts",\n+ "old_path": "app/web/locales/en-us/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139518,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "old_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 2,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 6,\n+ "deleted_file": false,\n+ "id": 139519,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/browser/index.ts",\n+ "old_path": "app/web/module/browser/index.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "0",\n+ "add_line_num": 298,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139520,\n+ "mark_as_read": false,\n+ "new_file": true,\n+ "new_path": "app/web/module/code-review/browser/code-fold.contribution.tsx",\n+ "old_path": "app/web/module/code-review/browser/code-fold.contribution.tsx",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 47,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139521,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/code-review/browser/comment-common.service.ts",\n+ "old_path": "app/web/module/code-review/browser/comment-common.service.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 15,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 16,\n+ "deleted_file": false,\n+ "id": 139522,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/code-review/browser/comment-write.contribution.ts",\n+ "old_path": "app/web/module/code-review/browser/comment-write.contribution.ts",\n',id:43,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-08-13T15:11:06+0800",discussion_id:null,id:11,is_award:!1,labels:["中间件规约"],latest_st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n',id:1077,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},line_code:"02699cd6ca65aa6819d7e387678d8ea5359b5e59_0_9",line_type:"new",note:"123123",noteable_id:1537,noteable_type:"ReviewComment",outdated:!1,path:"a.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n',id:43,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-18T10:24:50+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-03T22:18:43+08:00",id:1629,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-03T22:18:43+0800",discussion_id:13,id:36,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"测试一条评论看看能不能生效呢",noteable_id:1629,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-03T22:18:43+0800"}],updated_at:"2020-09-03T22:18:48+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-04T10:52:12+08:00",id:1630,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-04T16:20:22+0800",discussion_id:null,id:38,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_40_37",line_type:"old",note:"测试",noteable_id:1630,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17174,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:311,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-04T10:52:12+0800",discussion_id:null,id:37,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_0_3",line_type:"old",note:"哈哈哈",noteable_id:1630,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17174,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:311,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-04T16:20:30+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-04T16:20:38+08:00",id:1633,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-04T16:20:39+0800",discussion_id:null,id:40,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_40_35",line_type:"old",note:"123",noteable_id:1633,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17174,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:311,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-04T16:20:43+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-08T19:47:16+08:00",id:1639,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-08T19:47:16+0800",discussion_id:null,id:59,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"v1.16.2-snapshot-3a71cb12",noteable_id:1639,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-08T19:47:16+0800"}],updated_at:"2020-09-08T19:47:16+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-10T12:04:45+08:00",id:1652,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-10T12:04:45+0800",discussion_id:null,id:69,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:'@@ -16,7 +16,7 @@ const server = app.listen(app.get("port"), () => {\n app.get("port"),\n',id:1091,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1},line_code:"bcc09dcb20cae54f483679309f0403fdcbd98121_15_0",line_type:"old",note:"测试发布一条评论",noteable_id:1652,noteable_type:"ReviewComment",outdated:!1,path:"src/server.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17921,del_line_num:1,deleted_file:!1,diff:'@@ -16,7 +16,7 @@ const server = app.listen(app.get("port"), () => {\n app.get("port"),\n',id:79,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-10T12:04:49+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-13T22:47:59+08:00",id:1659,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-17T23:03:22+0800",discussion_id:60,id:84,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"123123",noteable_id:1659,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-17T23:03:22+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-13T22:47:59+0800",discussion_id:null,id:73,is_award:!1,labels:["内存泄露","日志规约","中间件规约","基础编码规约","安全规约","并发&幂等"],latest_st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:1092,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},line_code:"bd5630fadbfeb531e34aa7539e6a12a247f8b0c6_9_4",line_type:"old",note:"123",noteable_id:1659,noteable_type:"ReviewComment",outdated:!1,path:"src/util/logger.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17959,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:275,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-17T23:03:28+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-19T22:39:00+08:00",id:1662,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-19T22:39:35+0800",discussion_id:11,id:87,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"test123",noteable_id:1662,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-19T22:39:35+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-19T22:39:00+0800",discussion_id:78,id:86,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"123123123",noteable_id:1662,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-19T22:39:00+0800"}],updated_at:"2020-09-19T22:40:05+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-10-28T11:42:13+08:00",id:1737,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-11-16T19:52:35+0800",discussion_id:78,id:180,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"*\n*",noteable_id:1737,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-11-16T19:52:35+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-11-11T13:28:08+0800",discussion_id:null,id:170,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_6_6",line_type:"old",note:"123",noteable_id:1737,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2020-11-11T13:28:08+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-11-11T13:27:56+0800",discussion_id:null,id:169,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n+ password: string;\n+ passwordResetToken: string;\n+ passwordResetExpires: Date;\n \n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_10_7",line_type:"old",note:"123",noteable_id:1737,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n+ password: string;\n+ passwordResetToken: string;\n+ passwordResetExpires: Date;\n \n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2020-11-11T13:27:56+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-10-28T11:42:13+0800",discussion_id:52,id:166,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"123123",noteable_id:1737,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-10-28T11:42:13+0800"}],updated_at:"2022-01-25T15:55:52+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-08-18T10:23:46+08:00",id:1563,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-25T20:31:20+0800",discussion_id:null,id:27,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_40_31",line_type:"old",note:"右侧",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-21T15:34:22+0800",discussion_id:20,id:26,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"撒大声地阿斯顿撒",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-21T15:34:22+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-21T15:33:34+0800",discussion_id:23,id:25,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"sad",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-21T15:33:34+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-21T11:30:27+0800",discussion_id:9,id:16,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"asdsadsa",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-21T11:30:27+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-21T11:30:21+0800",discussion_id:9,id:15,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"asdasd",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-21T11:30:21+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-18T10:23:46+0800",discussion_id:null,id:13,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n',id:1077,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},line_code:"02699cd6ca65aa6819d7e387678d8ea5359b5e59_0_10",line_type:"new",note:"1111",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:"a.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n',id:43,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-25T20:31:24+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-08-28T10:27:38+08:00",id:1609,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T11:29:51+0800",discussion_id:null,id:30,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_23_17",line_type:"old",note:"大迭代",noteable_id:1609,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T11:29:43+0800",discussion_id:null,id:29,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_9_0",line_type:"old",note:"撒大声地",noteable_id:1609,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T10:27:39+0800",discussion_id:22,id:28,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"ffff",noteable_id:1609,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-28T10:27:39+0800"}],updated_at:"2020-08-28T11:30:02+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-08-28T11:30:22+08:00",id:1610,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T11:30:22+0800",discussion_id:null,id:31,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_3_0",line_type:"old",note:"333333",noteable_id:1610,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-28T11:30:27+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-08-28T11:30:58+08:00",id:1611,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T11:30:58+0800",discussion_id:null,id:32,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_37_30",line_type:"old",note:"啊大大",noteable_id:1611,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-28T11:31:04+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-09-07T11:12:17+08:00",id:1635,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T11:12:18+0800",discussion_id:null,id:43,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_9_0",line_type:"old",note:"ddd",noteable_id:1635,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17598,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:752,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-07T11:19:37+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-09-07T11:58:28+08:00",id:1637,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T15:44:32+0800",discussion_id:null,id:50,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -252,61 +252,61 @@ export const getReset = (req: Request, res: Response, next: NextFunction) => {\n * Process the reset password request.\n */\n export const postReset = async (req: Request, res: Response, next: NextFunction) => {\n- await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n- await check("confirm", "Passwords must match.").equals(req.body.password).run(req);\n+ await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_255_255",line_type:"old",note:"asdsadas",noteable_id:1637,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:265,deleted_file:!1,diff:'@@ -252,61 +252,61 @@ export const getReset = (req: Request, res: Response, next: NextFunction) => {\n * Process the reset password request.\n */\n export const postReset = async (req: Request, res: Response, next: NextFunction) => {\n- await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n- await check("confirm", "Passwords must match.").equals(req.body.password).run(req);\n+ await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n',id:490,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T15:44:18+0800",discussion_id:null,id:49,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -252,61 +252,61 @@ export const getReset = (req: Request, res: Response, next: NextFunction) => {\n * Process the reset password request.\n */\n export const postReset = async (req: Request, res: Response, next: NextFunction) => {\n- await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n- await check("confirm", "Passwords must match.").equals(req.body.password).run(req);\n+ await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_255_255",line_type:"old",note:"dddd",noteable_id:1637,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:265,deleted_file:!1,diff:'@@ -252,61 +252,61 @@ export const getReset = (req: Request, res: Response, next: NextFunction) => {\n * Process the reset password request.\n */\n export const postReset = async (req: Request, res: Response, next: NextFunction) => {\n- await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n- await check("confirm", "Passwords must match.").equals(req.body.password).run(req);\n+ await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n',id:490,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T15:43:49+0800",discussion_id:29,id:48,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"ddd",noteable_id:1637,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-07T15:43:49+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T11:58:29+0800",discussion_id:null,id:46,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_37_30",line_type:"old",note:"十点多",noteable_id:1637,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17598,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:752,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-07T15:44:42+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-09-07T15:47:40+08:00",id:1638,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T16:39:19+0800",discussion_id:null,id:53,is_award:!1,labels:["内存泄露","中间件规约"],latest_st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:'@@ -4,7 +4,7 @@ import passportFacebook from "passport-facebook";\n import _ from "lodash";\n \n // import { User, UserType } from \'../models/User\';\n-import { User, UserDocument } from "../models/User";\n+import { User, UserDocument } from "../models/User"\n',id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},line_code:"761e3f18c863ddeee900bf74ddd8fed56a4aa2c9_7_7",line_type:"old",note:"test",noteable_id:1638,noteable_type:"ReviewComment",outdated:!1,path:"src/config/passport.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:4,deleted_file:!1,diff:'@@ -4,7 +4,7 @@ import passportFacebook from "passport-facebook";\n import _ from "lodash";\n \n // import { User, UserType } from \'../models/User\';\n-import { User, UserDocument } from "../models/User";\n+import { User, UserDocument } from "../models/User"\n',id:489,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T15:47:40+0800",discussion_id:null,id:51,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_3_0",line_type:"old",note:"asdasd",noteable_id:1638,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:490,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-16T15:19:24+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-09-22T10:13:52+08:00",id:1663,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-10-27T11:38:24+0800",discussion_id:null,id:159,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},line_code:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_0_24",line_type:"old",note:"![stack.png](/ide-s/TypeScript-Node-Starter/uploads/f0320521d707466988b87cc04ec2c7a4/stack.png)",noteable_id:1663,noteable_type:"ReviewComment",outdated:!0,path:"README.md",resolved_at:"2022-01-25T15:10:39+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"604ed58cc40ed8ed6581d1c10e265da6f8b23496",compare_diff_id:19988,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:144,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-22T10:13:53+0800",discussion_id:null,id:88,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -24,7 +24,6 @@ footer {\n \n // Input Fields\n // -------------------------\n-\n textarea {\n resize: vertical;\n",id:1090,new_file:!1,new_path:"src/public/css/main.scss",old_path:"src/public/css/main.scss",renamed_file:!1,too_large:!1},line_code:"4c32a30db22da868cde702e26a724b6a2408a33c_29_27",line_type:"old",note:"右边",noteable_id:1663,noteable_type:"ReviewComment",outdated:!0,path:"src/public/css/main.scss",resolved_at:"2022-01-20T20:10:37+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:18810,del_line_num:1,deleted_file:!1,diff:"@@ -24,7 +24,6 @@ footer {\n \n // Input Fields\n // -------------------------\n-\n textarea {\n resize: vertical;\n",id:117,new_file:!1,new_path:"src/public/css/main.scss",old_path:"src/public/css/main.scss",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-10-27T11:38:42+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-10-27T11:39:26+08:00",id:1731,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T15:16:48+0800",discussion_id:182,id:500022,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to opened",noteable_id:1731,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T15:16:48+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T15:16:07+0800",discussion_id:182,id:500021,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1731,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T15:16:07+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-11-19T15:19:18+0800",discussion_id:null,id:182,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:"",id:1096,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},line_code:"cdba7b9c4edb14d31053cfb58047d4183fe1830d_2_2",line_type:"old",note:"2222",noteable_id:1731,noteable_type:"ReviewComment",outdated:!0,path:"views/partials/footer-renamed.pug",resolved_at:"2022-01-25T15:16:07+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:0,deleted_file:!1,diff:"",id:570,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-11-19T14:50:02+0800",discussion_id:null,id:181,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:"old",note:"111",noteable_id:1731,noteable_type:"ReviewComment",outdated:!1,path:"views/partials/footer-renamed.pug",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:0,deleted_file:!1,diff:"",id:570,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2020-11-19T14:50:02+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-10-27T11:39:26+0800",discussion_id:159,id:160,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"![](https://test.com/cloud-ide/api-server/uploads/96a89b8b059d4dd0896c5a01fe3ed68d/stack.png)",noteable_id:1731,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-10-27T11:39:26+0800"}],updated_at:"2020-11-19T15:19:37+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-11-19T15:20:10+08:00",id:1769,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-11-19T15:20:10+0800",discussion_id:null,id:183,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:"",id:1096,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},line_code:"cdba7b9c4edb14d31053cfb58047d4183fe1830d_5_5",line_type:"old",note:"555",noteable_id:1769,noteable_type:"ReviewComment",outdated:!0,path:"views/partials/footer-renamed.pug",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:0,deleted_file:!1,diff:"",id:570,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-11-19T15:20:14+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-11-19T15:20:34+08:00",id:1770,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-11-19T15:20:34+0800",discussion_id:null,id:184,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:2,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:2,deleted_file:!1,diff:"@@ -14,11 +14,11 @@ block content\n .form-group.row.justify-content-md-center\n",id:1094,new_file:!1,new_path:"views/contact123.pug",old_path:"views/contact.pug",renamed_file:!0,too_large:!1},line_code:"01c01633c13afa3e0580e14dbcd3c26e289c5281_0_4",line_type:"old",note:"4444",noteable_id:1770,noteable_type:"ReviewComment",outdated:!0,path:"views/contact123.pug",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:2,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:2,deleted_file:!1,diff:"@@ -14,11 +14,11 @@ block content\n .form-group.row.justify-content-md-center\n",id:568,new_file:!1,new_path:"views/contact123.pug",old_path:"views/contact.pug",renamed_file:!0,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-11-19T15:20:49+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2021-05-28T16:28:46+08:00",id:2106,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T20:10:21+0800",discussion_id:205,id:500027,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to opened",noteable_id:2106,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T20:10:21+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T20:10:07+0800",discussion_id:205,id:500026,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:2106,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T20:10:07+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T16:06:08+0800",discussion_id:206,id:500024,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:2106,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T16:06:08+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2021-05-28T16:31:57+0800",discussion_id:null,id:206,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:'@@ -16,7 +16,7 @@ const server = app.listen(app.get("port"), () => {\n app.get("port"),\n app.get("env")\n',id:1091,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1},line_code:"bcc09dcb20cae54f483679309f0403fdcbd98121_17_16",line_type:"old",note:"1111",noteable_id:2106,noteable_type:"ReviewComment",outdated:!0,path:"src/server.ts",resolved_at:"2022-01-25T16:06:08+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:'@@ -16,7 +16,7 @@ const server = app.listen(app.get("port"), () => {\n app.get("port"),\n app.get("env")\n',id:1091,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-28T16:31:57+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2021-05-28T16:28:46+0800",discussion_id:null,id:205,is_award:!1,labels:["测试"],latest_st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:"@@ -14,7 +14,7 @@ passport.serializeUser((user, done) => {\n done(undefined, user.id);\n });\n \n-passport.deserializeUser((id, done) => {\n+passport.deserializeUser((id: string, done) => {\n User.findById(id, (err, user) => {\n",id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},line_code:"761e3f18c863ddeee900bf74ddd8fed56a4aa2c9_18_17",line_type:"old",note:"这是啥",noteable_id:2106,noteable_type:"ReviewComment",outdated:!1,path:"src/config/passport.ts",resolved_at:"2022-01-25T20:10:07+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:"@@ -14,7 +14,7 @@ passport.serializeUser((user, done) => {\n done(undefined, user.id);\n });\n \n-passport.deserializeUser((id, done) => {\n+passport.deserializeUser((id: string, done) => {\n User.findById(id, (err, user) => {\n",id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-28T16:28:46+0800"}],updated_at:"2021-05-28T16:32:04+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2021-11-04T15:07:06+08:00",id:4200243,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2021-11-04T15:07:07+0800",discussion_id:null,id:400002,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_40_47",line_type:"old",note:"这是一个带图评论\n\n\n![image.png](/ide-s/TypeScript-Node-Starter/uploads/45f6e1865078460aa15f2799225d956c/image.png)\n",noteable_id:4200243,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-11-04T15:07:07+0800"}],updated_at:"2021-11-04T15:07:16+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2021-11-04T15:08:12+08:00",id:4200244,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-24T11:08:09+0800",discussion_id:400003,id:500014,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to opened",noteable_id:4200244,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-24T11:08:09+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-24T11:07:54+0800",discussion_id:400003,id:500013,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:4200244,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-24T11:07:54+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2021-11-04T15:08:12+0800",discussion_id:null,id:400003,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -327,62 +327,62 @@ export const getForgot = (req: Request, res: Response) => {\n * Create a random token, then the send user an email with a reset link.\n */\n export const postForgot = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Please enter a valid email address.").isEmail().run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/forgot");\n- }\n-\n- async.waterfall([\n- function createRandomToken(done: Function) {\n- crypto.randomBytes(16, (err, buf) => {\n- const token = buf.toString("hex");\n- done(err, token);\n- });\n- },\n- function setRandomToken(token: AuthToken, done: Function) {\n- User.findOne({ email: req.body.email }, (err, user: any) => {\n- if (err) { return done(err); }\n- if (!user) {\n- req.flash("errors", { msg: "Account with that email address does not exist." });\n- return res.redirect("/forgot");\n- }\n- user.passwordResetToken = token;\n- user.passwordResetExpires = Date.now() + 3600000; // 1 hour\n- user.save((err: WriteError) => {\n- done(err, token, user);\n- });\n- });\n- },\n- function sendForgotPasswordEmail(token: AuthToken, user: UserDocument, done: Function) {\n- const transporter = nodemailer.createTransport({\n- service: "SendGrid",\n- auth: {\n- user: process.env.SENDGRID_USER,\n- pass: process.env.SENDGRID_PASSWORD\n- }\n- });\n- const mailOptions = {\n- to: user.email,\n- from: "hackathon@starter.com",\n- subject: "Reset your password on Hackathon Starter",\n- text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\\n\\n\n+ await check("email", "Please enter a valid email address.").isEmail().run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/forgot");\n+ }\n+\n+ async.waterfall([\n+ function createRandomToken(done: Function) {\n+ crypto.randomBytes(16, (err, buf) => {\n+ const token = buf.toString("hex");\n+ done(err, token);\n+ });\n+ },\n+ function setRandomToken(token: AuthToken, done: Function) {\n+ User.findOne({ email: req.body.email }, (err, user: any) => {\n+ if (err) { return done(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: "Account with that email address does not exist." });\n+ return res.redirect("/forgot");\n+ }\n+ user.passwordResetToken = token;\n+ user.passwordResetExpires = Date.now() + 3600000; // 1 hour\n+ user.save((err: WriteError) => {\n+ done(err, token, user);\n+ });\n+ });\n+ },\n+ function sendForgotPasswordEmail(token: AuthToken, user: UserDocument, done: Function) {\n+ const transporter = nodemailer.createTransport({\n+ service: "SendGrid",\n+ auth: {\n+ user: process.env.SENDGRID_USER,\n+ pass: process.env.SENDGRID_PASSWORD\n+ }\n+ });\n+ const mailOptions = {\n+ to: user.email,\n+ from: "hackathon@starter.com",\n+ subject: "Reset your password on Hackathon Starter",\n+ text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\\n\\n\n Please click on the following link, or paste this into your browser to complete the process:\\n\\n\n http://${req.headers.host}/reset/${token}\\n\\n\n If you did not request this, please ignore this email and your password will remain unchanged.\\n`\n- };\n- transporter.sendMail(mailOptions, (err) => {\n- req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` });\n- done(err);\n- });\n- }\n- ], (err) => {\n- if (err) { return next(err); }\n- res.redirect("/forgot");\n- });\n+ };\n+ transporter.sendMail(mailOptions, (err) => {\n+ req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` });\n+ done(err);\n+ });\n+ }\n+ ], (err) => {\n+ if (err) { return next(err); }\n+ res.redirect("/forgot");\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_388_384",line_type:"old",note:"111 \n\n\n![image.png](/ide-s/TypeScript-Node-Starter/uploads/cd8f399b2c994d01b4afe179c26e5a4f/image.png)\n",noteable_id:4200244,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:"2022-01-24T11:07:54+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -327,62 +327,62 @@ export const getForgot = (req: Request, res: Response) => {\n * Create a random token, then the send user an email with a reset link.\n */\n export const postForgot = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Please enter a valid email address.").isEmail().run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/forgot");\n- }\n-\n- async.waterfall([\n- function createRandomToken(done: Function) {\n- crypto.randomBytes(16, (err, buf) => {\n- const token = buf.toString("hex");\n- done(err, token);\n- });\n- },\n- function setRandomToken(token: AuthToken, done: Function) {\n- User.findOne({ email: req.body.email }, (err, user: any) => {\n- if (err) { return done(err); }\n- if (!user) {\n- req.flash("errors", { msg: "Account with that email address does not exist." });\n- return res.redirect("/forgot");\n- }\n- user.passwordResetToken = token;\n- user.passwordResetExpires = Date.now() + 3600000; // 1 hour\n- user.save((err: WriteError) => {\n- done(err, token, user);\n- });\n- });\n- },\n- function sendForgotPasswordEmail(token: AuthToken, user: UserDocument, done: Function) {\n- const transporter = nodemailer.createTransport({\n- service: "SendGrid",\n- auth: {\n- user: process.env.SENDGRID_USER,\n- pass: process.env.SENDGRID_PASSWORD\n- }\n- });\n- const mailOptions = {\n- to: user.email,\n- from: "hackathon@starter.com",\n- subject: "Reset your password on Hackathon Starter",\n- text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\\n\\n\n+ await check("email", "Please enter a valid email address.").isEmail().run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/forgot");\n+ }\n+\n+ async.waterfall([\n+ function createRandomToken(done: Function) {\n+ crypto.randomBytes(16, (err, buf) => {\n+ const token = buf.toString("hex");\n+ done(err, token);\n+ });\n+ },\n+ function setRandomToken(token: AuthToken, done: Function) {\n+ User.findOne({ email: req.body.email }, (err, user: any) => {\n+ if (err) { return done(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: "Account with that email address does not exist." });\n+ return res.redirect("/forgot");\n+ }\n+ user.passwordResetToken = token;\n+ user.passwordResetExpires = Date.now() + 3600000; // 1 hour\n+ user.save((err: WriteError) => {\n+ done(err, token, user);\n+ });\n+ });\n+ },\n+ function sendForgotPasswordEmail(token: AuthToken, user: UserDocument, done: Function) {\n+ const transporter = nodemailer.createTransport({\n+ service: "SendGrid",\n+ auth: {\n+ user: process.env.SENDGRID_USER,\n+ pass: process.env.SENDGRID_PASSWORD\n+ }\n+ });\n+ const mailOptions = {\n+ to: user.email,\n+ from: "hackathon@starter.com",\n+ subject: "Reset your password on Hackathon Starter",\n+ text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\\n\\n\n Please click on the following link, or paste this into your browser to complete the process:\\n\\n\n http://${req.headers.host}/reset/${token}\\n\\n\n If you did not request this, please ignore this email and your password will remain unchanged.\\n`\n- };\n- transporter.sendMail(mailOptions, (err) => {\n- req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` });\n- done(err);\n- });\n- }\n- ], (err) => {\n- if (err) { return next(err); }\n- res.redirect("/forgot");\n- });\n+ };\n+ transporter.sendMail(mailOptions, (err) => {\n+ req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` });\n+ done(err);\n+ });\n+ }\n+ ], (err) => {\n+ if (err) { return next(err); }\n+ res.redirect("/forgot");\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-11-04T15:08:12+0800"}],updated_at:"2021-11-04T15:08:18+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:20:06+08:00",id:1585,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:20:25+0800",discussion_id:null,id:18,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_41_48",line_type:"old",note:"第二次测试",noteable_id:1585,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:20:06+0800",discussion_id:null,id:17,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_43_48",line_type:"old",note:"太好了",noteable_id:1585,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:20:32+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:28:36+08:00",id:1586,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:28:36+0800",discussion_id:null,id:19,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_30_30",line_type:"old",note:"第三次测试",noteable_id:1586,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:28:39+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:29:04+08:00",id:1587,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:29:04+0800",discussion_id:null,id:20,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_21_17",line_type:"old",note:"第四次测试",noteable_id:1587,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:29:07+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:30:06+08:00",id:1588,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:30:07+0800",discussion_id:null,id:21,is_award:!1,labels:["dadada","dada","dadad","LackOfProfessionalField","BusinessArchitectureDesignDefect","DesignPatternDefect","NotFamilierBasicFrame","LackOfJavaBase","CodeStandardsIssue","并发&幂等","基础编码规约","中间件规约"],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_21_17",line_type:"old",note:"第五次测试",noteable_id:1588,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:30:10+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:30:28+08:00",id:1589,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:30:28+0800",discussion_id:null,id:22,is_award:!1,labels:["内存泄露","日志规约"],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_23_17",line_type:"old",note:"第六次测试",noteable_id:1589,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:30:32+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:31:09+08:00",id:1590,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:31:09+0800",discussion_id:null,id:23,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_23_18",line_type:"old",note:"第七次测试",noteable_id:1590,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:31:15+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:32:38+08:00",id:1591,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:32:38+0800",discussion_id:null,id:24,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_23_20",line_type:"old",note:"第八次测试",noteable_id:1591,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:32:41+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-09-04T16:20:30+08:00",id:1632,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-11-16T19:42:40+0800",discussion_id:78,id:179,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-11-16T19:42:40+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-11-16T19:42:37+0800",discussion_id:78,id:178,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to invalid",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-11-16T19:42:37+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-16T11:54:11+0800",discussion_id:78,id:81,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-09-16T11:54:11+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-16T11:52:42+0800",discussion_id:null,id:78,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},line_code:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_8_0",line_type:"old",note:"测试",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"README.md",resolved_at:"2020-11-16T19:42:40+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17959,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:267,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},state:"resolved",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-14T12:10:59+0800",discussion_id:20,id:76,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"对对对\n对对对\n对对对\n对对对对对对\n\n\n\n\n\n\n对对对",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-14T12:10:59+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-14T12:10:40+0800",discussion_id:20,id:75,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"@jiankan.hjk(剑侃) ",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-14T12:10:40+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-09T11:22:29+0800",discussion_id:null,id:61,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_4_4",line_type:"old",note:"test",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17641,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n',id:48,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-09T10:12:09+0800",discussion_id:null,id:60,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_2",line_type:"new",note:"测试",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17641,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n',id:45,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-08T10:21:29+0800",discussion_id:null,id:57,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_7_6",line_type:"old",note:"# test\n# test\n# test\n# test\n# test\n# test\n# test\n# test\n# test\n# test\n# test",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n',id:491,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-08T00:32:18+0800",discussion_id:null,id:56,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:1092,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},line_code:"bd5630fadbfeb531e34aa7539e6a12a247f8b0c6_9_4",line_type:"old",note:"第二条",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/util/logger.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:494,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-08T00:15:45+0800",discussion_id:null,id:55,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:1092,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},line_code:"bd5630fadbfeb531e34aa7539e6a12a247f8b0c6_9_4",line_type:"old",note:"> h\n# test\n## test\n### test\n#### test\ntest\n @huaqiao.lhq(常浅) ",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/util/logger.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:494,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-07T17:01:37+0800",discussion_id:null,id:54,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n+ password: string;\n+ passwordResetToken: string;\n+ passwordResetExpires: Date;\n \n- facebook: string;\n- tokens: AuthToken[];\n+ facebook: string;\n+ tokens: AuthToken[];\n \n- profile: {\n- name: string;\n- gender: string;\n- location: string;\n- website: string;\n- picture: string;\n- };\n+ profile: {\n+ name: string;\n+ gender: string;\n+ location: string;\n+ website: string;\n+ picture: string;\n+ };\n \n- comparePassword: comparePasswordFunction;\n- gravatar: (size: number) => string;\n+ comparePassword: comparePasswordFunction;\n+ gravatar: (size: number) => string;\n };\n \n type comparePasswordFunction = (candidatePassword: string, cb: (err: any, isMatch: any) => {}) => void;\n \n export interface AuthToken {\n- accessToken: string;\n- kind: string;\n+ accessToken: string;\n+ kind: string;\n }\n \n const userSchema = new mongoose.Schema({\n- email: { type: String, unique: true },\n- password: String,\n- passwordResetToken: String,\n- passwordResetExpires: Date,\n+ email: { type: String, unique: true },\n+ password: String,\n+ passwordResetToken: String,\n+ passwordResetExpires: Date,\n \n- facebook: String,\n- twitter: String,\n- google: String,\n- tokens: Array,\n+ facebook: String,\n+ twitter: String,\n+ google: String,\n+ tokens: Array,\n \n- profile: {\n- name: String,\n- gender: String,\n- location: String,\n- website: String,\n- picture: String\n- }\n+ profile: {\n+ name: String,\n+ gender: String,\n+ location: String,\n+ website: String,\n+ picture: String\n+ }\n }, { timestamps: true });\n \n /**\n * Password hash middleware.\n */\n userSchema.pre("save", function save(next) {\n- const user = this as UserDocument;\n- if (!user.isModified("password")) { return next(); }\n- bcrypt.genSalt(10, (err, salt) => {\n- if (err) { return next(err); }\n- bcrypt.hash(user.password, salt, undefined, (err: mongoose.Error, hash) => {\n- if (err) { return next(err); }\n- user.password = hash;\n- next();\n- });\n+ const user = this as UserDocument;\n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_57_57",line_type:"old",note:"测试一下",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n+ password: string;\n+ passwordResetToken: string;\n+ passwordResetExpires: Date;\n \n- facebook: string;\n- tokens: AuthToken[];\n+ facebook: string;\n+ tokens: AuthToken[];\n \n- profile: {\n- name: string;\n- gender: string;\n- location: string;\n- website: string;\n- picture: string;\n- };\n+ profile: {\n+ name: string;\n+ gender: string;\n+ location: string;\n+ website: string;\n+ picture: string;\n+ };\n \n- comparePassword: comparePasswordFunction;\n- gravatar: (size: number) => string;\n+ comparePassword: comparePasswordFunction;\n+ gravatar: (size: number) => string;\n };\n \n type comparePasswordFunction = (candidatePassword: string, cb: (err: any, isMatch: any) => {}) => void;\n \n export interface AuthToken {\n- accessToken: string;\n- kind: string;\n+ accessToken: string;\n+ kind: string;\n }\n \n const userSchema = new mongoose.Schema({\n- email: { type: String, unique: true },\n- password: String,\n- passwordResetToken: String,\n- passwordResetExpires: Date,\n+ email: { type: String, unique: true },\n+ password: String,\n+ passwordResetToken: String,\n+ passwordResetExpires: Date,\n \n- facebook: String,\n- twitter: String,\n- google: String,\n- tokens: Array,\n+ facebook: String,\n+ twitter: String,\n+ google: String,\n+ tokens: Array,\n \n- profile: {\n- name: String,\n- gender: String,\n- location: String,\n- website: String,\n- picture: String\n- }\n+ profile: {\n+ name: String,\n+ gender: String,\n+ location: String,\n+ website: String,\n+ picture: String\n+ }\n }, { timestamps: true });\n \n /**\n * Password hash middleware.\n */\n userSchema.pre("save", function save(next) {\n- const user = this as UserDocument;\n- if (!user.isModified("password")) { return next(); }\n- bcrypt.genSalt(10, (err, salt) => {\n- if (err) { return next(err); }\n- bcrypt.hash(user.password, salt, undefined, (err: mongoose.Error, hash) => {\n- if (err) { return next(err); }\n- user.password = hash;\n- next();\n- });\n+ const user = this as UserDocument;\n',id:491,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-07T16:18:00+0800",discussion_id:null,id:52,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:'@@ -66,7 +66,7 @@ passport.use(new FacebookStrategy({\n callbackURL: "/auth/facebook/callback",\n',id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},line_code:"761e3f18c863ddeee900bf74ddd8fed56a4aa2c9_0_38",line_type:"old",note:"测试",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/config/passport.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:4,deleted_file:!1,diff:'@@ -66,7 +66,7 @@ passport.use(new FacebookStrategy({\n callbackURL: "/auth/facebook/callback",\n',id:489,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-16T11:52:52+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-11-16T19:37:52+08:00",id:1765,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-26T11:01:53+0800",discussion_id:176,id:500030,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1765,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-26T11:01:53+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T15:52:22+0800",discussion_id:176,id:500023,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to opened",noteable_id:1765,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T15:52:22+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-11-26T11:23:06+0800",discussion_id:176,id:185,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1765,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-11-26T11:23:06+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-11-16T19:37:53+0800",discussion_id:null,id:176,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},line_code:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_5_4",line_type:"old",note:"测试",noteable_id:1765,noteable_type:"ReviewComment",outdated:!1,path:"README.md",resolved_at:"2022-01-26T11:01:53+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},state:"resolved",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-11-17T10:31:07+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},body:null,created_at:"2020-11-12T15:29:34+08:00",id:1759,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},commit_id:null,created_at:"2021-07-22T17:21:21+0800",discussion_id:null,id:200002,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_5",line_type:"new",note:"测试下",noteable_id:1759,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-07-22T17:21:21+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},commit_id:null,created_at:"2020-11-12T15:29:34+0800",discussion_id:null,id:171,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},line_code:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_6_4",line_type:"old",note:"test",noteable_id:1759,noteable_type:"ReviewComment",outdated:!0,path:"README.md",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:550,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2020-11-12T15:29:34+0800"}],updated_at:"2021-07-22T17:21:24+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},body:null,created_at:"2021-07-22T17:21:53+08:00",id:2100002,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},commit_id:null,created_at:"2021-07-23T16:22:54+0800",discussion_id:null,id:300003,is_award:!1,labels:["LackOfJavaBase"],latest_st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:'@@ -4,7 +4,7 @@ import passportFacebook from "passport-facebook";\n import _ from "lodash";\n \n // import { User, UserType } from \'../models/User\';\n-import { User, UserDocument } from "../models/User";\n+import { User, UserDocument } from "../models/User"\n import { Request, Response, NextFunction } from "express";\n \n const LocalStrategy = passportLocal.Strategy;\n',id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},line_code:"761e3f18c863ddeee900bf74ddd8fed56a4aa2c9_10_10",line_type:"old",note:"test",noteable_id:2100002,noteable_type:"ReviewComment",outdated:!1,path:"src/config/passport.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:'@@ -4,7 +4,7 @@ import passportFacebook from "passport-facebook";\n import _ from "lodash";\n \n // import { User, UserType } from \'../models/User\';\n-import { User, UserDocument } from "../models/User";\n+import { User, UserDocument } from "../models/User"\n import { Request, Response, NextFunction } from "express";\n \n const LocalStrategy = passportLocal.Strategy;\n',id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-07-23T16:22:54+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},commit_id:null,created_at:"2021-07-23T16:22:44+0800",discussion_id:60,id:300002,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"666",noteable_id:2100002,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2021-07-23T16:22:44+0800"}],updated_at:"2021-07-23T16:23:01+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},body:null,created_at:"2022-01-19T15:20:27+08:00",id:4700002,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-19T15:21:02+0800",discussion_id:null,id:500004,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n+ },\n+ "keywords": [],\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_9",line_type:"new",note:"333",noteable_id:4700002,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n+ },\n+ "keywords": [],\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2022-01-19T15:21:02+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-19T15:20:44+0800",discussion_id:null,id:500003,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_7",line_type:"new",note:"222",noteable_id:4700002,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2022-01-19T15:20:44+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-19T15:20:28+0800",discussion_id:null,id:500002,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_5",line_type:"new",note:"111",noteable_id:4700002,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2022-01-19T15:20:28+0800"}],updated_at:"2022-01-19T15:22:55+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},body:null,created_at:"2022-01-26T02:16:02+08:00",id:4700010,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-26T11:01:34+0800",discussion_id:176,id:500029,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:'> \x3c!-- reply id="176" --\x3e\n> 测试\n\n123',noteable_id:4700010,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2022-01-26T11:01:34+0800"}],updated_at:"2022-01-26T11:01:39+08:00"}],notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-10-12T18:54:04+0800",discussion_id:null,id:121,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"[Force Push] To feat/123123 Of commit: daa3e131 - fix: li in pr desc",noteable_id:13055,noteable_type:"PullRequest",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-10-12T18:54:04+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-10-12T18:54:04+0800",discussion_id:null,id:120,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"review tasks reopened",noteable_id:13055,noteable_type:"PullRequest",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-10-12T18:54:04+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-10-12T18:52:43+0800",discussion_id:null,id:117,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Added 2 commits:\n\n* 0cee41f8 - feat: 123\n* 46e1c30f - 123",noteable_id:13055,noteable_type:"PullRequest",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-10-12T18:52:43+0800"}],pending_review:null},"/api/v3/projects/42422/pull_requests/13055/diffs/mark_files":[{file_path_sha:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d",mark_as_read:!0,updated_after_read:!1},{file_path_sha:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6",mark_as_read:!0,updated_after_read:!1}],"/webapi/projects/42422/pull_requests/13055/diffs/31918/changes_overview":[{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:1,deleted_file:!1,id:1075,mark_as_read:!0,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1076,mark_as_read:!1,new_file:!0,new_path:"a.md",old_path:"a.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1077,mark_as_read:!1,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1078,mark_as_read:!1,new_file:!0,new_path:"aa.md",old_path:"aa.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1079,mark_as_read:!0,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1080,mark_as_read:!1,new_file:!0,new_path:"apiMeta.json",old_path:"apiMeta.json",renamed_file:!1,too_large:!0,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!0,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1081,mark_as_read:!1,new_file:!0,new_path:"assets/logo_white.gif",old_path:"assets/logo_white.gif",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1082,mark_as_read:!1,new_file:!1,new_path:"assets/斋藤飞鸟1.jpg",old_path:"assets/斋藤飞鸟.jpg",renamed_file:!0,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1083,mark_as_read:!1,new_file:!0,new_path:"b.md",old_path:"b.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:3,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1084,mark_as_read:!1,new_file:!0,new_path:"gbk.ts",old_path:"gbk.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1085,mark_as_read:!1,new_file:!0,new_path:"hk-cdp_ALL_api#space#info#popUp.json",old_path:"hk-cdp_ALL_api#space#info#popUp.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:168,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1086,mark_as_read:!1,new_file:!0,new_path:"pom.xml",old_path:"pom.xml",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:4,deleted_file:!1,id:1087,mark_as_read:!1,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:265,deleted_file:!1,id:1088,mark_as_read:!1,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:49,deleted_file:!1,id:1089,mark_as_read:!1,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:1,deleted_file:!1,id:1090,mark_as_read:!1,new_file:!1,new_path:"src/public/css/main.scss",old_path:"src/public/css/main.scss",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:1,deleted_file:!1,id:1091,mark_as_read:!1,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:7,deleted_file:!1,id:1092,mark_as_read:!1,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"0",binary_file:!1,compare_diff_id:31918,del_line_num:22,deleted_file:!0,id:1093,mark_as_read:!1,new_file:!1,new_path:"tsconfig.json",old_path:"tsconfig.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:2,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:2,deleted_file:!1,id:1094,mark_as_read:!1,new_file:!1,new_path:"views/contact123.pug",old_path:"views/contact.pug",renamed_file:!0,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"0",binary_file:!1,compare_diff_id:31918,del_line_num:27,deleted_file:!0,id:1095,mark_as_read:!1,new_file:!1,new_path:"views/home.pug",old_path:"views/home.pug",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1096,mark_as_read:!1,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1,updated_after_read:!1}],"/api/v3/projects/42422/repository/blobs/df72e4d1c394af6d1c21cd042116f83a792fa8c6":'{\n"name": "bbb",\n"version": "2.0.0",\n"description": "",\n"main": "test.js",\n"scripts": {\n"test": "echo "Error: no test specified" && exit 1"\n},\n"keywords": [],\n"license": "ISC"\n}',"/api/v3/projects/42422/repository/blobs/87ed08a7245161fc9675981be01a6effe661b803":'{\n"name": "aaa",\n"version": "1.0.0",\n"description": "",\n"main": "index.js",\n"scripts": {\n"test": "echo "Error: no test specified" && exit 1"\n},\n"keywords": [],\n"author": "",\n"license": "ISC"\n}',"/webapi/projects/42422/pull_requests/13055/diffs/31918/changes/1079":{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n+ },\n+ "keywords": [],\n+ "author": "",\n+ "license": "ISC"\n+}\n',highlighted_diff:null,id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},"/api/v3/projects/42422/pull_requests/13055/reviews":{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.net",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:" "},body:null,created_at:"2022-07-15T16:57:34.591+08:00",id:5100024,pending:!0,pull_request_id:12600136,updated_at:"2022-07-15T16:57:34.591+08:00"},"/webapi/projects/42422/pull_requests/13055/diffs/20699/changes_overview":[{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:1,deleted_file:!1,id:550,mark_as_read:!0,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:551,mark_as_read:!1,new_file:!0,new_path:"a.md",old_path:"a.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:552,mark_as_read:!1,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:553,mark_as_read:!1,new_file:!0,new_path:"aa.md",old_path:"aa.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:554,mark_as_read:!0,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:555,mark_as_read:!1,new_file:!0,new_path:"apiMeta.json",old_path:"apiMeta.json",renamed_file:!1,too_large:!0,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!0,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:556,mark_as_read:!1,new_file:!0,new_path:"assets/logo_white.gif",old_path:"assets/logo_white.gif",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:557,mark_as_read:!1,new_file:!1,new_path:"assets/斋藤飞鸟1.jpg",old_path:"assets/斋藤飞鸟.jpg",renamed_file:!0,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:558,mark_as_read:!1,new_file:!0,new_path:"b.md",old_path:"b.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:3,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:559,mark_as_read:!1,new_file:!0,new_path:"gbk.ts",old_path:"gbk.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:168,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:560,mark_as_read:!1,new_file:!0,new_path:"pom.xml",old_path:"pom.xml",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:4,deleted_file:!1,id:561,mark_as_read:!0,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:265,deleted_file:!1,id:562,mark_as_read:!1,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:49,deleted_file:!1,id:563,mark_as_read:!1,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:1,deleted_file:!1,id:564,mark_as_read:!1,new_file:!1,new_path:"src/public/css/main.scss",old_path:"src/public/css/main.scss",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:1,deleted_file:!1,id:565,mark_as_read:!1,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:7,deleted_file:!1,id:566,mark_as_read:!1,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"0",binary_file:!1,compare_diff_id:20699,del_line_num:22,deleted_file:!0,id:567,mark_as_read:!1,new_file:!1,new_path:"tsconfig.json",old_path:"tsconfig.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:2,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:2,deleted_file:!1,id:568,mark_as_read:!1,new_file:!1,new_path:"views/contact123.pug",old_path:"views/contact.pug",renamed_file:!0,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"0",binary_file:!1,compare_diff_id:20699,del_line_num:27,deleted_file:!0,id:569,mark_as_read:!1,new_file:!1,new_path:"views/home.pug",old_path:"views/home.pug",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:570,mark_as_read:!1,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1,updated_after_read:!1}],"/api/v3/projects/42422/repository/blame":[{commit:{author:null,author_email:"taian.lta@test.com",author_name:"taian.lta",authored_date:"2020-08-18T12:09:32+0800",committed_date:"2020-08-18T12:09:32+0800",committer:null,committer_email:"taian.lta@test.com",committer_name:"taian.lta",created_at:"2020-08-18T12:09:32+0800",id:"7c501a19ae4644814782622af41b72e0f65eaacd",message:" feat: 123",parent_ids:null,short_id:"7c501a19",title:" feat: 123",tree_hash:null},lines:[{current_number:1,effect_line:12,previous_number:1}]},{commit:{author:null,author_email:"taian.lta@test.com",author_name:"taian.lta",authored_date:"2020-08-18T12:09:32+0800",committed_date:"2020-08-18T12:09:32+0800",committer:null,committer_email:"taian.lta@test.com",committer_name:"taian.lta",created_at:"2020-08-18T12:09:32+0800",id:"7c501a19ae4644814782622af41b72e0f65eaacd2",message:" feat: 123",parent_ids:null,short_id:"7c501a19",title:" feat: 123",tree_hash:null},lines:[{current_number:15,effect_line:10,previous_number:1}]}]}}}]); \ No newline at end of file +(this.webpackJsonp=this.webpackJsonp||[]).push([[45,27],{"/oTB":function(e,t,n){},"1xfW":function(e,t,n){"use strict";e.exports={extension:{publisher:"alex-ext-public",name:"markdown-language-features-worker",version:"1.53.0-patch.1"},packageJSON:{name:"markdown-language-features-worker",publisher:"alex",version:"1.53.0-patch.1",displayName:"%displayName%",description:"%description%",icon:"icon.png",activationEvents:["onLanguage:markdown","onCommand:markdown.preview.toggleLock","onCommand:markdown.preview.refresh","onCommand:markdown.showPreview","onCommand:markdown.showPreviewToSide","onCommand:markdown.showLockedPreviewToSide","onCommand:markdown.showSource","onCommand:markdown.showPreviewSecuritySelector","onCommand:markdown.api.render","onWebviewPanel:markdown.preview","onCustomEditor:vscode.markdown.preview.editor"],kaitianContributes:{workerMain:"./dist/browser/extension.js"},contributes:{commands:[{command:"markdown.showPreview",title:"%markdown.preview.title%",category:"Markdown",icon:{light:"./media/preview-light.svg",dark:"./media/preview-dark.svg"}},{command:"markdown.showPreviewToSide",title:"%markdown.previewSide.title%",category:"Markdown",icon:"$(open-preview)"},{command:"markdown.showLockedPreviewToSide",title:"%markdown.showLockedPreviewToSide.title%",category:"Markdown",icon:"$(open-preview)"},{command:"markdown.showSource",title:"%markdown.showSource.title%",category:"Markdown",icon:"$(go-to-file)"},{command:"markdown.showPreviewSecuritySelector",title:"%markdown.showPreviewSecuritySelector.title%",category:"Markdown"},{command:"markdown.preview.refresh",title:"%markdown.preview.refresh.title%",category:"Markdown"},{command:"markdown.preview.toggleLock",title:"%markdown.preview.toggleLock.title%",category:"Markdown"}],menus:{"editor/title":[{command:"markdown.showPreviewToSide",when:"editorLangId == markdown && !notebookEditorFocused",alt:"markdown.showPreview",group:"navigation"},{command:"markdown.showSource",when:"markdownPreviewFocus",group:"navigation"},{command:"markdown.preview.refresh",when:"markdownPreviewFocus",group:"1_markdown"},{command:"markdown.preview.toggleLock",when:"markdownPreviewFocus",group:"1_markdown"},{command:"markdown.showPreviewSecuritySelector",when:"markdownPreviewFocus",group:"1_markdown"}],"explorer/context":[{command:"markdown.showPreview",when:"resourceLangId == markdown",group:"navigation"}],"editor/title/context":[{command:"markdown.showPreview",when:"resourceLangId == markdown",group:"1_open"}],commandPalette:[{command:"markdown.showPreview",when:"editorLangId == markdown && !notebookEditorFocused",group:"navigation"},{command:"markdown.showPreviewToSide",when:"editorLangId == markdown && !notebookEditorFocused",group:"navigation"},{command:"markdown.showLockedPreviewToSide",when:"editorLangId == markdown && !notebookEditorFocused",group:"navigation"},{command:"markdown.showSource",when:"markdownPreviewFocus",group:"navigation"},{command:"markdown.showPreviewSecuritySelector",when:"editorLangId == markdown && !notebookEditorFocused"},{command:"markdown.showPreviewSecuritySelector",when:"markdownPreviewFocus"},{command:"markdown.preview.toggleLock",when:"markdownPreviewFocus"},{command:"markdown.preview.refresh",when:"editorLangId == markdown && !notebookEditorFocused"},{command:"markdown.preview.refresh",when:"markdownPreviewFocus"}]},keybindings:[{command:"markdown.showPreview",key:"shift+ctrl+v",mac:"shift+cmd+v",when:"editorLangId == markdown && !notebookEditorFocused"},{command:"markdown.showPreviewToSide",key:"ctrl+k v",mac:"cmd+k v",when:"editorLangId == markdown && !notebookEditorFocused"}],configuration:{type:"object",title:"Markdown",order:20,properties:{"markdown.styles":{type:"array",items:{type:"string"},default:[],description:"%markdown.styles.dec%",scope:"resource"},"markdown.preview.breaks":{type:"boolean",default:!1,description:"%markdown.preview.breaks.desc%",scope:"resource"},"markdown.preview.linkify":{type:"boolean",default:!0,description:"%markdown.preview.linkify%",scope:"resource"},"markdown.preview.fontFamily":{type:"string",default:"-apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', system-ui, 'Ubuntu', 'Droid Sans', sans-serif",description:"%markdown.preview.fontFamily.desc%",scope:"resource"},"markdown.preview.fontSize":{type:"number",default:14,description:"%markdown.preview.fontSize.desc%",scope:"resource"},"markdown.preview.lineHeight":{type:"number",default:1.6,description:"%markdown.preview.lineHeight.desc%",scope:"resource"},"markdown.preview.scrollPreviewWithEditor":{type:"boolean",default:!0,description:"%markdown.preview.scrollPreviewWithEditor.desc%",scope:"resource"},"markdown.preview.markEditorSelection":{type:"boolean",default:!0,description:"%markdown.preview.markEditorSelection.desc%",scope:"resource"},"markdown.preview.scrollEditorWithPreview":{type:"boolean",default:!0,description:"%markdown.preview.scrollEditorWithPreview.desc%",scope:"resource"},"markdown.preview.doubleClickToSwitchToEditor":{type:"boolean",default:!0,description:"%markdown.preview.doubleClickToSwitchToEditor.desc%",scope:"resource"},"markdown.preview.openMarkdownLinks":{type:"string",default:"inPreview",description:"%configuration.markdown.preview.openMarkdownLinks.description%",scope:"resource",enum:["inPreview","inEditor"],enumDescriptions:["%configuration.markdown.preview.openMarkdownLinks.inPreview%","%configuration.markdown.preview.openMarkdownLinks.inEditor%"]},"markdown.links.openLocation":{type:"string",default:"currentGroup",description:"%configuration.markdown.links.openLocation.description%",scope:"resource",enum:["currentGroup","beside"],enumDescriptions:["%configuration.markdown.links.openLocation.currentGroup%","%configuration.markdown.links.openLocation.beside%"]},"markdown.trace":{type:"string",enum:["off","verbose"],default:"off",description:"%markdown.trace.desc%",scope:"window"}}},configurationDefaults:{"[markdown]":{"editor.wordWrap":"on","editor.quickSuggestions":!1}},jsonValidation:[{fileMatch:"package.json",url:"./schemas/package.schema.json"}],"markdown.previewStyles":["./media/markdown.css","./media/highlight.css"],"markdown.previewScripts":["./media/index.js"],workerMain:"./dist/browser/extension.js"},browser:"./dist/browser/extension"},defaultPkgNlsJSON:{displayName:"Markdown Language Features",description:"Provides rich language support for Markdown.","markdown.preview.breaks.desc":"Sets how line-breaks are rendered in the markdown preview. Setting it to 'true' creates a
for newlines inside paragraphs.","markdown.preview.linkify":"Enable or disable conversion of URL-like text to links in the markdown preview.","markdown.preview.doubleClickToSwitchToEditor.desc":"Double click in the markdown preview to switch to the editor.","markdown.preview.fontFamily.desc":"Controls the font family used in the markdown preview.","markdown.preview.fontSize.desc":"Controls the font size in pixels used in the markdown preview.","markdown.preview.lineHeight.desc":"Controls the line height used in the markdown preview. This number is relative to the font size.","markdown.preview.markEditorSelection.desc":"Mark the current editor selection in the markdown preview.","markdown.preview.scrollEditorWithPreview.desc":"When a markdown preview is scrolled, update the view of the editor.","markdown.preview.scrollPreviewWithEditor.desc":"When a markdown editor is scrolled, update the view of the preview.","markdown.preview.title":"Open Preview","markdown.previewSide.title":"Open Preview to the Side","markdown.showLockedPreviewToSide.title":"Open Locked Preview to the Side","markdown.showSource.title":"Show Source","markdown.styles.dec":"A list of URLs or local paths to CSS style sheets to use from the markdown preview. Relative paths are interpreted relative to the folder open in the explorer. If there is no open folder, they are interpreted relative to the location of the markdown file. All '\\' need to be written as '\\\\'.","markdown.showPreviewSecuritySelector.title":"Change Preview Security Settings","markdown.trace.desc":"Enable debug logging for the markdown extension.","markdown.preview.refresh.title":"Refresh Preview","markdown.preview.toggleLock.title":"Toggle Preview Locking","configuration.markdown.preview.openMarkdownLinks.description":"Controls how links to other markdown files in the markdown preview should be opened.","configuration.markdown.preview.openMarkdownLinks.inEditor":"Try to open links in the editor","configuration.markdown.preview.openMarkdownLinks.inPreview":"Try to open links in the markdown preview","configuration.markdown.links.openLocation.description":"Controls where links in markdown files should be opened.","configuration.markdown.links.openLocation.currentGroup":"Open links in the active editor group.","configuration.markdown.links.openLocation.beside":"Open links beside the active editor."},pkgNlsJSON:{},nlsList:[],extendConfig:{},webAssets:["package.json","media/highlight.css","media/index.js","media/markdown.css","media/pre.js","media/preview-dark.svg","media/preview-light.svg","README.md","icon.png","schemas/package.schema.json","dist/browser/extension.js"],mode:"public"}},"3Diz":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=c(n("jsC+")),a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("qVdP");var i=n("cDcd"),s=c(i);n("MN5C");var o=c(n("cJAJ")),l=n("faye"),d=n("sYIF");function c(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.projectsId,n=e.branch,c=e.owner,u=e.changeBranch,m=e.branchList,p=e.tagflag,f=void 0===p||p,_=(0,i.useState)(n),g=a(_,2),h=g[0],w=g[1],b=(0,i.useState)(!1),y=a(b,2),v=y[0],k=y[1],x=(0,i.useRef)(null),T=(0,i.useRef)(null);(0,i.useEffect)((function(){document.addEventListener("click",E,!1)}),[]);var E=function(e){var t=e.target,n=(0,l.findDOMNode)(x.current),r=(0,l.findDOMNode)(T.current);if(n&&r){var a=n.contains(t),i=r.contains(t);a||i||k(!1)}};(0,i.useEffect)((function(){w(n)}),[n]);var j=s.default.createElement("div",{ref:x},s.default.createElement(o.default,{visible:v,changeBranch:function(e){k(!1);var t=(0,d.turnbar)(e);u(t)},tagflag:f,projectsId:t,owner:c,branchList:m}));return s.default.createElement(r.default,{placement:"bottomLeft",visible:v,overlay:j,overlayClassName:"branch-tagBox-list",trigger:["click"]},s.default.createElement("div",{className:"branch-tagBox",ref:T,onClick:function(){return k(!v)}},s.default.createElement("span",{className:"color-grey-9 mr3 ml8"},s.default.createElement("i",{className:"iconfont icon-fenzhi2 font-18"})),s.default.createElement("span",{className:"ant-dropdown-link task-hide",style:{fontWeight:"500",minWidth:"45px",maxWidth:"180px"}},h),s.default.createElement("i",{className:"showtag iconfont icon-sanjiaoxing-down font-15 color-grey-9 mr5 ml5 mt1"})))}},"760K":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n("cDcd"),i=(r=a)&&r.__esModule?r:{default:r},s=n("sYIF");t.default=function(e){var t=e.treeValuePath,n=e.returnUlr,r=e.returnMain,a=e.getPathUrl,o=e.identifier;return i.default.createElement("li",{className:"listtablepath"},i.default.createElement("p",null,i.default.createElement("a",{onClick:r,className:"color-blue"},o),t.map((function(e,r){return i.default.createElement(i.default.Fragment,{key:r},r===t.length-1?i.default.createElement("span",{className:"color-grey-6 subFileName",key:r},(0,s.returnbar)(e)):i.default.createElement("a",{onClick:function(){return n(""+a(t,r+1))},className:"color-blue subFileName"},(0,s.returnbar)(e)))}))))}},BTkp:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n-1)return void n(u.default.createElement("span",null,"分支名不能包含下列任何字符:^*\\/"))}}n()},n.state={submitType:"0",filename:"",isSpin:!1},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),d(t,[{key:"render",value:function(){var e=this,t=this.state,n=t.submitType,d=t.filename,c=t.isSpin,f=this.props.form.getFieldDecorator,_=this.props.match.params,h=_.branch,w=_.projectsId,b=_.owner,y=this.props,v=y.current_user,k=y.filepath,x=y.projectDetail,T=y.currentBranch,E=this.props.editor_type,j=T||h;return u.default.createElement("div",null,u.default.createElement("span",{className:"df",style:{alignItems:"center"}},u.default.createElement(p.Link,{to:"/"+(v&&v.login),className:"show-user-link"},u.default.createElement("img",{src:(0,m.getImageUrl)("/"+(v&&v.image_url)),alt:"",className:"screwImg"}),u.default.createElement("span",{className:"color-grey-3 ver-middle"},v&&v.username,":")),u.default.createElement("span",{className:"color-grey-8"},"提交变更")),u.default.createElement(r.default,{spinning:c},u.default.createElement("div",{className:"userScrew"},u.default.createElement("div",{className:"screwPanel"},u.default.createElement(o.default,null,u.default.createElement(o.default.Item,{style:{display:"upload"===E?"block":"none"}},f("path",{rules:[]})(u.default.createElement("div",{className:"setInputAddon"},u.default.createElement(l.default,{addonBefore:"/"+(x&&x.identifier)+"/",value:d||k,onChange:this.changeFileName,placeholder:"文件路径..."})))),u.default.createElement(o.default.Item,null,f("desc",{rules:[{required:!0,message:"请添加描述信息"}]})(u.default.createElement(g,{placeholder:"必填,描述主要修改类型和内容",authSize:{minRows:3,maxRows:5}}))),u.default.createElement(s.default.Group,{value:n,onChange:this.changeSubmittype},u.default.createElement(s.default,{value:"0",className:"mb10"},u.default.createElement("i",{className:"iconfont icon-banbenku font-16 mr5"}),"直接提交至",u.default.createElement("span",{className:"color-orange"},(0,m.returnbar)(j)),"分支"),u.default.createElement(s.default,{value:"1"},u.default.createElement(i.default,{type:"pull-request",className:"mr5"}),"为此提交创建一个",u.default.createElement("span",{className:"font-bd"},"新的分支"),"并发起合并请求")),"1"===n?u.default.createElement("div",{className:"mt15"},u.default.createElement(o.default.Item,{style:{paddingLeft:"24px"}},f("branchname",{rules:[{required:!0,message:"请输入分支名称"},{validator:this.checkBranchName}]})(u.default.createElement(l.default,{placeholder:"请输入分支名称",style:{width:"220px"}})))):""))),u.default.createElement("div",{className:"mt20"},u.default.createElement(a.default,{type:"primary",onClick:"update"===E?this.UpdateFile:this.subMitFrom,className:"mr30"},"提交变更"),u.default.createElement(a.default,{type:"primary grey",onClick:function(){e.props.history.push("/"+b+"/"+w)},className:"mr20"},"取消"))))}}]),t}(c.Component),w=o.default.create({name:"UserSubmitForm"})(h);t.default=w},Eitf:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=g(n("JsLm")),a=g(n("NJEC")),i=g(n("jsC+")),s=g(n("2fM7")),o=g(n("W9HT")),l=Object.assign||function(e){for(var t=1;t0?u.default.createElement(_.default,{menuList:e,hash:n.props.history.location.hash}):u.default.createElement(o.default,null)},n.state={value:void 0,language:void 0,languages:void 0,description:e.detail.replace_content,menuList:void 0},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),d(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.readOnly,o=t.detail,d=t.current_user,c=t.isManager,m=t.isDeveloper,_=t.currentBranch,g=t.platform,h=t.md,w=t.type,b=this.state,y=b.language,v=b.languages,k=b.description,x=d&&d.login&&(c||m),T=s.default.Option;return u.default.createElement(u.default.Fragment,null,u.default.createElement(r.default,{className:"griditemAnchor",offsetTop:58},u.default.createElement("div",{className:"griditemCate"},h&&n&&u.default.createElement(i.default,{overlay:this.menu(),trigger:["hover"],overlayClassName:"menuslist"},u.default.createElement("span",{className:"catelogue mr20"},u.default.createElement("i",{className:"iconfont icon-muluicon font-12 mr5"}),u.default.createElement("span",null,"目录"))),u.default.createElement("span",{className:"color-grey-6 font-16"},function(e){if(0===e)return"0 B";var t=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,t)).toFixed(2)+" "+["B","KB","MB","GB","TB","PB","EB","ZB","YB"][t]}(o&&o.size))),u.default.createElement("p",{className:"text-right"},x&&g&&u.default.createElement("div",null,n?u.default.createElement("span",null,o.direct_download?"":u.default.createElement("span",null,u.default.createElement("a",{onClick:function(){return e.DownLoadFile(o.download_url)},className:"ml20"},u.default.createElement("i",{className:"iconfont icon-xiazai1 font-15 color-grey-6"})),2!==w&&u.default.createElement("a",{onClick:function(){return e.EditFile(!1)},className:"ml20"},u.default.createElement("i",{className:"iconfont icon-bianji1 font-15 color-grey-6"})))):u.default.createElement(u.default.Fragment,null,u.default.createElement(s.default,{showSearch:!0,placeholder:"请选择文本语言",style:{width:200},value:y,onChange:this.select_language},u.default.createElement(T,{value:void 0},"请选择文本语言"),v&&v.map((function(e,t){return u.default.createElement(T,{value:e,key:t},e)}))),u.default.createElement("button",{type:"button",className:"ant-btn ant-btn-sm ml20",onClick:function(){return e.EditFile(!0)}},u.default.createElement("span",null,"取 消"))),2!==w&&u.default.createElement(a.default,{title:"确认删除这个文件?",className:"ml20",okText:"确定",cancelText:"取消",onConfirm:this.deleteFile},u.default.createElement("a",null,u.default.createElement("i",{className:"iconfont icon-shanchu font-15 color-grey-6"})))))),u.default.createElement("div",null,o.image_type?u.default.createElement("div",{className:"edu-txt-center pt20 pb20"},u.default.createElement("img",{alt:"",src:o.download_url,style:{maxWidth:"80%"}})):o.direct_download?u.default.createElement("div",{className:"mt20 text-center"},u.default.createElement("a",{href:o.download_url,className:"color-blue font-15"},"下载原始文件")):h&&n?u.default.createElement("div",{className:"files-md",id:"files-md"},u.default.createElement(f.default,{className:"file-md imageLayerParent",value:k,url:this.props.history.location})):u.default.createElement(p.default,l({},this.props,this.state,{language:y||"javascript",filepath:"/"+o.path,content:o.content,readOnly:n,editorType:"update",currentBranch:_,descName:o&&"Update "+o.name}))))}}]),t}(c.Component);t.default=w},FRFo:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n("3S7+")),a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("5Dmo");var i=n("cDcd"),s=o(i);function o(e){return e&&e.__esModule?e:{default:e}}function l(e){var t=e.beforeText,n=e.afterText,o=e.className,l=e.inputId,d=e.timeOut,c=(0,i.useState)((function(){return t})),u=a(c,2),m=u[0],p=u[1],f=(0,i.useCallback)((function(){var e=document.querySelector("#"+l);e?(e.select(),document.execCommand("copy")&&document.execCommand("copy"),document.getSelection().removeAllRanges(),p(n),d&&setTimeout((function(){p(t)}),1500)):console.error("您的CopyTool未设置正确的inputId")}),[]);return s.default.createElement(r.default,{placement:"top",title:m,onVisibleChange:function(){p(t)}},s.default.createElement("i",{className:"iconfont icon-fuzhiicon "+o,style:{color:"#466aff"},onClick:f}))}l.defaultProps={beforeText:"复制链接",afterText:"复制成功",className:"",inputId:"copyText",timeOut:!0},t.default=(0,i.memo)(l)},IEkG:function(e,t,n){"use strict";e.exports={extension:{publisher:"alex-ext-public",name:"json-language-features-worker",version:"1.53.0-patch.1"},packageJSON:{name:"json-language-features-worker",publisher:"alex",version:"1.53.0-patch.1",displayName:"%displayName%",description:"%description%",icon:"icons/json.png",activationEvents:["onLanguage:json","onLanguage:jsonc"],kaitianContributes:{workerMain:"client/dist/browser/jsonClientMain.js"},contributes:{configuration:{id:"json",order:20,type:"object",title:"JSON",properties:{"json.schemas":{type:"array",scope:"resource",description:"%json.schemas.desc%",items:{type:"object",default:{fileMatch:["/myfile"],url:"schemaURL"},properties:{url:{type:"string",default:"/user.schema.json",description:"%json.schemas.url.desc%"},fileMatch:{type:"array",items:{type:"string",default:"MyFile.json",description:"%json.schemas.fileMatch.item.desc%"},minItems:1,description:"%json.schemas.fileMatch.desc%"},schema:{$ref:"http://json-schema.org/draft-07/schema#",description:"%json.schemas.schema.desc%"}}}},"json.format.enable":{type:"boolean",scope:"window",default:!0,description:"%json.format.enable.desc%"},"json.trace.server":{type:"string",scope:"window",enum:["off","messages","verbose"],default:"off",description:"%json.tracing.desc%"},"json.colorDecorators.enable":{type:"boolean",scope:"window",default:!0,description:"%json.colorDecorators.enable.desc%",deprecationMessage:"%json.colorDecorators.enable.deprecationMessage%"},"json.maxItemsComputed":{type:"number",default:5e3,description:"%json.maxItemsComputed.desc%"},"json.schemaDownload.enable":{type:"boolean",default:!0,description:"%json.enableSchemaDownload.desc%",tags:["usesOnlineServices"]}}},configurationDefaults:{"[json]":{"editor.quickSuggestions":{strings:!0},"editor.suggest.insertMode":"replace"},"[jsonc]":{"editor.quickSuggestions":{strings:!0},"editor.suggest.insertMode":"replace"}},jsonValidation:[{fileMatch:"*.schema.json",url:"http://json-schema.org/draft-07/schema#"}],workerMain:"client/dist/browser/jsonClientMain.js"},browser:"./client/dist/browser/jsonClientMain"},defaultPkgNlsJSON:{displayName:"JSON Language Features",description:"Provides rich language support for JSON files.","json.schemas.desc":"Associate schemas to JSON files in the current project","json.schemas.url.desc":"A URL to a schema or a relative path to a schema in the current directory","json.schemas.fileMatch.desc":"An array of file patterns to match against when resolving JSON files to schemas. `*` can be used as a wildcard. Exclusion patterns can also be defined and start with '!'. A file matches when there is at least one matching pattern and the last matching pattern is not an exclusion pattern.","json.schemas.fileMatch.item.desc":"A file pattern that can contain '*' to match against when resolving JSON files to schemas.","json.schemas.schema.desc":"The schema definition for the given URL. The schema only needs to be provided to avoid accesses to the schema URL.","json.format.enable.desc":"Enable/disable default JSON formatter","json.tracing.desc":"Traces the communication between VS Code and the JSON language server.","json.colorDecorators.enable.desc":"Enables or disables color decorators","json.colorDecorators.enable.deprecationMessage":"The setting `json.colorDecorators.enable` has been deprecated in favor of `editor.colorDecorators`.","json.schemaResolutionErrorMessage":"Unable to resolve schema.","json.clickToRetry":"Click to retry.","json.maxItemsComputed.desc":"The maximum number of outline symbols and folding regions computed (limited for performance reasons).","json.maxItemsExceededInformation.desc":"Show notification when exceeding the maximum number of outline symbols and folding regions.","json.enableSchemaDownload.desc":"When enabled, JSON schemas can be fetched from http and https locations."},pkgNlsJSON:{},nlsList:[],extendConfig:{},webAssets:["package.json","server/dist/browser/jsonServerMain.js","README.md","icons/json.png","http://json-schema.org/draft-07/schema#","client/dist/browser/jsonClientMain.js"],mode:"public"}},IxBv:function(e,t,n){"use strict";e.exports={extension:{publisher:"alex-ext-public",name:"html-language-features-worker",version:"1.53.0-patch.1"},packageJSON:{name:"html-language-features-worker",publisher:"alex",version:"1.53.0-patch.1",displayName:"%displayName%",description:"%description%",icon:"icons/html.png",activationEvents:["onLanguage:html","onLanguage:handlebars"],kaitianContributes:{workerMain:"client/dist/browser/htmlClientMain.js"},contributes:{configuration:{id:"html",order:20,type:"object",title:"HTML",properties:{"html.customData":{type:"array",markdownDescription:"%html.customData.desc%",default:[],items:{type:"string"},scope:"resource"},"html.format.enable":{type:"boolean",scope:"window",default:!0,description:"%html.format.enable.desc%"},"html.format.wrapLineLength":{type:"integer",scope:"resource",default:120,description:"%html.format.wrapLineLength.desc%"},"html.format.unformatted":{type:["string","null"],scope:"resource",default:"wbr",markdownDescription:"%html.format.unformatted.desc%"},"html.format.contentUnformatted":{type:["string","null"],scope:"resource",default:"pre,code,textarea",markdownDescription:"%html.format.contentUnformatted.desc%"},"html.format.indentInnerHtml":{type:"boolean",scope:"resource",default:!1,markdownDescription:"%html.format.indentInnerHtml.desc%"},"html.format.preserveNewLines":{type:"boolean",scope:"resource",default:!0,description:"%html.format.preserveNewLines.desc%"},"html.format.maxPreserveNewLines":{type:["number","null"],scope:"resource",default:null,markdownDescription:"%html.format.maxPreserveNewLines.desc%"},"html.format.indentHandlebars":{type:"boolean",scope:"resource",default:!1,markdownDescription:"%html.format.indentHandlebars.desc%"},"html.format.endWithNewline":{type:"boolean",scope:"resource",default:!1,description:"%html.format.endWithNewline.desc%"},"html.format.extraLiners":{type:["string","null"],scope:"resource",default:"head, body, /html",markdownDescription:"%html.format.extraLiners.desc%"},"html.format.wrapAttributes":{type:"string",scope:"resource",default:"auto",enum:["auto","force","force-aligned","force-expand-multiline","aligned-multiple","preserve","preserve-aligned"],enumDescriptions:["%html.format.wrapAttributes.auto%","%html.format.wrapAttributes.force%","%html.format.wrapAttributes.forcealign%","%html.format.wrapAttributes.forcemultiline%","%html.format.wrapAttributes.alignedmultiple%","%html.format.wrapAttributes.preserve%","%html.format.wrapAttributes.preservealigned%"],description:"%html.format.wrapAttributes.desc%"},"html.format.wrapAttributesIndentSize":{type:["number","null"],scope:"resource",default:null,description:"%html.format.wrapAttributesIndentSize.desc%"},"html.format.templating":{type:["boolean"],scope:"resource",default:!1,description:"%html.format.templating.desc%"},"html.format.unformattedContentDelimiter":{type:["string"],scope:"resource",default:"",markdownDescription:"%html.format.unformattedContentDelimiter.desc%"},"html.suggest.html5":{type:"boolean",scope:"resource",default:!0,description:"%html.suggest.html5.desc%"},"html.validate.scripts":{type:"boolean",scope:"resource",default:!0,description:"%html.validate.scripts%"},"html.validate.styles":{type:"boolean",scope:"resource",default:!0,description:"%html.validate.styles%"},"html.autoClosingTags":{type:"boolean",scope:"resource",default:!0,description:"%html.autoClosingTags%"},"html.hover.documentation":{type:"boolean",scope:"resource",default:!0,description:"%html.hover.documentation%"},"html.hover.references":{type:"boolean",scope:"resource",default:!0,description:"%html.hover.references%"},"html.mirrorCursorOnMatchingTag":{type:"boolean",scope:"resource",default:!1,description:"%html.mirrorCursorOnMatchingTag%",deprecationMessage:"%html.mirrorCursorOnMatchingTagDeprecationMessage%"},"html.trace.server":{type:"string",scope:"window",enum:["off","messages","verbose"],default:"off",description:"%html.trace.server.desc%"}}},configurationDefaults:{"[html]":{"editor.suggest.insertMode":"replace"},"[handlebars]":{"editor.suggest.insertMode":"replace"}},jsonValidation:[{fileMatch:"*.html-data.json",url:"https://raw.githubusercontent.com/microsoft/vscode-html-languageservice/master/docs/customData.schema.json"},{fileMatch:"package.json",url:"./schemas/package.schema.json"}],workerMain:"client/dist/browser/htmlClientMain.js"},browser:"./client/dist/browser/htmlClientMain"},defaultPkgNlsJSON:{displayName:"HTML Language Features",description:"Provides rich language support for HTML and Handlebar files","html.customData.desc":"A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-html-languageservice/blob/master/docs/customData.md).\n\nVS Code loads custom data on startup to enhance its HTML support for the custom HTML tags, attributes and attribute values you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.","html.format.enable.desc":"Enable/disable default HTML formatter.","html.format.wrapLineLength.desc":"Maximum amount of characters per line (0 = disable).","html.format.unformatted.desc":"List of tags, comma separated, that shouldn't be reformatted. `null` defaults to all tags listed at https://www.w3.org/TR/html5/dom.html#phrasing-content.","html.format.contentUnformatted.desc":"List of tags, comma separated, where the content shouldn't be reformatted. `null` defaults to the `pre` tag.","html.format.indentInnerHtml.desc":"Indent `` and `` sections.","html.format.preserveNewLines.desc":"Controls whether existing line breaks before elements should be preserved. Only works before elements, not inside tags or for text.","html.format.maxPreserveNewLines.desc":"Maximum number of line breaks to be preserved in one chunk. Use `null` for unlimited.","html.format.indentHandlebars.desc":"Format and indent `{{#foo}}` and `{{/foo}}`.","html.format.endWithNewline.desc":"End with a newline.","html.format.extraLiners.desc":'List of tags, comma separated, that should have an extra newline before them. `null` defaults to `"head, body, /html"`.',"html.format.wrapAttributes.desc":"Wrap attributes.","html.format.wrapAttributes.auto":"Wrap attributes only when line length is exceeded.","html.format.wrapAttributes.force":"Wrap each attribute except first.","html.format.wrapAttributes.forcealign":"Wrap each attribute except first and keep aligned.","html.format.wrapAttributes.forcemultiline":"Wrap each attribute.","html.format.wrapAttributes.alignedmultiple":"Wrap when line length is exceeded, align attributes vertically.","html.format.wrapAttributes.preserve":"Preserve wrapping of attributes","html.format.wrapAttributes.preservealigned":"Preserve wrapping of attributes but align.","html.format.templating.desc":"Honor django, erb, handlebars and php templating language tags.","html.format.unformattedContentDelimiter.desc":"Keep text content together between this string.","html.format.wrapAttributesIndentSize.desc":"Alignment size when using 'force aligned' and 'aligned multiple' in `#html.format.wrapAttributes#` or `null` to use the default indent size.","html.suggest.html5.desc":"Controls whether the built-in HTML language support suggests HTML5 tags, properties and values.","html.trace.server.desc":"Traces the communication between VS Code and the HTML language server.","html.validate.scripts":"Controls whether the built-in HTML language support validates embedded scripts.","html.validate.styles":"Controls whether the built-in HTML language support validates embedded styles.","html.autoClosingTags":"Enable/disable autoclosing of HTML tags.","html.mirrorCursorOnMatchingTag":"Enable/disable mirroring cursor on matching HTML tag.","html.mirrorCursorOnMatchingTagDeprecationMessage":"Deprecated in favor of `editor.linkedEditing`","html.hover.documentation":"Show tag and attribute documentation in hover.","html.hover.references":"Show references to MDN in hover."},pkgNlsJSON:{},nlsList:[],extendConfig:{},webAssets:["package.json","server/dist/browser/htmlServerMain.js","README.md","icons/html.png","https://raw.githubusercontent.com/microsoft/vscode-html-languageservice/master/docs/customData.schema.json","schemas/package.schema.json","client/dist/browser/htmlClientMain.js"],mode:"public"}},KhU6:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n("/wGt")),a=u(n("W9HT")),i=u(n("MJZm")),s=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("bbsP"),n("T2oS"),n("ozfa");var o=n("cDcd"),l=u(o),d=n("sYIF");n("KkuB");var c=u(n("vDqi"));function u(e){return e&&e.__esModule?e:{default:e}}var m=i.default.TreeNode,p=i.default.DirectoryTree;t.default=function(e){var t=e.visible,n=e.onClose,i=e.branch,u=e.owner,f=e.projectsId,_=e.history,g=e.name,h=e.list,w=(0,o.useState)(void 0),b=s(w,2),y=b[0],v=b[1],k=(0,o.useState)(!0),x=s(k,2),T=x[0],E=x[1],j=(0,o.useState)(!0),S=s(j,2),q=S[0],C=S[1];return(0,o.useEffect)((function(){var e;t&&q&&(h?(v(h),E(!1)):(e="/"+u+"/"+f+"/entries.json",c.default.get(e,{params:{ref:i}}).then((function(e){e&&v(e.data.entries),E(!1)})).catch((function(e){}))),C(!1))}),[t]),l.default.createElement(r.default,{placement:"left",visible:t,closable:!1,onClose:n,width:"320px",maskStyle:{backgroundColor:"rgba(0,0,0,0.09)"}},l.default.createElement(a.default,{spinning:T},l.default.createElement("div",{className:"drawerHead"},l.default.createElement("p",{className:"font-20"},g),l.default.createElement("p",null,l.default.createElement("i",{class:"iconfont icon-fenzhi2 font-18 color-grey-9 mr3"}),i)),l.default.createElement(p,{loadData:function(e){return new Promise((function(t){if(e.props.children)t();else{var n=[],r="/"+u+"/"+f+"/sub_entries.json";c.default.get(r,{params:{filepath:e.props.dataRef.path,ref:i,type:"dir"}}).then((function(e){e&&(n=e.data.entries)})).catch((function(e){})),setTimeout((function(){e.props.dataRef.children=n,v([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&t.map((function(t){return l.default.createElement(m,{title:t.name,key:t.key,dataRef:t,isLeaf:"file"===t.type},e(t.children))}))}(y))))}},KusB:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n("cDcd"),i=(r=a)&&r.__esModule?r:{default:r},s=n("eO8H"),o=n("PhNK"),l=n("QuzT");var d={submodule:"icon-file-submodule font-17",file:"icon-wenjian6 font-15 color-blue-file",dir:"icon-wenjianjia4 font-15 color-blue_4C"};t.default=function(e){var t=e.item,n=e.goToSubRoot,r=e.owner,c=e.projectsId,u=e.platform;return(0,a.useEffect)((function(){}),[]),i.default.createElement("li",null,i.default.createElement("span",null,!u&&t.image_type?i.default.createElement("span",null,i.default.createElement("i",{className:"iconfont "+d[""+t.type]+" mr8"}),t.name):i.default.createElement("a",{onClick:function(){return n(t.path,t.type,t.name)},className:"submodule"===t.type?"submoduleStyle":""},i.default.createElement("i",{className:"iconfont "+d[""+t.type]+" mr8"}),t.name)),i.default.createElement("span",{title:"init project"},i.default.createElement(s.Link,{to:"/"+r+"/"+c+"/commits/"+(0,o.truncateCommitId)(""+(t.commit&&t.commit.sha)),title:t.commit&&t.commit.message},(0,l.getEmoji)(function(e){var t=e.match(/:([a-zA-Z_]+):/g);if(t&&t.length>0)for(var n=0;n0?l.default.createElement(u.default,{menuList:h,hash:n.location.hash}):l.default.createElement(i.default,null),trigger:["hover"],overlayClassName:"menuslist"},l.default.createElement("span",{className:"catelogue"},l.default.createElement("i",{className:"iconfont icon-muluicon font-12 mr5"}),l.default.createElement("span",null,"目录"))),l.default.createElement("span",{className:"commonBox-title-read"},l.default.createElement("a",{href:"#readme "},"README.md"))),t?l.default.createElement("a",{className:"ml20 pull-right",onClick:function(){return f(m&&m.path,!1)}},l.default.createElement("i",{className:"iconfont icon-a-bianji font-17 color-grey-6"})):"")),v&&l.default.createElement("div",{className:"commonBox-info"},l.default.createElement(d.default,{className:"break_word_comments imageLayerParent readmeFile",value:v,url:n.location})))}},PhNK:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.truncateCommitId=function(e){return e&&e.length>11?e.substring(0,10):e},t.timeFormat=function(e){var t=new Date(1e3*e),n=t.getHours()<10?"0".concat(t.getHours()):t.getHours(),r=t.getMinutes()<10?"0".concat(t.getMinutes()):t.getMinutes();return t.getFullYear()+"-"+(t.getMonth()+1)+"-"+t.getDate()+" "+n+":"+r}},"R/Rt":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t0&&i.default.createElement("span",{className:"infoCount"},r.total_count)),r&&r.total_count>0?r.list.map((function(e,r){return 0===r&&i.default.createElement(s.AlignTop,{className:"mt10"},i.default.createElement("div",null,i.default.createElement("p",{className:"font-16 color-grey-6",style:{display:"flex",alignItems:"center"}},i.default.createElement(o.Link,{to:{pathname:"/"+t+"/"+n+"/releases",query:{turnFromNew:!0}},style:{maxWidth:"200px",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}},e.name),i.default.createElement("span",{className:"font-12 laterest ml5"},"最新")),i.default.createElement("p",{className:"color-grey-3 font-12"},e.created_at)))})):i.default.createElement("div",{className:"mt8"},"您暂未发布任何版本",a&&i.default.createElement(o.Link,{className:"color-blue ml20",to:{pathname:"/"+t+"/"+n+"/releases/new",state:{stable:!0}}},"创建新版本")))}},YIv0:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=d(n("PArb")),a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("/zsF");var i=n("cDcd"),s=d(i),o=n("spEH"),l=d(n("vDqi"));function d(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.owner,n=e.projectsId,d=(0,i.useState)(void 0),c=a(d,2),u=c[0],m=c[1];function p(){for(var e="#",t=["1","2","3","4","4","5","6","7","8","9","a","b","c","d","e","f"],n=0;n<6;n++){e+=t[parseInt(16*Math.random())]}return e}return(0,i.useEffect)((function(){var e;e="/"+t+"/"+n+"/languages.json",l.default.get(e).then((function(e){if(e){var t=e.data;if(t){var n=[];Object.keys(t).map((function(e,r){n.push({name:e,percent:t[e],color:p()})})),m(n)}}})).catch((function(e){}))}),[]),u&&u.length>0?s.default.createElement("div",null,s.default.createElement(r.default,null),s.default.createElement("p",{className:"font-16 color-ooo aboutSubTitle"},"开发语言"),s.default.createElement("div",{className:"progress"},u&&u.map((function(e,t){return s.default.createElement("span",{key:e.id||t,style:{width:e.percent,backgroundColor:e.color}})}))),u&&u.length>0&&s.default.createElement(o.FlexAJ,{className:"progresstip"},u.map((function(e,t){return s.default.createElement("span",{key:e.id||t},s.default.createElement("i",{className:"zero",style:{backgroundColor:""+e.color}}),s.default.createElement("span",null,e.name),s.default.createElement("span",null,e.percent))})))):""}},YXVS:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.underscoreToCamelcase=function e(t){if(Array.isArray(t))return t.map((function(t){return e(t)}));if("object"!==(void 0===t?"undefined":r(t))||null==t)return t;var n={};for(var a in t)if(!t.hasOwnProperty||t.hasOwnProperty(a)){var i=a.replace(/_([a-z])/g,(function(e){return e[1].toUpperCase()}));n[i]=e(t[a])}return n},t.camelcaseToUnderscore=function e(t){if(Array.isArray(t))return t.map((function(t){return e(t)}));if("object"!==(void 0===t?"undefined":r(t))||null==t)return t;var n={};for(var a in t)if(!t.hasOwnProperty||t.hasOwnProperty(a)){var i=a.replace(/([a-z][A-Z])/g,(function(e){return e[0]+"_"+e[1].toLowerCase()}));n[i]=e(t[a])}return n}},cJAJ:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n("W9HT")),a=u(n("BvKs")),i=u(n("5rEg")),s=u(n("14Xm")),o=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("T2oS"),n("lUTK"),n("5NDa");var l=n("cDcd"),d=u(l),c=n("tnhM");function u(e){return e&&e.__esModule?e:{default:e}}function m(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function r(a,i){try{var s=t[a](i),o=s.value}catch(e){return void n(e)}if(!s.done)return Promise.resolve(o).then((function(e){r("next",e)}),(function(e){r("throw",e)}));e(o)}("next")}))}}t.default=function(e){var t,n,u=(t=m(s.default.mark((function e(t,n){var r;return s.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,c.getBranch)(t,n);case 2:r=e.sent,M(r),L(r),P(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)}),p=(n=m(s.default.mark((function e(t,n){var r;return s.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,c.getTag)(t,n);case 2:r=e.sent,M(r),L(r),P(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)}),f=e.changeBranch,_=e.tagflag,g=e.projectsId,h=e.owner,w=e.visible,b=(0,l.useState)(void 0),y=o(b,2),v=y[0],k=y[1],x=(0,l.useState)(0),T=o(x,2),E=T[0],j=T[1],S=(0,l.useState)(!0),q=o(S,2),C=q[0],P=q[1],N=(0,l.useState)(void 0),R=o(N,2),O=R[0],M=R[1],D=(0,l.useState)(void 0),F=o(D,2),A=F[0],L=F[1],U=(0,l.useState)("branch"),I=o(U,2),J=I[0],W=I[1];return(0,l.useEffect)((function(){w&&(W("branch"),u(g,h),P(!0))}),[w]),d.default.createElement("div",{className:"overlayBranch"},d.default.createElement("div",{className:"padding15",style:{paddingBottom:"0px"}},d.default.createElement(i.default,{prefix:d.default.createElement("i",{className:"iconfont icon-sousuo_icon1 font-14"}),placeholder:"请输入分支"+(_?"或标签":"")+"名称搜索",autocomplete:"off",className:"OptionsInput",value:v,onChange:function(e){k(e.target.value);var t=e.target.value?O&&O.length>0&&O.filter((function(t){return t.name.indexOf(e.target.value)>-1})):O;L(t)}})),d.default.createElement(a.default,{mode:"horizontal",className:"navUl",selectedKeys:[J],onClick:function(e){W(e.key),P(!0),"branch"===e.key?(u(g,h),j(0)):(p(g,h),j(1))}},d.default.createElement(a.default.Item,{key:"branch"},"分支"),_&&d.default.createElement(a.default.Item,{key:"tag"},"标签")),d.default.createElement(r.default,{spinning:C},d.default.createElement("ul",{className:"OptionsUl",id:"ul-btn"},A&&A.length>0&&A.map((function(e,t){return d.default.createElement("li",{key:t,onClick:function(){return t=e.name,void f(t);var t}},d.default.createElement("a",{className:"task-hide ulALink"},e.name))})),A&&0===A.length&&d.default.createElement("p",{className:"listTips"},"暂无",v,0===E?"分支":"标签","~"))))}},dEUZ:function(e,t,n){},eIPa:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=g(n("diRs")),a=g(n("W9HT")),i=g(n("2/Rp")),s=g(n("14Xm")),o=Object.assign||function(e){for(var t=1;t0&&c.default.createElement("p",{className:"task-hide",style:{maxWidth:"215px"}},"所属组织:",function(e){var t="";return e.map((function(e){t=t+e.name+"、"})),t&&t.substr(0,t.length-1)}(e.organizations))))),c.default.createElement(u.AlignCenter,{className:"menuinfos"},c.default.createElement(m.Link,{to:"/"+e.login+"/projects"},c.default.createElement("span",null,e.projects_count),c.default.createElement("span",null,"项目数")),c.default.createElement(m.Link,{to:"/"+e.login+"/followers"},c.default.createElement("span",null,e.followers_count),c.default.createElement("span",null,"粉丝数")),c.default.createElement(m.Link,{to:"/"+e.login+"/following"},c.default.createElement("span",null,e.following_count),c.default.createElement("span",null,"关注数"))),c.default.createElement("div",{className:"pb20",style:{display:"flex",justifyContent:"center"}},b&&b===e.login?c.default.createElement(i.default,{className:"currentBtn"},"当前用户"):e.is_watch?c.default.createElement(i.default,{type:"default",onClick:function(){return Z(!1,e.login)}},"已关注"):c.default.createElement(i.default,{type:"primary",onClick:function(){return Z(!0,e.login)}},"关注TA")));D(t)}}function Z(e,t){(0,_.default)({method:e?"post":"delete",url:"/watchers/"+(e?"follow":"unfollow")+".json",params:{target_type:"user",id:t}}).then((function(n){if(n&&(0===n.data.status||2===n.data.status)){var r=k&&k.filter((function(e){return e.login===t}));r&&(r[0].is_watch=e),z(r[0])}})).catch((function(e){console.log(e)}))}function Q(e,t,n){t!==L&&U(t);var r=j.concat();r.map((function(e){return e.visible=!1})),e&&(r[n].visible=e),r.splice(),S(r)}return(0,d.useEffect)((function(){var e;e="/"+h+"/"+w+"/contributors.json",_.default.get(e).then((function(e){e&&(N(e.data.total_count),S(e.data.list))})).catch((function(e){}))}),[]),(0,d.useEffect)((function(){L?g(L):D(void 0)}),[L]),P>0?c.default.createElement("div",{className:"halfs"},c.default.createElement(m.Link,{to:"/"+h+"/"+w+"/contribute",className:"font-16 color-ooo hoverA"},c.default.createElement("span",null,"贡献者"),P>0&&c.default.createElement("span",{className:"infoCount"},P)),c.default.createElement("div",{className:"attrPerson",onMouseLeave:function(){return Q(!1)}},j&&j.length>0&&j.map((function(e,t){return c.default.createElement(r.default,{content:M,visible:e.visible,overlayClassName:"menuPanels",placement:"top"},c.default.createElement(m.Link,{key:t,to:"/"+e.login},c.default.createElement("img",{src:(0,p.getImageUrl)("/"+e.image_url),alt:"",onMouseOver:function(){return Q(!0,e.login,t)}})))})))):""}},gUMM:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=O(n("W9HT")),a=O(n("PArb")),i=O(n("2/Rp")),s=O(n("jsC+")),o=O(n("BvKs")),l=Object.assign||function(e){for(var t=1;t0){var e=Jt.filter((function(e){return"pulls"===e.menu_name})),t=Jt.filter((function(e){return"issues"===e.menu_name}));e&&0===e.length&&jt(!1),t&&0===t.length&&Pt(!1)}}),[Jt]),(0,c.useEffect)((function(){Lt&&(M(Lt),nt(Lt.description),st(Lt.website),ct(Lt.lesson_url),wt(Lt.default_branch),L(Lt.invite_code))}),[Lt]),(0,c.useEffect)((function(){Q(J?decodeURIComponent(J).split("/"):void 0)}),[J]),(0,c.useEffect)((function(){if(Ft&&Dt&&ht){var e=(0,p.turnbar)(At);if(Ut.indexOf("/"+Dt+"/"+Ft)>-1&&Ut.indexOf("/tree/"+e+"/")>-1){var t=Ut.split("/tree/"+e+"/")[1];W(t),function(e,t){Ie(!0);var n="/"+Dt+"/"+Ft+"/sub_entries.json";b.default.get(n,{params:{filepath:(0,p.returnbar)(e),ref:t||At,type:re}}).then((function(t){if(t){var n=t.data.entries;n.type?(ye(void 0),Te(n),ae(n.type),ft(void 0)):(Te(void 0),ye(n),ae("dir"),Wt(e,At||ht));var r=t.data.last_commit;G(r&&r.commit),ee(r&&r.committer),He(!1),Fe(!0),Fe(!vt),le(!0)}setTimeout((function(){Ie(!1)}),500)})).catch((function(e){Ie(!1)}))}(t,At),ae("file")}else W(void 0),function(e){Ie(!0);var t="/"+Dt+"/"+Ft+"/entries.json";b.default.get(t,{params:{ref:e}}).then((function(e){if(e){ge(e.data.commits_count),ye(e.data.entries),Te(void 0),Re(e.data.tar_url),qe(e.data.zip_url);var t=e.data.last_commit;G(t&&t.commit),ee(t&&t.committer),He(!0),Fe(!0),kt(!1),le(!0),Wt("",At||ht)}setTimeout((function(){Ie(!1)}),500)})).catch((function(e){Ie(!1)}))}(At||ht),ae("dir")}}),[Ft,Dt,Ut,ht]),(0,c.useEffect)((function(){b.default.get("/"+Dt+"/"+Ft+"/releases.json").then((function(e){if(e&&e.data){var t={list:e.data.releases,total_count:e.data.releases&&e.data.releases.length};Mt(t)}}))}),[]),(0,c.useEffect)((function(){if(O&&K){var e=document.getElementById("ptxt");if(e)e.offsetHeight>36&&me(!0)}}),[O,K]);var Zt,Qt,Vt=u.default.createElement(g.default,{http_url:O&&O.clone_url,ssh_url:O&&e&&e.platform&&O.ssh_url,zip_url:e&&e.platform&&Se,tar_url:e&&e.platform&&Ne,showNotification:e.showNotification}),Ht=xe&&xe.name,Kt=Ht&&".md"===Ht.substring(Ht.length-3,Ht.length),Gt=e.current_user,Yt=e.checkIfLogin,Xt=e.showLoginDialog,$t=Gt&&Gt.login&&Ct,en=O&&O.permission&&"Reporter"!==O.permission&&2!==O.type&&Et&&e.platform,tn="dir"===re&&O&&2!==O.type&&(O.permission&&"Reporter"!==O.permission||Gt&&Gt.admin);return u.default.createElement(m.WhiteBack,null,u.default.createElement(q.default,{desc:tt,website:it,lesson_url:dt,visible:Ye,onCancel:function(){return Xe(!1)},onOk:function(e,t,n){var r="/"+Dt+"/"+Ft+".json";b.default.put(r,{description:e,website:t||"",lesson_url:n||""}).then((function(e){e&&e.data&&e.data.id&&(nt(e.data.description),st(e.data.website),ct(e.data.lesson_url))}))}}),u.default.createElement(r.default,{spinning:Ue},(be||xe)&&u.default.createElement(u.default.Fragment,null,u.default.createElement(S.default,{history:e.history,owner:Dt,projectsId:Ft,name:O&&O.name,branch:At||ht,visible:Be,onClose:function(){return ze(!1)},list:Ve?be:void 0}),u.default.createElement("div",{className:"drawerBtn",onClick:function(){return ze(!0)}},u.default.createElement("i",{className:"iconfont icon-zuohuaicon font-14"}),u.default.createElement("span",null,"目录"))),u.default.createElement("div",{style:{minHeight:"500px"}},O&&u.default.createElement(m.Box,{className:"Panels"},u.default.createElement(m.LongWidth,null,u.default.createElement("div",{className:"panelmenu"},u.default.createElement(m.FlexAJ,null,u.default.createElement(m.AlignCenter,null,u.default.createElement("div",{className:"mr30"},e&&e.platform?u.default.createElement(h.default,{repo_id:O&&O.repo_id,projectsId:Ft,branch:At||ht,changeBranch:function(t){var n="/"+Dt+"/"+Ft+(t&&"/tree/"+t)+(J?"/"+J:"");e.history.push(n)},owner:Dt,history:e.history,branchList:O&&O.branches&&O.branches.list}):u.default.createElement("span",null,"分支:",u.default.createElement("span",{className:"color-grey-6"},At||ht))),Z&&Z.length>0?u.default.createElement(y.default,{identifier:O&&O.identifier,treeValuePath:Z,returnUlr:function(t){var n=(0,p.turnbar)(At);ae("dir"),e.history.push("/"+Dt+"/"+Ft+"/tree"+(n?"/"+n:"")+"/"+t)},returnMain:function(){W(void 0);var t=At||ht,n=(0,p.turnbar)(t);e.history.push("/"+Dt+"/"+Ft+"/tree/"+n)},getPathUrl:function(e,t){if(e&&e.length>0&&t){for(var n="",r=0;r0||xe?u.default.createElement("div",{className:"listtable"},(K&&K.message||$)&&u.default.createElement("div",{className:"listtablehead"},$&&u.default.createElement(w.default,{url:(0,p.getImageUrl)("/"+$.image_url),name:$.name,id:$.id,login:$.login}),K.message&&u.default.createElement("div",{className:ue&&oe?"ellipsistxt hidetxt":"ellipsistxt"},u.default.createElement("pre",{id:"ptxt"},u.default.createElement(f.Link,{to:"/"+Dt+"/"+Ft+"/commits/"+(0,_.truncateCommitId)(K.sha)},u.default.createElement(R.default,{value:K.message})))),ue&&u.default.createElement("span",{className:"ellipsis",onClick:function(){return function(e){le(!e)}(oe)}},u.default.createElement("i",{className:"iconfont icon-shenglvehao"})),u.default.createElement("span",{className:"ml20 color-grey-6 font-12 mt3"},K.time_from_now),_e?u.default.createElement(f.Link,{to:"/"+Dt+"/"+Ft+"/commits/branch/"+(0,p.turnbar)(At||ht),className:"ml20 color-grey-3",style:{height:"28px",lineHeight:"28px"}},u.default.createElement("i",{className:"iconfont icon-tijiaoicon mr3 font-16"}),u.default.createElement("span",{style:{fontWeight:"500"}},_e,"次提交")):""),u.default.createElement("ul",{className:"listtablebody"},be&&be.length>0&&be.map((function(t,n){return u.default.createElement(v.default,{key:t.id||n,owner:Dt,item:t,projectsId:Ft,goToSubRoot:Bt,platform:e.platform})})),xe&&u.default.createElement(x.default,l({},e,{detail:xe,readOnly:De,md:Kt,onEdit:function(e){Fe(e),kt(!1)},currentBranch:At||ht,branch:At||ht,type:O.type})))):"",be&&0===be.length&&!xe?u.default.createElement(C.default,{_html:"暂未发现文件"}):"",pt&&pt.replace_content?u.default.createElement(k.default,{ChangeFile:function(t,n){var r=At||ht,a=(0,p.turnbar)(r);e.history.push("/"+Dt+"/"+Ft+"/tree/"+a+"/"+t),ae("file"),kt(!0)},readme:pt,operate:e&&(e.isManager||e.isDeveloper)&&2!==O.type,history:e.history}):"")),!(Z&&Z.length>0)&&!xe&&u.default.createElement(m.ShortWidth,null,u.default.createElement(m.Gap,{style:{paddingLeft:"30px"}},u.default.createElement("div",{className:"panelmenu"},u.default.createElement(m.FlexAJ,{className:"font-18 color-ooo mb20",style:{lineHeight:"28px"}},"关于",O.permission&&("Admin"===O.permission||"Owner"===O.permission||"Manager"===O.permission)&&u.default.createElement("i",{onClick:function(){return Xe(!0)},className:"iconfont icon-a-shezhi color-grey-9 font-15 pointer"})),tt&&u.default.createElement("p",{className:"font-14 color-grey-3 mb15 task-hide-2",style:{lineHeight:"24px",WebkitLineClamp:"4",textAlign:"justify",wordBreak:"break-all"},title:tt},tt),it&&u.default.createElement("div",{className:"color-grey-6 df pinfos mb5"},u.default.createElement("i",{className:"iconfont icon-lianjie2 font-15 mr10"}),u.default.createElement("a",{href:it,target:"_blank",style:{wordBreak:"break-all",lineHeight:"20px",marginTop:"5px",textDecoration:"underline"}},it)),u.default.createElement("div",{className:"pinfos mb5"},u.default.createElement("i",{className:"iconfont icon-zishuwenjian_icon font-15 mr10"}),u.default.createElement("a",{href:"#readme"},"README.md")),u.default.createElement("div",{className:"color-grey-6 mb5"},u.default.createElement("i",{className:"iconfont icon-neicunicon font-15 mr10"}),u.default.createElement("span",null,O&&O.size)),O&&O.license_name&&u.default.createElement("div",{className:"pinfos"},u.default.createElement("i",{className:"iconfont icon-xieyiicon font-16 mr10"}),u.default.createElement(f.Link,{to:"/"+Dt+"/"+Ft+"/tree/"+(0,p.turnbar)(At||ht)+"/LICENSE",className:"color-grey-6"},O.license_name))),A&&u.default.createElement("div",null,u.default.createElement(a.default,null),u.default.createElement(P.default,{code:A})),dt&&u.default.createElement("div",null,u.default.createElement(a.default,null),u.default.createElement("p",{className:"font-16 color-ooo"},"实践课程"),u.default.createElement("a",{href:dt,target:"_blank",className:"color-grey-6",style:{textDecoration:"underline",wordBreak:"break-all"}},dt)),Ot&&e.platform&&u.default.createElement(u.default.Fragment,null,u.default.createElement(a.default,null),u.default.createElement(T.default,{owner:Dt,projectsId:Ft,releaseVersions:Ot,history:e.history,distribution:It})),u.default.createElement(E.default,{owner:Dt,projectsId:Ft}),u.default.createElement(j.default,{owner:Dt,projectsId:Ft})))))))}},j5x1:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n-1}));b(n)}else b(t)},prefix:o.default.createElement("i",{className:"iconfont icon-sousuo_icon1 font-14"})})),w&&w.length>0?o.default.createElement("div",{className:"anchorBox"},o.default.createElement(a.default,{affix:!1,onChange:function(e){u(e)},offsetTop:140},w.map((function(e,t){return o.default.createElement("div",{style:{paddingLeft:15*e.level+"px"},className:c===e.href?"items active":"items"},o.default.createElement(d,{href:"#"+e.text,title:e.text}))})))):"")}},tnhM:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getUser=t.getSubEntries=t.getHooks=t.getTag=t.getBranch=void 0;var r=i(n("14Xm")),a=i(n("vDqi"));function i(e){return e&&e.__esModule?e:{default:e}}function s(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function r(a,i){try{var s=t[a](i),o=s.value}catch(e){return void n(e)}if(!s.done)return Promise.resolve(o).then((function(e){r("next",e)}),(function(e){r("throw",e)}));e(o)}("next")}))}}var o,l,d,c,u;t.getBranch=(o=s(r.default.mark((function e(t,n){var i;return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+n+"/"+t+"/branches.json");case 2:return i=e.sent,e.abrupt("return",i&&i.data);case 4:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return o.apply(this,arguments)}),t.getTag=(l=s(r.default.mark((function e(t,n){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+n+"/"+t+"/tags.json",{params:{only_name:!0}});case 2:return e.abrupt("return",e.sent.data.tags);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return l.apply(this,arguments)}),t.getHooks=(d=s(r.default.mark((function e(t,n){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/projects/"+t+"/hooks.json",{params:n});case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return d.apply(this,arguments)}),t.getSubEntries=(c=s(r.default.mark((function e(t,n,i){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+t+"/"+n+"/sub_entries.json",{params:i});case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t,n){return c.apply(this,arguments)}),t.getUser=(u=s(r.default.mark((function e(t){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/users/"+t+"/hovercard.json");case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e){return u.apply(this,arguments)})},w9N6:function(e,t,n){"use strict";e.exports={extension:{publisher:"alex-ext-public",name:"ide-dark-theme",version:"2.4.0"},packageJSON:{publisher:"kaitian",name:"ide-dark-theme",version:"2.4.0",displayName:"IDE UI Theme",description:"IDE UI Theme",contributes:{themes:[{id:"opensumi-dark",label:"OpenSumi Dark",uiTheme:"vs-dark",path:"./themes/dark/plus.json"},{id:"opensumi-light",label:"OpenSumi Light",uiTheme:"vs",path:"./themes/light/plus.json"}]}},pkgNlsJSON:{},nlsList:[],extendConfig:{},webAssets:[],mode:"public"}},yEiv:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.apiService=void 0;var r=n("kg56");t.apiService={get:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,r.request)(e,{method:"GET",params:t},n)},post:function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return(0,r.request)(e,{method:"POST",params:t,data:n},a)},put:function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return(0,r.request)(e,{method:"PUT",params:t,data:n},a)},delete:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,r.request)(e,{method:"DELETE",params:t},n)}}},z2sw:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(n("cDcd"));n("dEUZ");var a=i(n("FRFo"));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.code,n=e.className;return r.default.createElement("div",{className:n},r.default.createElement("span",{className:"font-16 color-ooo"},"邀请码"),r.default.createElement("div",null,r.default.createElement("input",{value:t,id:"devitecode",style:{width:"62px",border:"none",cursor:"default"},readOnly:!0}),r.default.createElement(a.default,{timeOut:!0,beforeText:r.default.createElement("p",{className:"edu-txt-center"},"可以通过邀请码邀请成员加入项目",r.default.createElement("br",null),"点击复制邀请码。"),className:"ml8 font-16",inputId:"devitecode"})))}},zdCV:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.mockService={"/webapi/projects/Gitlink/forgeplus/":{encoding:"UTF-8",id:42422,import_status:"none",namespace:{avatar:{url:null},created_at:"2020-07-02T10:34:49+0800",description:"",id:23159,name:"ide-s",owner:null,owner_id:null,path:"ide-s",permission:null,public:!1,state:null,tenant:{created_at:null,id:0,name:"git",path:"git",updated_at:null,while_list_ip:null},type:"Group",updated_at:"2020-07-02T10:34:49+0800",web_url:"http://gitlab-test.alipay.net/groups/ide-s"},path:"TypeScript-Node-Starter",path_with_namespace:"ide-s/TypeScript-Node-Starter"},"/api/v3/user":{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",name:"testName",role:0,state:"active",theme_id:2,username:"guqiankun.gqk",web_url:"/u/guqiankun.gqk/",website_url:""},"/webapi/projects/42422/get_pull_request_by_iid":{check_suites:[],created_at:"2020-08-06T11:35:38+0800",description:"* 123\n* 456",diff:{add_line_num:753,base_commit_sha:"df72e4d1c394af6d1c21cd042116f83a792fa8c6",commits_count:16,created_at:"2021-05-20T14:27:46+0800",del_line_num:379,files_count:22,head_commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",id:31918,overflow:!1,start_commit_sha:"2566c6dec7756e51f7f16267d9a2a63116ac015b",updated_at:"2021-05-20T14:27:46+0800"},id:13055,iid:2,source_branch:"feat/123123",source_project_id:42422,state:"opened",target_branch:"master",target_project_id:42422},"/api/v3/projects/42422/pull_requests/13055/diffs":[{add_line_num:753,base_commit_sha:"df72e4d1c394af6d1c21cd042116f83a792fa8c6",commits_count:16,created_at:"2021-05-20T14:27:46+0800",del_line_num:379,files_count:22,head_commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",id:31918,overflow:!1,start_commit_sha:"2566c6dec7756e51f7f16267d9a2a63116ac015b",updated_at:"2021-05-20T14:27:46+0800"},{add_line_num:741,base_commit_sha:"df72e4d1c394af6d1c21cd042116f83a792fa8c6",commits_count:15,created_at:"2020-10-27T14:22:15+0800",del_line_num:379,files_count:21,head_commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",id:20699,overflow:!1,start_commit_sha:"2566c6dec7756e51f7f16267d9a2a63116ac015b",updated_at:"2020-12-10T20:05:04+0800"}],"/webapi/projects/42422/pull_requests/13055/comments":{committed_reviews:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"maoqiang@test.com",extern_uid:"30041",id:13616,name:"毛嫱",state:"active",username:"maoqiang",web_url:"https://test.com.com/nwpipe/u/30041"},body:null,created_at:"2020-09-10T10:39:41+08:00",id:1650,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"maoqiang@test.com",extern_uid:"30041",id:13616,name:"毛嫱",state:"active",username:"maoqiang",web_url:"https://test.com.com/nwpipe/u/30041"},commit_id:null,created_at:"2020-09-14T12:09:16+0800",discussion_id:69,id:74,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"试试回复哈",noteable_id:1650,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-14T12:09:16+0800"}],updated_at:"2020-09-14T12:09:20+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"liuya.zmn@test.com",extern_uid:"208698",id:14920,name:"六牙",state:"active",username:"liuya.zmn",web_url:"https://test.com.com/nwpipe/u/208698"},body:null,created_at:"2020-09-09T14:21:01+08:00",id:1644,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"liuya.zmn@test.com",extern_uid:"208698",id:14920,name:"六牙",state:"active",username:"liuya.zmn",web_url:"https://test.com.com/nwpipe/u/208698"},commit_id:null,created_at:"2020-09-09T14:21:01+0800",discussion_id:null,id:63,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -80,40 +80,40 @@ export const getSignup = (req: Request, res: Response) => {\n * Create a new local account.\n */\n export const postSignup = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n- await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/signup");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n+ await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/signup");\n+ }\n+\n+ const user = new User({\n+ email: req.body.email,\n+ password: req.body.password\n+ });\n+\n+ User.findOne({ email: req.body.email }, (err, existingUser) => {\n+ if (err) { return next(err); }\n+ if (existingUser) {\n+ req.flash("errors", { msg: "Account with that email address already exists." });\n+ return res.redirect("/signup");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_94_101",line_type:"old",note:"111",noteable_id:1644,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17641,del_line_num:265,deleted_file:!1,diff:'@@ -80,40 +80,40 @@ export const getSignup = (req: Request, res: Response) => {\n * Create a new local account.\n */\n export const postSignup = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n- await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/signup");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n+ await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/signup");\n+ }\n+\n+ const user = new User({\n+ email: req.body.email,\n+ password: req.body.password\n+ });\n+\n+ User.findOne({ email: req.body.email }, (err, existingUser) => {\n+ if (err) { return next(err); }\n+ if (existingUser) {\n+ req.flash("errors", { msg: "Account with that email address already exists." });\n+ return res.redirect("/signup");\n }\n',id:47,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-09T14:21:12+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"liuya.zmn@test.com",extern_uid:"208698",id:14920,name:"六牙",state:"active",username:"liuya.zmn",web_url:"https://test.com.com/nwpipe/u/208698"},body:null,created_at:"2020-09-09T14:21:25+08:00",id:1645,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"liuya.zmn@test.com",extern_uid:"208698",id:14920,name:"六牙",state:"active",username:"liuya.zmn",web_url:"https://test.com.com/nwpipe/u/208698"},commit_id:null,created_at:"2020-09-09T14:21:26+0800",discussion_id:null,id:64,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -80,40 +80,40 @@ export const getSignup = (req: Request, res: Response) => {\n * Create a new local account.\n */\n export const postSignup = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n- await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/signup");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n+ await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/signup");\n+ }\n+\n+ const user = new User({\n+ email: req.body.email,\n+ password: req.body.password\n+ });\n+\n+ User.findOne({ email: req.body.email }, (err, existingUser) => {\n+ if (err) { return next(err); }\n+ if (existingUser) {\n+ req.flash("errors", { msg: "Account with that email address already exists." });\n+ return res.redirect("/signup");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_94_92",line_type:"old",note:"222",noteable_id:1645,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17641,del_line_num:265,deleted_file:!1,diff:'@@ -80,40 +80,40 @@ export const getSignup = (req: Request, res: Response) => {\n * Create a new local account.\n */\n export const postSignup = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n- await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/signup");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n+ await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/signup");\n+ }\n+\n+ const user = new User({\n+ email: req.body.email,\n+ password: req.body.password\n+ });\n+\n+ User.findOne({ email: req.body.email }, (err, existingUser) => {\n+ if (err) { return next(err); }\n+ if (existingUser) {\n+ req.flash("errors", { msg: "Account with that email address already exists." });\n+ return res.redirect("/signup");\n }\n',id:47,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-09T14:21:41+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-08-06T11:35:40+08:00",id:1483,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-08-11T16:36:49+0800",discussion_id:null,id:8,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139517,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/en-us/codeReview.ts",\n+ "old_path": "app/web/locales/en-us/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139518,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "old_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 2,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 6,\n+ "deleted_file": false,\n+ "id": 139519,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/browser/index.ts",\n+ "old_path": "app/web/module/browser/index.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "0",\n+ "add_line_num": 298,\n+ "b_mode": "100644",\n+ "binary_file": false,\n',id:1077,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},line_code:"02699cd6ca65aa6819d7e387678d8ea5359b5e59_0_56",line_type:"new",note:"123123123",noteable_id:1483,noteable_type:"ReviewComment",outdated:!1,path:"a.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139517,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/en-us/codeReview.ts",\n+ "old_path": "app/web/locales/en-us/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139518,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "old_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 2,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 6,\n+ "deleted_file": false,\n+ "id": 139519,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/browser/index.ts",\n+ "old_path": "app/web/module/browser/index.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "0",\n+ "add_line_num": 298,\n+ "b_mode": "100644",\n+ "binary_file": false,\n',id:43,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-11T16:36:53+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-08-11T16:36:54+08:00",id:1530,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-08-11T20:56:08+0800",discussion_id:null,id:9,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_49_48",line_type:"old",note:"@taian.lta(伊北) 测试一下咔咔咔咔咔咔",noteable_id:1530,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:45,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-11T20:56:31+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-08-11T20:56:32+08:00",id:1537,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-08-13T15:13:13+0800",discussion_id:null,id:12,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139517,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/en-us/codeReview.ts",\n+ "old_path": "app/web/locales/en-us/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139518,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "old_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 2,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 6,\n+ "deleted_file": false,\n+ "id": 139519,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/browser/index.ts",\n+ "old_path": "app/web/module/browser/index.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "0",\n+ "add_line_num": 298,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139520,\n+ "mark_as_read": false,\n+ "new_file": true,\n+ "new_path": "app/web/module/code-review/browser/code-fold.contribution.tsx",\n+ "old_path": "app/web/module/code-review/browser/code-fold.contribution.tsx",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 47,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139521,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/code-review/browser/comment-common.service.ts",\n+ "old_path": "app/web/module/code-review/browser/comment-common.service.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 15,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 16,\n+ "deleted_file": false,\n+ "id": 139522,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/code-review/browser/comment-write.contribution.ts",\n+ "old_path": "app/web/module/code-review/browser/comment-write.contribution.ts",\n',id:1077,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},line_code:"02699cd6ca65aa6819d7e387678d8ea5359b5e59_0_95",line_type:"new",note:"123",noteable_id:1537,noteable_type:"ReviewComment",outdated:!1,path:"a.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139517,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/en-us/codeReview.ts",\n+ "old_path": "app/web/locales/en-us/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139518,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "old_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 2,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 6,\n+ "deleted_file": false,\n+ "id": 139519,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/browser/index.ts",\n+ "old_path": "app/web/module/browser/index.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "0",\n+ "add_line_num": 298,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139520,\n+ "mark_as_read": false,\n+ "new_file": true,\n+ "new_path": "app/web/module/code-review/browser/code-fold.contribution.tsx",\n+ "old_path": "app/web/module/code-review/browser/code-fold.contribution.tsx",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 47,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139521,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/code-review/browser/comment-common.service.ts",\n+ "old_path": "app/web/module/code-review/browser/comment-common.service.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 15,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 16,\n+ "deleted_file": false,\n+ "id": 139522,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/code-review/browser/comment-write.contribution.ts",\n+ "old_path": "app/web/module/code-review/browser/comment-write.contribution.ts",\n',id:43,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-08-13T15:11:06+0800",discussion_id:null,id:11,is_award:!1,labels:["中间件规约"],latest_st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n',id:1077,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},line_code:"02699cd6ca65aa6819d7e387678d8ea5359b5e59_0_9",line_type:"new",note:"123123",noteable_id:1537,noteable_type:"ReviewComment",outdated:!1,path:"a.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n',id:43,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-18T10:24:50+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-03T22:18:43+08:00",id:1629,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-03T22:18:43+0800",discussion_id:13,id:36,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"测试一条评论看看能不能生效呢",noteable_id:1629,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-03T22:18:43+0800"}],updated_at:"2020-09-03T22:18:48+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-04T10:52:12+08:00",id:1630,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-04T16:20:22+0800",discussion_id:null,id:38,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_40_37",line_type:"old",note:"测试",noteable_id:1630,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17174,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:311,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-04T10:52:12+0800",discussion_id:null,id:37,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_0_3",line_type:"old",note:"哈哈哈",noteable_id:1630,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17174,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:311,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-04T16:20:30+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-04T16:20:38+08:00",id:1633,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-04T16:20:39+0800",discussion_id:null,id:40,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_40_35",line_type:"old",note:"123",noteable_id:1633,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17174,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:311,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-04T16:20:43+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-08T19:47:16+08:00",id:1639,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-08T19:47:16+0800",discussion_id:null,id:59,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"v1.16.2-snapshot-3a71cb12",noteable_id:1639,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-08T19:47:16+0800"}],updated_at:"2020-09-08T19:47:16+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-10T12:04:45+08:00",id:1652,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-10T12:04:45+0800",discussion_id:null,id:69,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:'@@ -16,7 +16,7 @@ const server = app.listen(app.get("port"), () => {\n app.get("port"),\n',id:1091,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1},line_code:"bcc09dcb20cae54f483679309f0403fdcbd98121_15_0",line_type:"old",note:"测试发布一条评论",noteable_id:1652,noteable_type:"ReviewComment",outdated:!1,path:"src/server.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17921,del_line_num:1,deleted_file:!1,diff:'@@ -16,7 +16,7 @@ const server = app.listen(app.get("port"), () => {\n app.get("port"),\n',id:79,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-10T12:04:49+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-13T22:47:59+08:00",id:1659,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-17T23:03:22+0800",discussion_id:60,id:84,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"123123",noteable_id:1659,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-17T23:03:22+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-13T22:47:59+0800",discussion_id:null,id:73,is_award:!1,labels:["内存泄露","日志规约","中间件规约","基础编码规约","安全规约","并发&幂等"],latest_st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:1092,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},line_code:"bd5630fadbfeb531e34aa7539e6a12a247f8b0c6_9_4",line_type:"old",note:"123",noteable_id:1659,noteable_type:"ReviewComment",outdated:!1,path:"src/util/logger.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17959,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:275,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-17T23:03:28+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-19T22:39:00+08:00",id:1662,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-19T22:39:35+0800",discussion_id:11,id:87,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"test123",noteable_id:1662,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-19T22:39:35+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-19T22:39:00+0800",discussion_id:78,id:86,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"123123123",noteable_id:1662,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-19T22:39:00+0800"}],updated_at:"2020-09-19T22:40:05+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-10-28T11:42:13+08:00",id:1737,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-11-16T19:52:35+0800",discussion_id:78,id:180,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"*\n*",noteable_id:1737,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-11-16T19:52:35+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-11-11T13:28:08+0800",discussion_id:null,id:170,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_6_6",line_type:"old",note:"123",noteable_id:1737,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2020-11-11T13:28:08+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-11-11T13:27:56+0800",discussion_id:null,id:169,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n+ password: string;\n+ passwordResetToken: string;\n+ passwordResetExpires: Date;\n \n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_10_7",line_type:"old",note:"123",noteable_id:1737,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n+ password: string;\n+ passwordResetToken: string;\n+ passwordResetExpires: Date;\n \n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2020-11-11T13:27:56+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-10-28T11:42:13+0800",discussion_id:52,id:166,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"123123",noteable_id:1737,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-10-28T11:42:13+0800"}],updated_at:"2022-01-25T15:55:52+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-08-18T10:23:46+08:00",id:1563,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-25T20:31:20+0800",discussion_id:null,id:27,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_40_31",line_type:"old",note:"右侧",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-21T15:34:22+0800",discussion_id:20,id:26,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"撒大声地阿斯顿撒",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-21T15:34:22+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-21T15:33:34+0800",discussion_id:23,id:25,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"sad",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-21T15:33:34+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-21T11:30:27+0800",discussion_id:9,id:16,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"asdsadsa",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-21T11:30:27+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-21T11:30:21+0800",discussion_id:9,id:15,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"asdasd",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-21T11:30:21+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-18T10:23:46+0800",discussion_id:null,id:13,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n',id:1077,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},line_code:"02699cd6ca65aa6819d7e387678d8ea5359b5e59_0_10",line_type:"new",note:"1111",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:"a.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n',id:43,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-25T20:31:24+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-08-28T10:27:38+08:00",id:1609,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T11:29:51+0800",discussion_id:null,id:30,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_23_17",line_type:"old",note:"大迭代",noteable_id:1609,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T11:29:43+0800",discussion_id:null,id:29,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_9_0",line_type:"old",note:"撒大声地",noteable_id:1609,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T10:27:39+0800",discussion_id:22,id:28,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"ffff",noteable_id:1609,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-28T10:27:39+0800"}],updated_at:"2020-08-28T11:30:02+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-08-28T11:30:22+08:00",id:1610,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T11:30:22+0800",discussion_id:null,id:31,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_3_0",line_type:"old",note:"333333",noteable_id:1610,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-28T11:30:27+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-08-28T11:30:58+08:00",id:1611,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T11:30:58+0800",discussion_id:null,id:32,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_37_30",line_type:"old",note:"啊大大",noteable_id:1611,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-28T11:31:04+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-09-07T11:12:17+08:00",id:1635,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T11:12:18+0800",discussion_id:null,id:43,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_9_0",line_type:"old",note:"ddd",noteable_id:1635,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17598,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:752,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-07T11:19:37+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-09-07T11:58:28+08:00",id:1637,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T15:44:32+0800",discussion_id:null,id:50,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -252,61 +252,61 @@ export const getReset = (req: Request, res: Response, next: NextFunction) => {\n * Process the reset password request.\n */\n export const postReset = async (req: Request, res: Response, next: NextFunction) => {\n- await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n- await check("confirm", "Passwords must match.").equals(req.body.password).run(req);\n+ await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_255_255",line_type:"old",note:"asdsadas",noteable_id:1637,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:265,deleted_file:!1,diff:'@@ -252,61 +252,61 @@ export const getReset = (req: Request, res: Response, next: NextFunction) => {\n * Process the reset password request.\n */\n export const postReset = async (req: Request, res: Response, next: NextFunction) => {\n- await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n- await check("confirm", "Passwords must match.").equals(req.body.password).run(req);\n+ await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n',id:490,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T15:44:18+0800",discussion_id:null,id:49,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -252,61 +252,61 @@ export const getReset = (req: Request, res: Response, next: NextFunction) => {\n * Process the reset password request.\n */\n export const postReset = async (req: Request, res: Response, next: NextFunction) => {\n- await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n- await check("confirm", "Passwords must match.").equals(req.body.password).run(req);\n+ await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_255_255",line_type:"old",note:"dddd",noteable_id:1637,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:265,deleted_file:!1,diff:'@@ -252,61 +252,61 @@ export const getReset = (req: Request, res: Response, next: NextFunction) => {\n * Process the reset password request.\n */\n export const postReset = async (req: Request, res: Response, next: NextFunction) => {\n- await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n- await check("confirm", "Passwords must match.").equals(req.body.password).run(req);\n+ await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n',id:490,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T15:43:49+0800",discussion_id:29,id:48,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"ddd",noteable_id:1637,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-07T15:43:49+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T11:58:29+0800",discussion_id:null,id:46,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_37_30",line_type:"old",note:"十点多",noteable_id:1637,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17598,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:752,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-07T15:44:42+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-09-07T15:47:40+08:00",id:1638,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T16:39:19+0800",discussion_id:null,id:53,is_award:!1,labels:["内存泄露","中间件规约"],latest_st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:'@@ -4,7 +4,7 @@ import passportFacebook from "passport-facebook";\n import _ from "lodash";\n \n // import { User, UserType } from \'../models/User\';\n-import { User, UserDocument } from "../models/User";\n+import { User, UserDocument } from "../models/User"\n',id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},line_code:"761e3f18c863ddeee900bf74ddd8fed56a4aa2c9_7_7",line_type:"old",note:"test",noteable_id:1638,noteable_type:"ReviewComment",outdated:!1,path:"src/config/passport.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:4,deleted_file:!1,diff:'@@ -4,7 +4,7 @@ import passportFacebook from "passport-facebook";\n import _ from "lodash";\n \n // import { User, UserType } from \'../models/User\';\n-import { User, UserDocument } from "../models/User";\n+import { User, UserDocument } from "../models/User"\n',id:489,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T15:47:40+0800",discussion_id:null,id:51,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_3_0",line_type:"old",note:"asdasd",noteable_id:1638,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:490,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-16T15:19:24+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-09-22T10:13:52+08:00",id:1663,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-10-27T11:38:24+0800",discussion_id:null,id:159,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},line_code:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_0_24",line_type:"old",note:"![stack.png](/ide-s/TypeScript-Node-Starter/uploads/f0320521d707466988b87cc04ec2c7a4/stack.png)",noteable_id:1663,noteable_type:"ReviewComment",outdated:!0,path:"README.md",resolved_at:"2022-01-25T15:10:39+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"604ed58cc40ed8ed6581d1c10e265da6f8b23496",compare_diff_id:19988,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:144,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-22T10:13:53+0800",discussion_id:null,id:88,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -24,7 +24,6 @@ footer {\n \n // Input Fields\n // -------------------------\n-\n textarea {\n resize: vertical;\n",id:1090,new_file:!1,new_path:"src/public/css/main.scss",old_path:"src/public/css/main.scss",renamed_file:!1,too_large:!1},line_code:"4c32a30db22da868cde702e26a724b6a2408a33c_29_27",line_type:"old",note:"右边",noteable_id:1663,noteable_type:"ReviewComment",outdated:!0,path:"src/public/css/main.scss",resolved_at:"2022-01-20T20:10:37+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:18810,del_line_num:1,deleted_file:!1,diff:"@@ -24,7 +24,6 @@ footer {\n \n // Input Fields\n // -------------------------\n-\n textarea {\n resize: vertical;\n",id:117,new_file:!1,new_path:"src/public/css/main.scss",old_path:"src/public/css/main.scss",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-10-27T11:38:42+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-10-27T11:39:26+08:00",id:1731,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T15:16:48+0800",discussion_id:182,id:500022,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to opened",noteable_id:1731,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T15:16:48+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T15:16:07+0800",discussion_id:182,id:500021,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1731,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T15:16:07+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-11-19T15:19:18+0800",discussion_id:null,id:182,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:"",id:1096,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},line_code:"cdba7b9c4edb14d31053cfb58047d4183fe1830d_2_2",line_type:"old",note:"2222",noteable_id:1731,noteable_type:"ReviewComment",outdated:!0,path:"views/partials/footer-renamed.pug",resolved_at:"2022-01-25T15:16:07+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:0,deleted_file:!1,diff:"",id:570,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-11-19T14:50:02+0800",discussion_id:null,id:181,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:"old",note:"111",noteable_id:1731,noteable_type:"ReviewComment",outdated:!1,path:"views/partials/footer-renamed.pug",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:0,deleted_file:!1,diff:"",id:570,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2020-11-19T14:50:02+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-10-27T11:39:26+0800",discussion_id:159,id:160,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"![](https://test.com/cloud-ide/api-server/uploads/96a89b8b059d4dd0896c5a01fe3ed68d/stack.png)",noteable_id:1731,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-10-27T11:39:26+0800"}],updated_at:"2020-11-19T15:19:37+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-11-19T15:20:10+08:00",id:1769,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-11-19T15:20:10+0800",discussion_id:null,id:183,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:"",id:1096,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},line_code:"cdba7b9c4edb14d31053cfb58047d4183fe1830d_5_5",line_type:"old",note:"555",noteable_id:1769,noteable_type:"ReviewComment",outdated:!0,path:"views/partials/footer-renamed.pug",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:0,deleted_file:!1,diff:"",id:570,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-11-19T15:20:14+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-11-19T15:20:34+08:00",id:1770,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-11-19T15:20:34+0800",discussion_id:null,id:184,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:2,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:2,deleted_file:!1,diff:"@@ -14,11 +14,11 @@ block content\n .form-group.row.justify-content-md-center\n",id:1094,new_file:!1,new_path:"views/contact123.pug",old_path:"views/contact.pug",renamed_file:!0,too_large:!1},line_code:"01c01633c13afa3e0580e14dbcd3c26e289c5281_0_4",line_type:"old",note:"4444",noteable_id:1770,noteable_type:"ReviewComment",outdated:!0,path:"views/contact123.pug",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:2,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:2,deleted_file:!1,diff:"@@ -14,11 +14,11 @@ block content\n .form-group.row.justify-content-md-center\n",id:568,new_file:!1,new_path:"views/contact123.pug",old_path:"views/contact.pug",renamed_file:!0,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-11-19T15:20:49+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2021-05-28T16:28:46+08:00",id:2106,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T20:10:21+0800",discussion_id:205,id:500027,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to opened",noteable_id:2106,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T20:10:21+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T20:10:07+0800",discussion_id:205,id:500026,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:2106,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T20:10:07+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T16:06:08+0800",discussion_id:206,id:500024,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:2106,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T16:06:08+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2021-05-28T16:31:57+0800",discussion_id:null,id:206,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:'@@ -16,7 +16,7 @@ const server = app.listen(app.get("port"), () => {\n app.get("port"),\n app.get("env")\n',id:1091,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1},line_code:"bcc09dcb20cae54f483679309f0403fdcbd98121_17_16",line_type:"old",note:"1111",noteable_id:2106,noteable_type:"ReviewComment",outdated:!0,path:"src/server.ts",resolved_at:"2022-01-25T16:06:08+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:'@@ -16,7 +16,7 @@ const server = app.listen(app.get("port"), () => {\n app.get("port"),\n app.get("env")\n',id:1091,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-28T16:31:57+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2021-05-28T16:28:46+0800",discussion_id:null,id:205,is_award:!1,labels:["测试"],latest_st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:"@@ -14,7 +14,7 @@ passport.serializeUser((user, done) => {\n done(undefined, user.id);\n });\n \n-passport.deserializeUser((id, done) => {\n+passport.deserializeUser((id: string, done) => {\n User.findById(id, (err, user) => {\n",id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},line_code:"761e3f18c863ddeee900bf74ddd8fed56a4aa2c9_18_17",line_type:"old",note:"这是啥",noteable_id:2106,noteable_type:"ReviewComment",outdated:!1,path:"src/config/passport.ts",resolved_at:"2022-01-25T20:10:07+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:"@@ -14,7 +14,7 @@ passport.serializeUser((user, done) => {\n done(undefined, user.id);\n });\n \n-passport.deserializeUser((id, done) => {\n+passport.deserializeUser((id: string, done) => {\n User.findById(id, (err, user) => {\n",id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-28T16:28:46+0800"}],updated_at:"2021-05-28T16:32:04+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2021-11-04T15:07:06+08:00",id:4200243,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2021-11-04T15:07:07+0800",discussion_id:null,id:400002,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_40_47",line_type:"old",note:"这是一个带图评论\n\n\n![image.png](/ide-s/TypeScript-Node-Starter/uploads/45f6e1865078460aa15f2799225d956c/image.png)\n",noteable_id:4200243,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-11-04T15:07:07+0800"}],updated_at:"2021-11-04T15:07:16+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2021-11-04T15:08:12+08:00",id:4200244,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-24T11:08:09+0800",discussion_id:400003,id:500014,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to opened",noteable_id:4200244,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-24T11:08:09+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-24T11:07:54+0800",discussion_id:400003,id:500013,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:4200244,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-24T11:07:54+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2021-11-04T15:08:12+0800",discussion_id:null,id:400003,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -327,62 +327,62 @@ export const getForgot = (req: Request, res: Response) => {\n * Create a random token, then the send user an email with a reset link.\n */\n export const postForgot = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Please enter a valid email address.").isEmail().run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/forgot");\n- }\n-\n- async.waterfall([\n- function createRandomToken(done: Function) {\n- crypto.randomBytes(16, (err, buf) => {\n- const token = buf.toString("hex");\n- done(err, token);\n- });\n- },\n- function setRandomToken(token: AuthToken, done: Function) {\n- User.findOne({ email: req.body.email }, (err, user: any) => {\n- if (err) { return done(err); }\n- if (!user) {\n- req.flash("errors", { msg: "Account with that email address does not exist." });\n- return res.redirect("/forgot");\n- }\n- user.passwordResetToken = token;\n- user.passwordResetExpires = Date.now() + 3600000; // 1 hour\n- user.save((err: WriteError) => {\n- done(err, token, user);\n- });\n- });\n- },\n- function sendForgotPasswordEmail(token: AuthToken, user: UserDocument, done: Function) {\n- const transporter = nodemailer.createTransport({\n- service: "SendGrid",\n- auth: {\n- user: process.env.SENDGRID_USER,\n- pass: process.env.SENDGRID_PASSWORD\n- }\n- });\n- const mailOptions = {\n- to: user.email,\n- from: "hackathon@starter.com",\n- subject: "Reset your password on Hackathon Starter",\n- text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\\n\\n\n+ await check("email", "Please enter a valid email address.").isEmail().run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/forgot");\n+ }\n+\n+ async.waterfall([\n+ function createRandomToken(done: Function) {\n+ crypto.randomBytes(16, (err, buf) => {\n+ const token = buf.toString("hex");\n+ done(err, token);\n+ });\n+ },\n+ function setRandomToken(token: AuthToken, done: Function) {\n+ User.findOne({ email: req.body.email }, (err, user: any) => {\n+ if (err) { return done(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: "Account with that email address does not exist." });\n+ return res.redirect("/forgot");\n+ }\n+ user.passwordResetToken = token;\n+ user.passwordResetExpires = Date.now() + 3600000; // 1 hour\n+ user.save((err: WriteError) => {\n+ done(err, token, user);\n+ });\n+ });\n+ },\n+ function sendForgotPasswordEmail(token: AuthToken, user: UserDocument, done: Function) {\n+ const transporter = nodemailer.createTransport({\n+ service: "SendGrid",\n+ auth: {\n+ user: process.env.SENDGRID_USER,\n+ pass: process.env.SENDGRID_PASSWORD\n+ }\n+ });\n+ const mailOptions = {\n+ to: user.email,\n+ from: "hackathon@starter.com",\n+ subject: "Reset your password on Hackathon Starter",\n+ text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\\n\\n\n Please click on the following link, or paste this into your browser to complete the process:\\n\\n\n http://${req.headers.host}/reset/${token}\\n\\n\n If you did not request this, please ignore this email and your password will remain unchanged.\\n`\n- };\n- transporter.sendMail(mailOptions, (err) => {\n- req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` });\n- done(err);\n- });\n- }\n- ], (err) => {\n- if (err) { return next(err); }\n- res.redirect("/forgot");\n- });\n+ };\n+ transporter.sendMail(mailOptions, (err) => {\n+ req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` });\n+ done(err);\n+ });\n+ }\n+ ], (err) => {\n+ if (err) { return next(err); }\n+ res.redirect("/forgot");\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_388_384",line_type:"old",note:"111 \n\n\n![image.png](/ide-s/TypeScript-Node-Starter/uploads/cd8f399b2c994d01b4afe179c26e5a4f/image.png)\n",noteable_id:4200244,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:"2022-01-24T11:07:54+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -327,62 +327,62 @@ export const getForgot = (req: Request, res: Response) => {\n * Create a random token, then the send user an email with a reset link.\n */\n export const postForgot = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Please enter a valid email address.").isEmail().run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/forgot");\n- }\n-\n- async.waterfall([\n- function createRandomToken(done: Function) {\n- crypto.randomBytes(16, (err, buf) => {\n- const token = buf.toString("hex");\n- done(err, token);\n- });\n- },\n- function setRandomToken(token: AuthToken, done: Function) {\n- User.findOne({ email: req.body.email }, (err, user: any) => {\n- if (err) { return done(err); }\n- if (!user) {\n- req.flash("errors", { msg: "Account with that email address does not exist." });\n- return res.redirect("/forgot");\n- }\n- user.passwordResetToken = token;\n- user.passwordResetExpires = Date.now() + 3600000; // 1 hour\n- user.save((err: WriteError) => {\n- done(err, token, user);\n- });\n- });\n- },\n- function sendForgotPasswordEmail(token: AuthToken, user: UserDocument, done: Function) {\n- const transporter = nodemailer.createTransport({\n- service: "SendGrid",\n- auth: {\n- user: process.env.SENDGRID_USER,\n- pass: process.env.SENDGRID_PASSWORD\n- }\n- });\n- const mailOptions = {\n- to: user.email,\n- from: "hackathon@starter.com",\n- subject: "Reset your password on Hackathon Starter",\n- text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\\n\\n\n+ await check("email", "Please enter a valid email address.").isEmail().run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/forgot");\n+ }\n+\n+ async.waterfall([\n+ function createRandomToken(done: Function) {\n+ crypto.randomBytes(16, (err, buf) => {\n+ const token = buf.toString("hex");\n+ done(err, token);\n+ });\n+ },\n+ function setRandomToken(token: AuthToken, done: Function) {\n+ User.findOne({ email: req.body.email }, (err, user: any) => {\n+ if (err) { return done(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: "Account with that email address does not exist." });\n+ return res.redirect("/forgot");\n+ }\n+ user.passwordResetToken = token;\n+ user.passwordResetExpires = Date.now() + 3600000; // 1 hour\n+ user.save((err: WriteError) => {\n+ done(err, token, user);\n+ });\n+ });\n+ },\n+ function sendForgotPasswordEmail(token: AuthToken, user: UserDocument, done: Function) {\n+ const transporter = nodemailer.createTransport({\n+ service: "SendGrid",\n+ auth: {\n+ user: process.env.SENDGRID_USER,\n+ pass: process.env.SENDGRID_PASSWORD\n+ }\n+ });\n+ const mailOptions = {\n+ to: user.email,\n+ from: "hackathon@starter.com",\n+ subject: "Reset your password on Hackathon Starter",\n+ text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\\n\\n\n Please click on the following link, or paste this into your browser to complete the process:\\n\\n\n http://${req.headers.host}/reset/${token}\\n\\n\n If you did not request this, please ignore this email and your password will remain unchanged.\\n`\n- };\n- transporter.sendMail(mailOptions, (err) => {\n- req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` });\n- done(err);\n- });\n- }\n- ], (err) => {\n- if (err) { return next(err); }\n- res.redirect("/forgot");\n- });\n+ };\n+ transporter.sendMail(mailOptions, (err) => {\n+ req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` });\n+ done(err);\n+ });\n+ }\n+ ], (err) => {\n+ if (err) { return next(err); }\n+ res.redirect("/forgot");\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-11-04T15:08:12+0800"}],updated_at:"2021-11-04T15:08:18+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:20:06+08:00",id:1585,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:20:25+0800",discussion_id:null,id:18,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_41_48",line_type:"old",note:"第二次测试",noteable_id:1585,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:20:06+0800",discussion_id:null,id:17,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_43_48",line_type:"old",note:"太好了",noteable_id:1585,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:20:32+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:28:36+08:00",id:1586,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:28:36+0800",discussion_id:null,id:19,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_30_30",line_type:"old",note:"第三次测试",noteable_id:1586,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:28:39+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:29:04+08:00",id:1587,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:29:04+0800",discussion_id:null,id:20,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_21_17",line_type:"old",note:"第四次测试",noteable_id:1587,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:29:07+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:30:06+08:00",id:1588,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:30:07+0800",discussion_id:null,id:21,is_award:!1,labels:["dadada","dada","dadad","LackOfProfessionalField","BusinessArchitectureDesignDefect","DesignPatternDefect","NotFamilierBasicFrame","LackOfJavaBase","CodeStandardsIssue","并发&幂等","基础编码规约","中间件规约"],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_21_17",line_type:"old",note:"第五次测试",noteable_id:1588,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:30:10+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:30:28+08:00",id:1589,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:30:28+0800",discussion_id:null,id:22,is_award:!1,labels:["内存泄露","日志规约"],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_23_17",line_type:"old",note:"第六次测试",noteable_id:1589,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:30:32+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:31:09+08:00",id:1590,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:31:09+0800",discussion_id:null,id:23,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_23_18",line_type:"old",note:"第七次测试",noteable_id:1590,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:31:15+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:32:38+08:00",id:1591,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:32:38+0800",discussion_id:null,id:24,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_23_20",line_type:"old",note:"第八次测试",noteable_id:1591,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:32:41+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-09-04T16:20:30+08:00",id:1632,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-11-16T19:42:40+0800",discussion_id:78,id:179,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-11-16T19:42:40+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-11-16T19:42:37+0800",discussion_id:78,id:178,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to invalid",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-11-16T19:42:37+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-16T11:54:11+0800",discussion_id:78,id:81,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-09-16T11:54:11+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-16T11:52:42+0800",discussion_id:null,id:78,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},line_code:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_8_0",line_type:"old",note:"测试",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"README.md",resolved_at:"2020-11-16T19:42:40+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17959,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:267,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},state:"resolved",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-14T12:10:59+0800",discussion_id:20,id:76,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"对对对\n对对对\n对对对\n对对对对对对\n\n\n\n\n\n\n对对对",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-14T12:10:59+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-14T12:10:40+0800",discussion_id:20,id:75,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"@jiankan.hjk(剑侃) ",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-14T12:10:40+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-09T11:22:29+0800",discussion_id:null,id:61,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_4_4",line_type:"old",note:"test",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17641,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n',id:48,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-09T10:12:09+0800",discussion_id:null,id:60,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_2",line_type:"new",note:"测试",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17641,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n',id:45,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-08T10:21:29+0800",discussion_id:null,id:57,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_7_6",line_type:"old",note:"# test\n# test\n# test\n# test\n# test\n# test\n# test\n# test\n# test\n# test\n# test",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n',id:491,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-08T00:32:18+0800",discussion_id:null,id:56,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:1092,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},line_code:"bd5630fadbfeb531e34aa7539e6a12a247f8b0c6_9_4",line_type:"old",note:"第二条",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/util/logger.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:494,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-08T00:15:45+0800",discussion_id:null,id:55,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:1092,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},line_code:"bd5630fadbfeb531e34aa7539e6a12a247f8b0c6_9_4",line_type:"old",note:"> h\n# test\n## test\n### test\n#### test\ntest\n @huaqiao.lhq(常浅) ",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/util/logger.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:494,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-07T17:01:37+0800",discussion_id:null,id:54,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n+ password: string;\n+ passwordResetToken: string;\n+ passwordResetExpires: Date;\n \n- facebook: string;\n- tokens: AuthToken[];\n+ facebook: string;\n+ tokens: AuthToken[];\n \n- profile: {\n- name: string;\n- gender: string;\n- location: string;\n- website: string;\n- picture: string;\n- };\n+ profile: {\n+ name: string;\n+ gender: string;\n+ location: string;\n+ website: string;\n+ picture: string;\n+ };\n \n- comparePassword: comparePasswordFunction;\n- gravatar: (size: number) => string;\n+ comparePassword: comparePasswordFunction;\n+ gravatar: (size: number) => string;\n };\n \n type comparePasswordFunction = (candidatePassword: string, cb: (err: any, isMatch: any) => {}) => void;\n \n export interface AuthToken {\n- accessToken: string;\n- kind: string;\n+ accessToken: string;\n+ kind: string;\n }\n \n const userSchema = new mongoose.Schema({\n- email: { type: String, unique: true },\n- password: String,\n- passwordResetToken: String,\n- passwordResetExpires: Date,\n+ email: { type: String, unique: true },\n+ password: String,\n+ passwordResetToken: String,\n+ passwordResetExpires: Date,\n \n- facebook: String,\n- twitter: String,\n- google: String,\n- tokens: Array,\n+ facebook: String,\n+ twitter: String,\n+ google: String,\n+ tokens: Array,\n \n- profile: {\n- name: String,\n- gender: String,\n- location: String,\n- website: String,\n- picture: String\n- }\n+ profile: {\n+ name: String,\n+ gender: String,\n+ location: String,\n+ website: String,\n+ picture: String\n+ }\n }, { timestamps: true });\n \n /**\n * Password hash middleware.\n */\n userSchema.pre("save", function save(next) {\n- const user = this as UserDocument;\n- if (!user.isModified("password")) { return next(); }\n- bcrypt.genSalt(10, (err, salt) => {\n- if (err) { return next(err); }\n- bcrypt.hash(user.password, salt, undefined, (err: mongoose.Error, hash) => {\n- if (err) { return next(err); }\n- user.password = hash;\n- next();\n- });\n+ const user = this as UserDocument;\n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_57_57",line_type:"old",note:"测试一下",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n+ password: string;\n+ passwordResetToken: string;\n+ passwordResetExpires: Date;\n \n- facebook: string;\n- tokens: AuthToken[];\n+ facebook: string;\n+ tokens: AuthToken[];\n \n- profile: {\n- name: string;\n- gender: string;\n- location: string;\n- website: string;\n- picture: string;\n- };\n+ profile: {\n+ name: string;\n+ gender: string;\n+ location: string;\n+ website: string;\n+ picture: string;\n+ };\n \n- comparePassword: comparePasswordFunction;\n- gravatar: (size: number) => string;\n+ comparePassword: comparePasswordFunction;\n+ gravatar: (size: number) => string;\n };\n \n type comparePasswordFunction = (candidatePassword: string, cb: (err: any, isMatch: any) => {}) => void;\n \n export interface AuthToken {\n- accessToken: string;\n- kind: string;\n+ accessToken: string;\n+ kind: string;\n }\n \n const userSchema = new mongoose.Schema({\n- email: { type: String, unique: true },\n- password: String,\n- passwordResetToken: String,\n- passwordResetExpires: Date,\n+ email: { type: String, unique: true },\n+ password: String,\n+ passwordResetToken: String,\n+ passwordResetExpires: Date,\n \n- facebook: String,\n- twitter: String,\n- google: String,\n- tokens: Array,\n+ facebook: String,\n+ twitter: String,\n+ google: String,\n+ tokens: Array,\n \n- profile: {\n- name: String,\n- gender: String,\n- location: String,\n- website: String,\n- picture: String\n- }\n+ profile: {\n+ name: String,\n+ gender: String,\n+ location: String,\n+ website: String,\n+ picture: String\n+ }\n }, { timestamps: true });\n \n /**\n * Password hash middleware.\n */\n userSchema.pre("save", function save(next) {\n- const user = this as UserDocument;\n- if (!user.isModified("password")) { return next(); }\n- bcrypt.genSalt(10, (err, salt) => {\n- if (err) { return next(err); }\n- bcrypt.hash(user.password, salt, undefined, (err: mongoose.Error, hash) => {\n- if (err) { return next(err); }\n- user.password = hash;\n- next();\n- });\n+ const user = this as UserDocument;\n',id:491,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-07T16:18:00+0800",discussion_id:null,id:52,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:'@@ -66,7 +66,7 @@ passport.use(new FacebookStrategy({\n callbackURL: "/auth/facebook/callback",\n',id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},line_code:"761e3f18c863ddeee900bf74ddd8fed56a4aa2c9_0_38",line_type:"old",note:"测试",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/config/passport.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:4,deleted_file:!1,diff:'@@ -66,7 +66,7 @@ passport.use(new FacebookStrategy({\n callbackURL: "/auth/facebook/callback",\n',id:489,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-16T11:52:52+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-11-16T19:37:52+08:00",id:1765,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-26T11:01:53+0800",discussion_id:176,id:500030,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1765,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-26T11:01:53+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T15:52:22+0800",discussion_id:176,id:500023,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to opened",noteable_id:1765,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T15:52:22+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-11-26T11:23:06+0800",discussion_id:176,id:185,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1765,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-11-26T11:23:06+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-11-16T19:37:53+0800",discussion_id:null,id:176,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},line_code:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_5_4",line_type:"old",note:"测试",noteable_id:1765,noteable_type:"ReviewComment",outdated:!1,path:"README.md",resolved_at:"2022-01-26T11:01:53+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},state:"resolved",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-11-17T10:31:07+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},body:null,created_at:"2020-11-12T15:29:34+08:00",id:1759,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},commit_id:null,created_at:"2021-07-22T17:21:21+0800",discussion_id:null,id:200002,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_5",line_type:"new",note:"测试下",noteable_id:1759,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-07-22T17:21:21+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},commit_id:null,created_at:"2020-11-12T15:29:34+0800",discussion_id:null,id:171,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},line_code:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_6_4",line_type:"old",note:"test",noteable_id:1759,noteable_type:"ReviewComment",outdated:!0,path:"README.md",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:550,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2020-11-12T15:29:34+0800"}],updated_at:"2021-07-22T17:21:24+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},body:null,created_at:"2021-07-22T17:21:53+08:00",id:2100002,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},commit_id:null,created_at:"2021-07-23T16:22:54+0800",discussion_id:null,id:300003,is_award:!1,labels:["LackOfJavaBase"],latest_st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:'@@ -4,7 +4,7 @@ import passportFacebook from "passport-facebook";\n import _ from "lodash";\n \n // import { User, UserType } from \'../models/User\';\n-import { User, UserDocument } from "../models/User";\n+import { User, UserDocument } from "../models/User"\n import { Request, Response, NextFunction } from "express";\n \n const LocalStrategy = passportLocal.Strategy;\n',id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},line_code:"761e3f18c863ddeee900bf74ddd8fed56a4aa2c9_10_10",line_type:"old",note:"test",noteable_id:2100002,noteable_type:"ReviewComment",outdated:!1,path:"src/config/passport.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:'@@ -4,7 +4,7 @@ import passportFacebook from "passport-facebook";\n import _ from "lodash";\n \n // import { User, UserType } from \'../models/User\';\n-import { User, UserDocument } from "../models/User";\n+import { User, UserDocument } from "../models/User"\n import { Request, Response, NextFunction } from "express";\n \n const LocalStrategy = passportLocal.Strategy;\n',id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-07-23T16:22:54+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},commit_id:null,created_at:"2021-07-23T16:22:44+0800",discussion_id:60,id:300002,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"666",noteable_id:2100002,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2021-07-23T16:22:44+0800"}],updated_at:"2021-07-23T16:23:01+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},body:null,created_at:"2022-01-19T15:20:27+08:00",id:4700002,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-19T15:21:02+0800",discussion_id:null,id:500004,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n+ },\n+ "keywords": [],\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_9",line_type:"new",note:"333",noteable_id:4700002,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n+ },\n+ "keywords": [],\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2022-01-19T15:21:02+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-19T15:20:44+0800",discussion_id:null,id:500003,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_7",line_type:"new",note:"222",noteable_id:4700002,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2022-01-19T15:20:44+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-19T15:20:28+0800",discussion_id:null,id:500002,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_5",line_type:"new",note:"111",noteable_id:4700002,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2022-01-19T15:20:28+0800"}],updated_at:"2022-01-19T15:22:55+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},body:null,created_at:"2022-01-26T02:16:02+08:00",id:4700010,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-26T11:01:34+0800",discussion_id:176,id:500029,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:'> \x3c!-- reply id="176" --\x3e\n> 测试\n\n123',noteable_id:4700010,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2022-01-26T11:01:34+0800"}],updated_at:"2022-01-26T11:01:39+08:00"}],notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-10-12T18:54:04+0800",discussion_id:null,id:121,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"[Force Push] To feat/123123 Of commit: daa3e131 - fix: li in pr desc",noteable_id:13055,noteable_type:"PullRequest",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-10-12T18:54:04+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-10-12T18:54:04+0800",discussion_id:null,id:120,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"review tasks reopened",noteable_id:13055,noteable_type:"PullRequest",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-10-12T18:54:04+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-10-12T18:52:43+0800",discussion_id:null,id:117,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Added 2 commits:\n\n* 0cee41f8 - feat: 123\n* 46e1c30f - 123",noteable_id:13055,noteable_type:"PullRequest",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-10-12T18:52:43+0800"}],pending_review:null},"/api/v3/projects/42422/pull_requests/13055/diffs/mark_files":[{file_path_sha:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d",mark_as_read:!0,updated_after_read:!1},{file_path_sha:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6",mark_as_read:!0,updated_after_read:!1}],"/webapi/projects/42422/pull_requests/13055/diffs/31918/changes_overview":[{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:1,deleted_file:!1,id:1075,mark_as_read:!0,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1076,mark_as_read:!1,new_file:!0,new_path:"a.md",old_path:"a.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1077,mark_as_read:!1,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1078,mark_as_read:!1,new_file:!0,new_path:"aa.md",old_path:"aa.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1079,mark_as_read:!0,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1080,mark_as_read:!1,new_file:!0,new_path:"apiMeta.json",old_path:"apiMeta.json",renamed_file:!1,too_large:!0,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!0,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1081,mark_as_read:!1,new_file:!0,new_path:"assets/logo_white.gif",old_path:"assets/logo_white.gif",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1082,mark_as_read:!1,new_file:!1,new_path:"assets/斋藤飞鸟1.jpg",old_path:"assets/斋藤飞鸟.jpg",renamed_file:!0,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1083,mark_as_read:!1,new_file:!0,new_path:"b.md",old_path:"b.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:3,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1084,mark_as_read:!1,new_file:!0,new_path:"gbk.ts",old_path:"gbk.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1085,mark_as_read:!1,new_file:!0,new_path:"hk-cdp_ALL_api#space#info#popUp.json",old_path:"hk-cdp_ALL_api#space#info#popUp.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:168,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1086,mark_as_read:!1,new_file:!0,new_path:"pom.xml",old_path:"pom.xml",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:4,deleted_file:!1,id:1087,mark_as_read:!1,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:265,deleted_file:!1,id:1088,mark_as_read:!1,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:49,deleted_file:!1,id:1089,mark_as_read:!1,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:1,deleted_file:!1,id:1090,mark_as_read:!1,new_file:!1,new_path:"src/public/css/main.scss",old_path:"src/public/css/main.scss",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:1,deleted_file:!1,id:1091,mark_as_read:!1,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:7,deleted_file:!1,id:1092,mark_as_read:!1,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"0",binary_file:!1,compare_diff_id:31918,del_line_num:22,deleted_file:!0,id:1093,mark_as_read:!1,new_file:!1,new_path:"tsconfig.json",old_path:"tsconfig.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:2,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:2,deleted_file:!1,id:1094,mark_as_read:!1,new_file:!1,new_path:"views/contact123.pug",old_path:"views/contact.pug",renamed_file:!0,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"0",binary_file:!1,compare_diff_id:31918,del_line_num:27,deleted_file:!0,id:1095,mark_as_read:!1,new_file:!1,new_path:"views/home.pug",old_path:"views/home.pug",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1096,mark_as_read:!1,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1,updated_after_read:!1}],"/api/v3/projects/42422/repository/blobs/df72e4d1c394af6d1c21cd042116f83a792fa8c6":'{\n"name": "bbb",\n"version": "2.0.0",\n"description": "",\n"main": "test.js",\n"scripts": {\n"test": "echo "Error: no test specified" && exit 1"\n},\n"keywords": [],\n"license": "ISC"\n}',"/api/v3/projects/42422/repository/blobs/87ed08a7245161fc9675981be01a6effe661b803":'{\n"name": "aaa",\n"version": "1.0.0",\n"description": "",\n"main": "index.js",\n"scripts": {\n"test": "echo "Error: no test specified" && exit 1"\n},\n"keywords": [],\n"author": "",\n"license": "ISC"\n}',"/webapi/projects/42422/pull_requests/13055/diffs/31918/changes/1079":{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n+ },\n+ "keywords": [],\n+ "author": "",\n+ "license": "ISC"\n+}\n',highlighted_diff:null,id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},"/api/v3/projects/42422/pull_requests/13055/reviews":{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.net",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:" "},body:null,created_at:"2022-07-15T16:57:34.591+08:00",id:5100024,pending:!0,pull_request_id:12600136,updated_at:"2022-07-15T16:57:34.591+08:00"},"/webapi/projects/42422/pull_requests/13055/diffs/20699/changes_overview":[{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:1,deleted_file:!1,id:550,mark_as_read:!0,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:551,mark_as_read:!1,new_file:!0,new_path:"a.md",old_path:"a.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:552,mark_as_read:!1,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:553,mark_as_read:!1,new_file:!0,new_path:"aa.md",old_path:"aa.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:554,mark_as_read:!0,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:555,mark_as_read:!1,new_file:!0,new_path:"apiMeta.json",old_path:"apiMeta.json",renamed_file:!1,too_large:!0,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!0,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:556,mark_as_read:!1,new_file:!0,new_path:"assets/logo_white.gif",old_path:"assets/logo_white.gif",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:557,mark_as_read:!1,new_file:!1,new_path:"assets/斋藤飞鸟1.jpg",old_path:"assets/斋藤飞鸟.jpg",renamed_file:!0,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:558,mark_as_read:!1,new_file:!0,new_path:"b.md",old_path:"b.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:3,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:559,mark_as_read:!1,new_file:!0,new_path:"gbk.ts",old_path:"gbk.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:168,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:560,mark_as_read:!1,new_file:!0,new_path:"pom.xml",old_path:"pom.xml",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:4,deleted_file:!1,id:561,mark_as_read:!0,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:265,deleted_file:!1,id:562,mark_as_read:!1,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:49,deleted_file:!1,id:563,mark_as_read:!1,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:1,deleted_file:!1,id:564,mark_as_read:!1,new_file:!1,new_path:"src/public/css/main.scss",old_path:"src/public/css/main.scss",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:1,deleted_file:!1,id:565,mark_as_read:!1,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:7,deleted_file:!1,id:566,mark_as_read:!1,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"0",binary_file:!1,compare_diff_id:20699,del_line_num:22,deleted_file:!0,id:567,mark_as_read:!1,new_file:!1,new_path:"tsconfig.json",old_path:"tsconfig.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:2,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:2,deleted_file:!1,id:568,mark_as_read:!1,new_file:!1,new_path:"views/contact123.pug",old_path:"views/contact.pug",renamed_file:!0,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"0",binary_file:!1,compare_diff_id:20699,del_line_num:27,deleted_file:!0,id:569,mark_as_read:!1,new_file:!1,new_path:"views/home.pug",old_path:"views/home.pug",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:570,mark_as_read:!1,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1,updated_after_read:!1}],"/api/v3/projects/42422/repository/blame":[{commit:{author:null,author_email:"taian.lta@test.com",author_name:"taian.lta",authored_date:"2020-08-18T12:09:32+0800",committed_date:"2020-08-18T12:09:32+0800",committer:null,committer_email:"taian.lta@test.com",committer_name:"taian.lta",created_at:"2020-08-18T12:09:32+0800",id:"7c501a19ae4644814782622af41b72e0f65eaacd",message:" feat: 123",parent_ids:null,short_id:"7c501a19",title:" feat: 123",tree_hash:null},lines:[{current_number:1,effect_line:12,previous_number:1}]},{commit:{author:null,author_email:"taian.lta@test.com",author_name:"taian.lta",authored_date:"2020-08-18T12:09:32+0800",committed_date:"2020-08-18T12:09:32+0800",committer:null,committer_email:"taian.lta@test.com",committer_name:"taian.lta",created_at:"2020-08-18T12:09:32+0800",id:"7c501a19ae4644814782622af41b72e0f65eaacd2",message:" feat: 123",parent_ids:null,short_id:"7c501a19",title:" feat: 123",tree_hash:null},lines:[{current_number:15,effect_line:10,previous_number:1}]}]}}}]); \ No newline at end of file diff --git a/static/js/77.51425811.chunk.js b/static/js/77.188adee4.chunk.js similarity index 99% rename from static/js/77.51425811.chunk.js rename to static/js/77.188adee4.chunk.js index f4d39f6e2..955576cb6 100644 --- a/static/js/77.51425811.chunk.js +++ b/static/js/77.188adee4.chunk.js @@ -1 +1 @@ -(this.webpackJsonp=this.webpackJsonp||[]).push([[77],{"3Diz":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(n("jsC+")),a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{!r&&l.return&&l.return()}finally{if(a)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("qVdP");var o=n("cDcd"),i=s(o);n("MN5C");var l=s(n("cJAJ")),c=n("faye"),u=n("sYIF");function s(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.projectsId,n=e.branch,s=e.owner,f=e.changeBranch,p=e.branchList,d=e.tagflag,m=void 0===d||d,h=(0,o.useState)(n),v=a(h,2),y=v[0],b=v[1],g=(0,o.useState)(!1),E=a(g,2),w=E[0],_=E[1],O=(0,o.useRef)(null),x=(0,o.useRef)(null);(0,o.useEffect)((function(){document.addEventListener("click",j,!1)}),[]);var j=function(e){var t=e.target,n=(0,c.findDOMNode)(O.current),r=(0,c.findDOMNode)(x.current);if(n&&r){var a=n.contains(t),o=r.contains(t);a||o||_(!1)}};(0,o.useEffect)((function(){b(n)}),[n]);var N=i.default.createElement("div",{ref:O},i.default.createElement(l.default,{visible:w,changeBranch:function(e){_(!1);var t=(0,u.turnbar)(e);f(t)},tagflag:m,projectsId:t,owner:s,branchList:p}));return i.default.createElement(r.default,{placement:"bottomLeft",visible:w,overlay:N,overlayClassName:"branch-tagBox-list",trigger:["click"]},i.default.createElement("div",{className:"branch-tagBox",ref:x,onClick:function(){return _(!w)}},i.default.createElement("span",{className:"color-grey-9 mr3 ml8"},i.default.createElement("i",{className:"iconfont icon-fenzhi2 font-18"})),i.default.createElement("span",{className:"ant-dropdown-link task-hide",style:{fontWeight:"500",minWidth:"45px",maxWidth:"270px"}},y),i.default.createElement("i",{className:"showtag iconfont icon-sanjiaoxing-down font-15 color-grey-9 mr5 ml5 mt1"})))}},AySf:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p(n("CtXQ")),a=p(n("2/Rp")),o=p(n("8z0m")),i=Object.assign||function(e){for(var t=1;t0&&n.setState({fileList:(0,s.appendFileSizeToUploadFileAll)(e)})},n.onAttachmentRemove=function(e){if(!e.percent||100===e.percent)return n.deleteAttachment(e),!1},n.deleteAttachment=function(e){var t="/attachments/"+(e.response?e.response.id:e.uid)+".json";f.default.delete(t,{}).then((function(t){t.data&&(0===t.data.status?(n.setState((function(t){var n=t.fileList.indexOf(e),r=t.fileList.slice();return r.splice(n,1),{fileList:r}})),n.fileIdList(n.state.fileList)):n.props.showNotification(t.data.message))})).catch((function(e){console.log(e)}))},n.handleChange=function(e){var t=n.props.changeIsComplete;t&&t(!0);var r=e.file;if(r&&!r.type&&!n.checkFile(r.name))return;if("uploading"===e.file.status||"done"===e.file.status||"removed"===e.file.status){var a=e.fileList;n.setState({fileList:(0,s.appendFileSizeToUploadFileAll)(a)}),n.fileIdList(a)}},n.fileIdList=function(e){var t=[];e&&e.length>0&&e.map((function(e){return t.push(e.response&&(e.response.id||e.response.data&&e.response.data.id))})),t&&n.props.load&&n.props.load(t)},n.checkFile=function(e){for(var t=[".rar",".iso",".flv",".rmvb",".mmf",".ape",".vsdx",".msi",".md"],n=!1,r=0;r-1},n.deleteAttachment=function(e){var t="/attachments/"+e+".json";s.default.delete(t,{}).then((function(t){t.data&&(0===t.data.status?(n.setState({Deleted:n.state.Deleted.concat(e)}),n.props.showNotification("附件删除成功")):n.props.showNotification(t.data.message))})).catch((function(e){console.log(e)}))},n.state={canDelete:!1,show_video:!1,video_url:void 0,video_title:void 0,video_id:void 0,move_spin:!1,Deleted:[]},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:"render",value:function(){var e=this,t=this.state,n=t.Deleted,i=t.canDelete,l=t.show_video,s=t.video_url,p=t.video_title,d=t.move_spin,m=this.props.attachments;return c.default.createElement("div",null,m?c.default.createElement("div",{className:"attachmentsList mt5"},m.map((function(t,r){return c.default.createElement("div",{key:r,style:{display:n.length>0&&-1!==n.indexOf(t.id)?"none":"block",padding:"4px"},className:"attachment-list-div"},c.default.createElement(a.default,{spinning:d},e.is_video(t.title)?c.default.createElement("a",{onClick:function(){return e.show_video_modal(t)},className:"attachment-list-a"},c.default.createElement("i",{className:"iconfont icon-fujian mr8 paper-clip-color font-12"}),c.default.createElement("span",null,t.title),c.default.createElement("span",{className:"ml20"},t.filesize)):c.default.createElement(u.Link,{to:""+t.url,target:"_blank",className:"attachment-list-a",download:!0},c.default.createElement("i",{className:"iconfont icon-fujian mr8 paper-clip-color font-12"}),c.default.createElement("span",null,t.title),c.default.createElement("span",{className:"ml20"},t.filesize)),i?c.default.createElement(o.default,{placement:"bottom",title:"您确定要删除附件吗",okText:"是",cancelText:"否",onConfirm:function(){return e.deleteAttachment(t.id)}},c.default.createElement("span",{className:"attachment-list-delete fr"},c.default.createElement("i",{className:"iconfont icon-lajitong mr10 color-grey-9 font-14"}))):""))}))):"",l?c.default.createElement(r.default,{title:p,visible:!0,width:690,footer:null,onCancel:this.hide_video_modal},c.default.createElement(f.default,{video_url:s})):"")}}]),t}(l.Component);t.default=d},MN5C:function(e,t,n){},NJEC:function(e,t,n){"use strict";n.r(t);var r=n("cDcd"),a=n("VCL8"),o=n("3S7+"),i=n("CtXQ"),l=n("2/Rp"),c=n("YMnH"),u=n("ZvpZ"),s=n("H84U");function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(){return(p=Object.assign||function(e){for(var t=1;t .ant-select-auto-complete .ant-select-search__field.ant-input-affix-wrapper {\n display: inline;\n float: none;\n}\n",""]),e.exports=t},UQ5L:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{!r&&l.return&&l.return()}finally{if(a)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},a=n("cDcd"),o=l(a),i=l(n("6tYh"));function l(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=(0,a.useState)(null),n=r(t,2),l=n[0],c=n[1];return(0,a.useEffect)((function(){c(e.video_url)}),[]),o.default.createElement(i.default,{url:l,controls:!0,playing:!1})}},cJAJ:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=f(n("W9HT")),a=f(n("BvKs")),o=f(n("5rEg")),i=f(n("14Xm")),l=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{!r&&l.return&&l.return()}finally{if(a)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("T2oS"),n("lUTK"),n("5NDa");var c=n("cDcd"),u=f(c),s=n("tnhM");function f(e){return e&&e.__esModule?e:{default:e}}function p(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function r(a,o){try{var i=t[a](o),l=i.value}catch(e){return void n(e)}if(!i.done)return Promise.resolve(l).then((function(e){r("next",e)}),(function(e){r("throw",e)}));e(l)}("next")}))}}t.default=function(e){var t,n,f=(t=p(i.default.mark((function e(t,n){var r;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,s.getBranch)(t,n);case 2:r=e.sent,I(r),z(r),C(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)}),d=(n=p(i.default.mark((function e(t,n){var r;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,s.getTag)(t,n);case 2:r=e.sent,I(r),z(r),C(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)}),m=e.changeBranch,h=e.tagflag,v=e.projectsId,y=e.owner,b=e.visible,g=(0,c.useState)(void 0),E=l(g,2),w=E[0],_=E[1],O=(0,c.useState)(0),x=l(O,2),j=x[0],N=x[1],S=(0,c.useState)(!0),k=l(S,2),P=k[0],C=k[1],D=(0,c.useState)(void 0),T=l(D,2),L=T[0],I=T[1],R=(0,c.useState)(void 0),M=l(R,2),A=M[0],z=M[1],B=(0,c.useState)("branch"),F=l(B,2),V=F[0],U=F[1];return(0,c.useEffect)((function(){b&&(U("branch"),f(v,y),C(!0))}),[b]),u.default.createElement("div",{className:"overlayBranch"},u.default.createElement("div",{className:"padding15",style:{paddingBottom:"0px"}},u.default.createElement(o.default,{prefix:u.default.createElement("i",{className:"iconfont icon-sousuo_icon1 font-14"}),placeholder:"请输入分支"+(h?"或标签":"")+"名称搜索",autocomplete:"off",className:"OptionsInput",value:w,onChange:function(e){_(e.target.value);var t=e.target.value?L&&L.length>0&&L.filter((function(t){return t.name.indexOf(e.target.value)>-1})):L;z(t)}})),u.default.createElement(a.default,{mode:"horizontal",className:"navUl",selectedKeys:[V],onClick:function(e){U(e.key),C(!0),"branch"===e.key?(f(v,y),N(0)):(d(v,y),N(1))}},u.default.createElement(a.default.Item,{key:"branch"},"分支"),h&&u.default.createElement(a.default.Item,{key:"tag"},"标签")),u.default.createElement(r.default,{spinning:P},u.default.createElement("ul",{className:"OptionsUl",id:"ul-btn"},A&&A.length>0&&A.map((function(e,t){return u.default.createElement("li",{key:t,onClick:function(){return t=e.name,void m(t);var t}},u.default.createElement("a",{className:"task-hide ulALink"},e.name))})),A&&0===A.length&&u.default.createElement("p",{className:"listTips"},"暂无",w,0===j?"分支":"标签","~"))))}},lLsn:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a,o=_(n("2/Rp")),i=_(n("kaz8")),l=_(n("5rEg")),c=_(n("Vl3Y")),u=_(n("lrIw")),s=Object.assign||function(e){for(var t=1;t30||t.indexOf(" ")>0||t.match(/^\s+$/)||(0,w.trim)(t).length!=t.length?n("无效的标签名称,请参考右侧建议命名标签并确认长度在1~30个字符之间"):n()}}],validateFirst:!0})(m.default.createElement(u.default,{placeholder:"标记一个版本",onChange:function(e){var t=P.filter((function(t){return t.name.indexOf(e)>-1}));Y(ne(t))},style:{width:"200px"}},W))),m.default.createElement(x,null,"@"),m.default.createElement(v.default,{repo_id:r&&r.repo_id,projectsId:$,branch:A,changeBranch:function(e){z(e)},owner:te,history:h,tagflag:!1,branchList:r&&r.branches&&r.branches.list}),m.default.createElement("p",{className:"font-12 color-grey-6 weight400"},"选择一个已经存在的标签,或者在发布时新建一个标签")),m.default.createElement(c.default.Item,{className:"pt20"},_("name",{rules:[{required:!0,message:"请输入发行版的标题"},{validator:function(e,t,n){t.length>50?n("标题长度在1~50个字符之间"):n()}}],validateFirst:!0})(m.default.createElement(l.default,{placeholder:"发行版的标题"}))),m.default.createElement(y.default,{placeholder:"描述此发行版",height:200,mdID:"version-comments-description",initValue:L,onChange:I,noStorage:!0}),m.default.createElement("div",{className:"mt5 dragBox"},m.default.createElement(b.default,{className:"versionStyle",isComplete:!0,load:U,icon:m.default.createElement("i",{className:"iconfont icon-shangchuanicon dragIcon"}),size:100,showNotification:p}),ee&&q&&q.length>0?m.default.createElement(g.default,{attachments:q,showNotification:p,canDelete:!0}):""),m.default.createElement(c.default.Item,{className:"prerelease"},_("prerelease",{rules:[],validateFirst:!0})(m.default.createElement(i.default,{defaultChecked:!Z},"这是一个预览版本"))),m.default.createElement("p",{className:"pt20 pb20",style:{borderTop:"1px solid #eee"}},m.default.createElement(o.default,{onClick:function(){j((function(e,t){if(!e)if(ee){var n="/"+te+"/"+$+"/releases/"+ee+".json";E.default.put(n,s({},t,{body:L,attachment_ids:V,target_commitish:A})).then((function(e){e&&(p("版本修改成功!"),h.push("/"+te+"/"+$+"/releases"))}))}else{var r="/"+te+"/"+$+"/releases.json";E.default.post(r,s({},t,{body:L,attachment_ids:V,target_commitish:A})).then((function(e){e&&(p("版本发布成功!"),h.push("/"+te+"/"+$+"/releases"))}))}}))},type:"primary",className:"mr30 btnblue"},ee?"保存":"创建","发行版"),m.default.createElement(o.default,{onClick:function(){return h.push("/"+te+"/"+$+"/releases")},className:"btngrey"},"取消"))),m.default.createElement("div",{className:"versionTips"},m.default.createElement("div",{className:"infosTip"},m.default.createElement("p",{className:"font-16 mb14 weight"},"标签命名建议"),m.default.createElement("p",{className:"mb15"},"通常的做法是在版本名称前加上字母 v 前缀, v1.0 或者 v2.3.4。"),m.default.createElement("p",null,"如果标签不适合在生产环境下使用,请在版本名称后添加预发行版本。例如:v0.2-alpha 或者 v5.9-beta.3。")),m.default.createElement("div",{className:"infosTip"},m.default.createElement("p",{className:"font-16 mb14 weight"},"语义化版本"),m.default.createElement("p",null,"如果你是第一次发布版本,我们强烈建议你阅读",m.default.createElement("a",{href:"https://semver.org/lang/zh-CN",target:"_blank",className:"color-blue"},"语义化版本"),"。")),m.default.createElement("div",{className:"infosTip"},m.default.createElement("p",{className:"font-16 mb14 weight"},"附件大小说明"),m.default.createElement("p",null,"单个附件不能超过 100M(GVP 项目200M),每个仓库总附件不可超过 1G(推荐项目不可超过 5G;GVP 项目不可超过 20G)。附件总容量统计包括仓库附件和发行版附件。"))))})))},lrIw:function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return P}));var r=n("cDcd"),a=n("i+PK"),o=n("eHJ2"),i=n.n(o);function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(){return(c=Object.assign||function(e){for(var t=1;t0&&n.setState({fileList:(0,s.appendFileSizeToUploadFileAll)(e)})},n.onAttachmentRemove=function(e){if(!e.percent||100===e.percent)return n.deleteAttachment(e),!1},n.deleteAttachment=function(e){var t="/attachments/"+(e.response?e.response.id:e.uid)+".json";f.default.delete(t,{}).then((function(t){t.data&&(0===t.data.status?(n.setState((function(t){var n=t.fileList.indexOf(e),r=t.fileList.slice();return r.splice(n,1),{fileList:r}})),n.fileIdList(n.state.fileList)):n.props.showNotification(t.data.message))})).catch((function(e){console.log(e)}))},n.handleChange=function(e){var t=n.props.changeIsComplete;t&&t(!0);var r=e.file;if(r&&!r.type&&!n.checkFile(r.name))return;if("uploading"===e.file.status||"done"===e.file.status||"removed"===e.file.status){var a=e.fileList;n.setState({fileList:(0,s.appendFileSizeToUploadFileAll)(a)}),n.fileIdList(a)}},n.fileIdList=function(e){var t=[];e&&e.length>0&&e.map((function(e){return t.push(e.response&&(e.response.id||e.response.data&&e.response.data.id))})),t&&n.props.load&&n.props.load(t)},n.checkFile=function(e){for(var t=[".rar",".iso",".flv",".rmvb",".mmf",".ape",".vsdx",".msi",".md"],n=!1,r=0;r-1},n.deleteAttachment=function(e){var t="/attachments/"+e+".json";s.default.delete(t,{}).then((function(t){t.data&&(0===t.data.status?(n.setState({Deleted:n.state.Deleted.concat(e)}),n.props.showNotification("附件删除成功")):n.props.showNotification(t.data.message))})).catch((function(e){console.log(e)}))},n.state={canDelete:!1,show_video:!1,video_url:void 0,video_title:void 0,video_id:void 0,move_spin:!1,Deleted:[]},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:"render",value:function(){var e=this,t=this.state,n=t.Deleted,i=t.canDelete,l=t.show_video,s=t.video_url,p=t.video_title,d=t.move_spin,m=this.props.attachments;return c.default.createElement("div",null,m?c.default.createElement("div",{className:"attachmentsList mt5"},m.map((function(t,r){return c.default.createElement("div",{key:r,style:{display:n.length>0&&-1!==n.indexOf(t.id)?"none":"block",padding:"4px"},className:"attachment-list-div"},c.default.createElement(a.default,{spinning:d},e.is_video(t.title)?c.default.createElement("a",{onClick:function(){return e.show_video_modal(t)},className:"attachment-list-a"},c.default.createElement("i",{className:"iconfont icon-fujian mr8 paper-clip-color font-12"}),c.default.createElement("span",null,t.title),c.default.createElement("span",{className:"ml20"},t.filesize)):c.default.createElement(u.Link,{to:""+t.url,target:"_blank",className:"attachment-list-a",download:!0},c.default.createElement("i",{className:"iconfont icon-fujian mr8 paper-clip-color font-12"}),c.default.createElement("span",null,t.title),c.default.createElement("span",{className:"ml20"},t.filesize)),i?c.default.createElement(o.default,{placement:"bottom",title:"您确定要删除附件吗",okText:"是",cancelText:"否",onConfirm:function(){return e.deleteAttachment(t.id)}},c.default.createElement("span",{className:"attachment-list-delete fr"},c.default.createElement("i",{className:"iconfont icon-lajitong mr10 color-grey-9 font-14"}))):""))}))):"",l?c.default.createElement(r.default,{title:p,visible:!0,width:690,footer:null,onCancel:this.hide_video_modal},c.default.createElement(f.default,{video_url:s})):"")}}]),t}(l.Component);t.default=d},MN5C:function(e,t,n){},NJEC:function(e,t,n){"use strict";n.r(t);var r=n("cDcd"),a=n("VCL8"),o=n("3S7+"),i=n("CtXQ"),l=n("2/Rp"),c=n("YMnH"),u=n("ZvpZ"),s=n("H84U");function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(){return(p=Object.assign||function(e){for(var t=1;t .ant-select-auto-complete .ant-select-search__field.ant-input-affix-wrapper {\n display: inline;\n float: none;\n}\n",""]),e.exports=t},UQ5L:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{!r&&l.return&&l.return()}finally{if(a)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},a=n("cDcd"),o=l(a),i=l(n("6tYh"));function l(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=(0,a.useState)(null),n=r(t,2),l=n[0],c=n[1];return(0,a.useEffect)((function(){c(e.video_url)}),[]),o.default.createElement(i.default,{url:l,controls:!0,playing:!1})}},cJAJ:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=f(n("W9HT")),a=f(n("BvKs")),o=f(n("5rEg")),i=f(n("14Xm")),l=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{!r&&l.return&&l.return()}finally{if(a)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("T2oS"),n("lUTK"),n("5NDa");var c=n("cDcd"),u=f(c),s=n("tnhM");function f(e){return e&&e.__esModule?e:{default:e}}function p(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function r(a,o){try{var i=t[a](o),l=i.value}catch(e){return void n(e)}if(!i.done)return Promise.resolve(l).then((function(e){r("next",e)}),(function(e){r("throw",e)}));e(l)}("next")}))}}t.default=function(e){var t,n,f=(t=p(i.default.mark((function e(t,n){var r;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,s.getBranch)(t,n);case 2:r=e.sent,I(r),z(r),C(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)}),d=(n=p(i.default.mark((function e(t,n){var r;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,s.getTag)(t,n);case 2:r=e.sent,I(r),z(r),C(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)}),m=e.changeBranch,h=e.tagflag,v=e.projectsId,y=e.owner,b=e.visible,g=(0,c.useState)(void 0),E=l(g,2),w=E[0],_=E[1],O=(0,c.useState)(0),x=l(O,2),j=x[0],N=x[1],S=(0,c.useState)(!0),k=l(S,2),P=k[0],C=k[1],D=(0,c.useState)(void 0),T=l(D,2),L=T[0],I=T[1],R=(0,c.useState)(void 0),M=l(R,2),A=M[0],z=M[1],B=(0,c.useState)("branch"),F=l(B,2),V=F[0],U=F[1];return(0,c.useEffect)((function(){b&&(U("branch"),f(v,y),C(!0))}),[b]),u.default.createElement("div",{className:"overlayBranch"},u.default.createElement("div",{className:"padding15",style:{paddingBottom:"0px"}},u.default.createElement(o.default,{prefix:u.default.createElement("i",{className:"iconfont icon-sousuo_icon1 font-14"}),placeholder:"请输入分支"+(h?"或标签":"")+"名称搜索",autocomplete:"off",className:"OptionsInput",value:w,onChange:function(e){_(e.target.value);var t=e.target.value?L&&L.length>0&&L.filter((function(t){return t.name.indexOf(e.target.value)>-1})):L;z(t)}})),u.default.createElement(a.default,{mode:"horizontal",className:"navUl",selectedKeys:[V],onClick:function(e){U(e.key),C(!0),"branch"===e.key?(f(v,y),N(0)):(d(v,y),N(1))}},u.default.createElement(a.default.Item,{key:"branch"},"分支"),h&&u.default.createElement(a.default.Item,{key:"tag"},"标签")),u.default.createElement(r.default,{spinning:P},u.default.createElement("ul",{className:"OptionsUl",id:"ul-btn"},A&&A.length>0&&A.map((function(e,t){return u.default.createElement("li",{key:t,onClick:function(){return t=e.name,void m(t);var t}},u.default.createElement("a",{className:"task-hide ulALink"},e.name))})),A&&0===A.length&&u.default.createElement("p",{className:"listTips"},"暂无",w,0===j?"分支":"标签","~"))))}},lLsn:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a,o=_(n("2/Rp")),i=_(n("kaz8")),l=_(n("5rEg")),c=_(n("Vl3Y")),u=_(n("lrIw")),s=Object.assign||function(e){for(var t=1;t30||t.indexOf(" ")>0||t.match(/^\s+$/)||(0,w.trim)(t).length!=t.length?n("无效的标签名称,请参考右侧建议命名标签并确认长度在1~30个字符之间"):n()}}],validateFirst:!0})(m.default.createElement(u.default,{placeholder:"标记一个版本",onChange:function(e){var t=P.filter((function(t){return t.name.indexOf(e)>-1}));Y(ne(t))},style:{width:"200px"}},W))),m.default.createElement(x,null,"@"),m.default.createElement(v.default,{repo_id:r&&r.repo_id,projectsId:$,branch:A,changeBranch:function(e){z(e)},owner:te,history:h,tagflag:!1,branchList:r&&r.branches&&r.branches.list}),m.default.createElement("p",{className:"font-12 color-grey-6 weight400"},"选择一个已经存在的标签,或者在发布时新建一个标签")),m.default.createElement(c.default.Item,{className:"pt20"},_("name",{rules:[{required:!0,message:"请输入发行版的标题"},{validator:function(e,t,n){t.length>50?n("标题长度在1~50个字符之间"):n()}}],validateFirst:!0})(m.default.createElement(l.default,{placeholder:"发行版的标题"}))),m.default.createElement(y.default,{placeholder:"描述此发行版",height:200,mdID:"version-comments-description",initValue:L,onChange:I,noStorage:!0}),m.default.createElement("div",{className:"mt5 dragBox"},m.default.createElement(b.default,{className:"versionStyle",isComplete:!0,load:U,icon:m.default.createElement("i",{className:"iconfont icon-shangchuanicon dragIcon"}),size:100,showNotification:p}),ee&&q&&q.length>0?m.default.createElement(g.default,{attachments:q,showNotification:p,canDelete:!0}):""),m.default.createElement(c.default.Item,{className:"prerelease"},_("prerelease",{rules:[],validateFirst:!0})(m.default.createElement(i.default,{defaultChecked:!Z},"这是一个预览版本"))),m.default.createElement("p",{className:"pt20 pb20",style:{borderTop:"1px solid #eee"}},m.default.createElement(o.default,{onClick:function(){j((function(e,t){if(!e)if(ee){var n="/"+te+"/"+$+"/releases/"+ee+".json";E.default.put(n,s({},t,{body:L,attachment_ids:V,target_commitish:A})).then((function(e){e&&(p("版本修改成功!"),h.push("/"+te+"/"+$+"/releases"))}))}else{var r="/"+te+"/"+$+"/releases.json";E.default.post(r,s({},t,{body:L,attachment_ids:V,target_commitish:A})).then((function(e){e&&(p("版本发布成功!"),h.push("/"+te+"/"+$+"/releases"))}))}}))},type:"primary",className:"mr30 btnblue"},ee?"保存":"创建","发行版"),m.default.createElement(o.default,{onClick:function(){return h.push("/"+te+"/"+$+"/releases")},className:"btngrey"},"取消"))),m.default.createElement("div",{className:"versionTips"},m.default.createElement("div",{className:"infosTip"},m.default.createElement("p",{className:"font-16 mb14 weight"},"标签命名建议"),m.default.createElement("p",{className:"mb15"},"通常的做法是在版本名称前加上字母 v 前缀, v1.0 或者 v2.3.4。"),m.default.createElement("p",null,"如果标签不适合在生产环境下使用,请在版本名称后添加预发行版本。例如:v0.2-alpha 或者 v5.9-beta.3。")),m.default.createElement("div",{className:"infosTip"},m.default.createElement("p",{className:"font-16 mb14 weight"},"语义化版本"),m.default.createElement("p",null,"如果你是第一次发布版本,我们强烈建议你阅读",m.default.createElement("a",{href:"https://semver.org/lang/zh-CN",target:"_blank",className:"color-blue"},"语义化版本"),"。")),m.default.createElement("div",{className:"infosTip"},m.default.createElement("p",{className:"font-16 mb14 weight"},"附件大小说明"),m.default.createElement("p",null,"单个附件不能超过 100M(GVP 项目200M),每个仓库总附件不可超过 1G(推荐项目不可超过 5G;GVP 项目不可超过 20G)。附件总容量统计包括仓库附件和发行版附件。"))))})))},lrIw:function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return P}));var r=n("cDcd"),a=n("i+PK"),o=n("eHJ2"),i=n.n(o);function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(){return(c=Object.assign||function(e){for(var t=1;t0){var a=e;r&&(a=e.filter((function(e){return e.name.toLowerCase().indexOf(r.toLowerCase())>-1})));var o=a&&a.map((function(e){return g.default.createElement(_,{key:e.id,value:e.name},e.name)}));n.setState(v({},t+"_list",o))}},n.subMitFrom=function(){n.props.form.validateFieldsAndScroll((function(e,t){if(e)n.setState({isSpin:!1});else{n.setState({isSpin:!0});var r=n.props.match.params.projectsType,a=n.state,o=a.project_language_id,i=a.project_category_id,l=a.license_id,c=a.ignore_id,s=a.owners_id,u=a.ignoreFlag,d=a.licenseFlag,f=a.categoreFlag,g=a.languageFlag,m=h.Base64.encode(t.password),x=r&&"mirror"===r?"/projects/migrate.json":"/projects.json";sessionStorage.newProjectValue=JSON.stringify(p({},t,{project_language_id:o,project_category_id:i,license_id:l,ignore_id:c})),b.default.post(x,p({},t,{auth_password:m,project_language_id:g?o:void 0,project_category_id:f?i:void 0,license_id:d?l:void 0,ignore_id:u?c:void 0,user_id:s})).then((function(e){e&&e.data.id&&(r&&"mirror"!==r&&n.props.showNotification("项目创建成功!"),n.props.history.push({pathname:"/"+e.data.login+"/"+e.data.identifier,query:{showNps:!0}})),n.setState({isSpin:!1})})).catch((function(e){n.setState({isSpin:!1})}))}}))},n.ChangePlatform=function(e,t,r,a){var o;n.setOptionsList(a,r,e),n.setState((v(o={},r+"_id",t.key),v(o,r+"_name",e),o))},n.blurCategory=function(e,t,r){var a,o=t&&t.filter((function(t){return t.name===e}));o&&0!==o.length||(n.props.form.setFieldsValue(v({},r,void 0)),n.setState((v(a={},r+"_name",void 0),v(a,r+"_id",void 0),a)),n.setOptionsList(t,r))},n.checkId=function(e,t,n,r,a){var o=r.filter((function(e){return e.name===t}));t||n(),o&&o.length>0?n():n("请在下拉选项中选择正确的"+a+"!"),n()},n.changeMirrorCheck=function(){var e=n.state.mirrorCheck;n.setState({mirrorCheck:!e})},n.ChangeAddr=function(e){var t=e.target.value;if(t.indexOf("/")>-1){var r=t.split("/"),a=r[r.length-1];if(a.indexOf(".")>-1){var o=a.split(".")[0];if(!o)return;n.props.form.setFieldsValue({repository_name:o,name:o})}else n.props.form.setFieldsValue({repository_name:a})}},n.changeDesc=function(e){var t=e.target.value;n.setState({descNum:t?t.length:0})},n.showCateFunc=function(e){var t=n.state.CategoryList;n.setState({categoreFlag:e.target.checked}),e.target.checked&&(!t||t&&0===t.length)&&n.getCategory()},n.showLanguageFunc=function(e){var t=n.state.LanguageList;n.setState({languageFlag:e.target.checked}),e.target.checked&&(!t||t&&0===t.length)&&n.getLanguage()},n.showIgnoreFunc=function(e){var t=n.state.GitignoreList;n.setState({ignoreFlag:e.target.checked}),e.target.checked&&(!t||t&&0===t.length)&&n.getGitignore()},n.showLicenseFunc=function(e){var t=n.state.LicensesList;n.setState({licenseFlag:e.target.checked}),e.target.checked&&(!t||t&&0===t.length)&&n.getLicenses()},n.state={preType:"0",languageValue:"0",gitignoreType:"0",LicensesType:"0",mirrorCheck:!1,CategoryList:void 0,LanguageList:void 0,GitignoreList:void 0,LicensesList:void 0,OwnerList:void 0,isSpin:!1,project_language_id:void 0,project_category_id:void 0,license_id:void 0,ignore_id:void 0,owners_id:void 0,owners_name:void 0,project_language_list:void 0,project_category_list:void 0,license_list:void 0,ignore_list:void 0,owners_list:void 0,project_language_name:void 0,project_category_name:void 0,license_name:void 0,ignore_name:void 0,descNum:0,categoreFlag:!1,languageFlag:!1,ignoreFlag:!1,licenseFlag:!1},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),d(t,[{key:"render",value:function(){var e=this,t=this.props.form.getFieldDecorator,n=this.props.match.params.projectsType,s=this.state,u=s.CategoryList,p=s.LanguageList,d=s.GitignoreList,f=s.LicensesList,h=s.isSpin,b=s.owners_list,y=s.OwnerList,v=s.project_language_list,_=s.project_category_list,w=s.license_list,k=s.ignore_list,E=s.mirrorCheck,j=s.descNum,O=s.ignoreFlag,C=s.licenseFlag,S=s.languageFlag,F=s.categoreFlag;return g.default.createElement("div",{className:"main back-white",style:{padding:"0px",border:"none"}},g.default.createElement("div",{className:"newPanel"},g.default.createElement("div",{className:"newPanel_title"},n&&"mirror"===n?"导入":"新建","项目"),g.default.createElement(r.default,{spinning:h},g.default.createElement(l.default,null,g.default.createElement("div",{className:"newPanel_content"},n&&"mirror"===n&&g.default.createElement(g.default.Fragment,null,g.default.createElement(l.default.Item,{label:"导入仓库URL",style:{marginBottom:"0px"},colon:!1},t("clone_addr",{rules:[{required:!0,message:"请填写镜像版本库地址"}]})(g.default.createElement(c.default,{placeholder:"请输入需要导入到本项目的仓库地址",onBlur:this.ChangeAddr}))),g.default.createElement("p",{className:"formTip color-orange"},"示例:https://github.com/facebook/reack.git")),n&&"mirror"===n&&g.default.createElement("div",{className:"pb10"},g.default.createElement("p",{className:"mt10 mb10 color-grey-3 pointer",onClick:this.changeMirrorCheck},"需要授权验证",g.default.createElement("i",{className:E?"iconfont icon-xiajiantou font-13 ml10 color-grey-8":"iconfont icon-youjiantou font-13 ml10 color-grey-8"}),g.default.createElement("span",{className:"ml20 font-12 color-red"},"如果导入项目为私有仓库,则必须填写相应平台正确的用户名和密码")),E&&g.default.createElement("div",{className:"df mb10",style:{alignItems:"center"}},g.default.createElement("span",{className:"mr10"},"用户名"),g.default.createElement("input",{type:"password",style:{display:"none"}}),g.default.createElement(l.default.Item,{style:{marginBottom:"0px"},label:""},t("auth_username",{rules:[]})(g.default.createElement(c.default,{placeholder:"请输入对应平台的登录用户名",style:{width:"240px"}}))),g.default.createElement("span",{className:"mr10"},"密码"),g.default.createElement(l.default.Item,{style:{marginBottom:"0px"}},t("password",{rules:[]})(g.default.createElement(c.default.Password,{placeholder:"请输入对应平台的登录密码",autocomplete:"new-password",style:{width:"240px"}}))))),g.default.createElement(x.AlignCenter,null,g.default.createElement(l.default.Item,{label:"拥有者",style:{width:"260px"},colon:!1,className:"explainPos"},t("user_id",{rules:[{required:!0,message:"请选择拥有者"},{validator:function(t,n,r){return e.checkId(t,n,r,y,"拥有者")}}]})(g.default.createElement(i.default,{style:{width:"260px",height:"35px"},placeholder:"请选择拥有者",onChange:function(t,n){return e.ChangePlatform(t,n,"owners",y)},className:"plateAutoComplete",onBlur:function(t){return e.blurCategory(t,y,"owners")}},b))),g.default.createElement("span",{className:"ml10 mr10 mt10 font-18"},"/"),g.default.createElement(l.default.Item,{label:"项目名称",className:"flex1 explainPos",colon:!1},t("name",{rules:[{required:!0,message:"请填写项目名称"}]})(g.default.createElement(c.default,{placeholder:"例如:团队协作方法与研究",maxLength:50})))),g.default.createElement(l.default.Item,{label:g.default.createElement("span",null,"项目标识 ",g.default.createElement("span",{className:"color-grey-9"},"(项目url标识部分)")),colon:!1},t("repository_name",{rules:[{required:!0,message:"请填写项目标识"}]})(g.default.createElement(c.default,{placeholder:"项目标识请使用与项目相关的英文关键字",maxLength:100}))),g.default.createElement("div",{className:"pr"},g.default.createElement("span",{className:"toprightNum"},j,"/200"),g.default.createElement(l.default.Item,{label:"项目简介",colon:!1,style:{marginBottom:"0px"}},t("description",{rules:[]})(g.default.createElement(c.default.TextArea,{maxLength:200,placeholder:"项目的介绍",autoSize:{minRows:2,maxRows:6},onChange:this.changeDesc})))),("deposit"===n||!n)&&g.default.createElement(g.default.Fragment,null,g.default.createElement(l.default.Item,{className:"privatePart"},t("ignoreFlag")(g.default.createElement(o.default,{checked:O,onChange:function(t){return e.showIgnoreFunc(t)}},".gitignore"))),O&&g.default.createElement(l.default.Item,null,t("ignore",{rules:[{required:O,message:"请选择gitignore"},{validator:function(t,n,r){return e.checkId(t,n,r,d,"gitignore")}}]})(g.default.createElement(i.default,{placeholder:"请选择gitignore,用来定义哪些文件不需要添加到版本管理中",onChange:function(t,n){return e.ChangePlatform(t,n,"ignore",d)},className:"plateAutoComplete",onBlur:function(t){return e.blurCategory(t,d,"ignore")}},k))),g.default.createElement(l.default.Item,{className:"privatePart"},t("licenseFlag")(g.default.createElement(o.default,{checked:C,onChange:function(t){return e.showLicenseFunc(t)}},"开源许可证"))),C&&g.default.createElement(l.default.Item,null,t("license",{rules:[{required:C,message:"请选择开源许可证"},{validator:function(t,n,r){return e.checkId(t,n,r,f,"开源许可证")}}]})(g.default.createElement(i.default,{placeholder:"请选择开源许可证",onChange:function(t,n){return e.ChangePlatform(t,n,"license",f)},className:"plateAutoComplete",onBlur:function(t){return e.blurCategory(t,f,"license")}},w)))),g.default.createElement(l.default.Item,{className:"privatePart"},t("private")(g.default.createElement(o.default,{value:"limit"},"将项目设为私有",g.default.createElement("span",{className:"font-13 color-grey-9"},"(只有项目所有人或拥有权限的项目成员才能看到)")))),n&&"mirror"===n&&g.default.createElement(l.default.Item,{className:"privatePart"},t("is_mirror")(g.default.createElement(o.default,{value:"limit"},"该仓库将是一个",g.default.createElement("span",{className:"color-blue"},"镜像"),"(设置为镜像后,该仓库为只读,每24小时定时同步一次)"))),g.default.createElement(l.default.Item,{style:{margin:"0px"},className:"privatePart"},t("categoreFlag")(g.default.createElement(o.default,{checked:F,onChange:function(t){return e.showCateFunc(t)}},"项目类别"))),F&&g.default.createElement(l.default.Item,{className:"privatePart"},t("project_category",{rules:[{required:F,message:"请选择项目类别"},{validator:function(t,n,r){return e.checkId(t,n,r,u,"项目类别")}}]})(g.default.createElement(i.default,{placeholder:"请选择项目类别",onChange:function(t,n){return e.ChangePlatform(t,n,"project_category",u)},className:"plateAutoComplete",onBlur:function(t){return e.blurCategory(t,u,"project_category")}},_))),g.default.createElement(l.default.Item,{className:"privatePart"},t("languageFlag")(g.default.createElement(o.default,{checked:S,onChange:function(t){return e.showLanguageFunc(t)}},"项目语言"))),S&&g.default.createElement(l.default.Item,null,t("project_language",{rules:[{required:S,message:"请选择项目语言"},{validator:function(t,n,r){return e.checkId(t,n,r,p,"项目语言")}}]})(g.default.createElement(i.default,{placeholder:"请选择项目语言",onChange:function(t,n){return e.ChangePlatform(t,n,"project_language",p)},className:"plateAutoComplete",onBlur:function(t){return e.blurCategory(t,p,"project_language")}},v))),g.default.createElement("div",{className:"mt20"},"注:",g.default.createElement("span",{className:"ant-form-item-required"})," 为必填项,否则为选填"),g.default.createElement(l.default.Item,{className:"formTip mt20"},g.default.createElement(a.default,{type:"primary",onClick:this.subMitFrom,className:"mr20"},n&&"mirror"===n?"导入":"创建","项目"),g.default.createElement(m.Link,{to:"/explore",className:"btn_32"},"取消")))))))}}]),t}(f.Component),k=l.default.create({name:"NewWorkForm"})(w);t.default=k},"O/iA":function(e,t,n){var r=n("SE3x");"string"==typeof r&&(r=[[e.i,r,""]]);var a={hmr:!0,transform:void 0};n("aET+")(r,a);r.locals&&(e.exports=r.locals)},O3gP:function(e,t,n){"use strict";n.r(t);n("cIOH"),n("O/iA"),n("OaEy"),n("5NDa")},QkTP:function(e,t,n){},SE3x:function(e,t,n){(t=n("JPst")(!1)).push([e.i,"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-select-auto-complete {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5;\n list-style: none;\n font-feature-settings: 'tnum';\n}\n.ant-select-auto-complete.ant-select .ant-select-selection {\n border: 0;\n box-shadow: none;\n}\n.ant-select-auto-complete.ant-select .ant-select-selection__rendered {\n height: 100%;\n margin-right: 0;\n margin-left: 0;\n line-height: 32px;\n}\n.ant-select-auto-complete.ant-select .ant-select-selection__placeholder {\n margin-right: 12px;\n margin-left: 12px;\n}\n.ant-select-auto-complete.ant-select .ant-select-selection--single {\n height: auto;\n}\n.ant-select-auto-complete.ant-select .ant-select-search--inline {\n position: static;\n float: left;\n}\n.ant-select-auto-complete.ant-select-allow-clear .ant-select-selection:hover .ant-select-selection__rendered {\n margin-right: 0 !important;\n}\n.ant-select-auto-complete.ant-select .ant-input {\n height: 32px;\n line-height: 1.5;\n background: transparent;\n border-width: 1px;\n}\n.ant-select-auto-complete.ant-select .ant-input:focus,\n.ant-select-auto-complete.ant-select .ant-input:hover {\n border-color: #6e90ff;\n border-right-width: 1px !important;\n}\n.ant-select-auto-complete.ant-select .ant-input[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n cursor: not-allowed;\n opacity: 1;\n background-color: transparent;\n}\n.ant-select-auto-complete.ant-select .ant-input[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px !important;\n}\n.ant-select-auto-complete.ant-select-lg .ant-select-selection__rendered {\n line-height: 40px;\n}\n.ant-select-auto-complete.ant-select-lg .ant-input {\n height: 40px;\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.ant-select-auto-complete.ant-select-sm .ant-select-selection__rendered {\n line-height: 24px;\n}\n.ant-select-auto-complete.ant-select-sm .ant-input {\n height: 24px;\n padding-top: 1px;\n padding-bottom: 1px;\n}\n.ant-input-group > .ant-select-auto-complete .ant-select-search__field.ant-input-affix-wrapper {\n display: inline;\n float: none;\n}\n",""]),e.exports=t},lrIw:function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return F}));var r=n("cDcd"),a=n("i+PK"),o=n("eHJ2"),i=n.n(o);function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(){return(c=Object.assign||function(e){for(var t=1;t li{\n list-style-type: decimal;\n color:#888;\n height:24px;\n line-height:24px;\n }\n}"],["{\n padding-left: 20px;\n & > li{\n list-style-type: decimal;\n color:#888;\n height:24px;\n line-height:24px;\n }\n}"]),E=L(["{\n color:#28BD6C!important;\n position:relative;\n &:after{\n position:absolute;\n bottom:-2px;\n left:0px;\n width:100%;\n height:1px;\n content:'';\n background:#28BD6C;\n }\n}"],["{\n color:#28BD6C!important;\n position:relative;\n &:after{\n position:absolute;\n bottom:-2px;\n left:0px;\n width:100%;\n height:1px;\n content:'';\n background:#28BD6C;\n }\n}"]),j=L(["{\n height:32px;\n line-height:32px;\n border-radius:2px;\n background-color:#BBBBBB;\n color:#fff;\n padding:0px 12px;\n display:inline-block;\n min-width:64px;\n text-align:center;\n letter-spacing: 4px;\n}"],["{\n height:32px;\n line-height:32px;\n border-radius:2px;\n background-color:#BBBBBB;\n color:#fff;\n padding:0px 12px;\n display:inline-block;\n min-width:64px;\n text-align:center;\n letter-spacing: 4px;\n}"]),O=L(["{\n width:1200px;\n margin:20px auto;\n text-align:center;\n display:flex;\n align-Items:center;\n background-color:#fff;\n justify-content: center;\n}"],["{\n width:1200px;\n margin:20px auto;\n text-align:center;\n display:flex;\n align-Items:center;\n background-color:#fff;\n justify-content: center;\n}"]),C=L(["{\n background:#fafafa;\n padding:20px 30px;\n width:100%;\n}"],["{\n background:#fafafa;\n padding:20px 30px;\n width:100%;\n}"]),S=n("vOnD"),F=(r=S)&&r.__esModule?r:{default:r};function L(e,t){return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}t.Banner=F.default.div(a),t.AlignCenterBetween=F.default.div(o),t.FlexAJ=F.default.div(i),t.AlignCenter=F.default.div(l),t.AlignTop=F.default.div(c),t.AlignAJBottom=F.default.div(s),t.Box=F.default.div(u),t.LongWidth=F.default.div(p),t.Long=F.default.div(d),t.ShortWidth=F.default.div(f),t.Short=F.default.div(g),t.Gap=F.default.div(m),t.WhiteBack=F.default.div(h),t.Blueline=F.default.a(x),t.Redline=F.default.a(b,(function(e){return e.bold?"#fff":"#F73030"}),(function(e){return e.bold?"#F73030":"#fff"})),t.Greenline=F.default.a(y,(function(e){return e.bold?"#fff":"#28BD6C"}),(function(e){return e.bold?"#28BD6C":"#fff"})),t.Greenback=F.default.a(v),t.Blueback=F.default.a(_),t.Redback=F.default.a(w),t.NumUl=F.default.ul(k),t.GreenUnder=F.default.a(E),t.Cancel=F.default.a(j),t.Content=F.default.div(O),t.GroupProjectBackgroup=F.default.div(C)}}]); \ No newline at end of file diff --git a/static/js/96.e576abde.chunk.js b/static/js/96.e576abde.chunk.js deleted file mode 100644 index 9cb901880..000000000 --- a/static/js/96.e576abde.chunk.js +++ /dev/null @@ -1 +0,0 @@ -(this.webpackJsonp=this.webpackJsonp||[]).push([[96],{MByq:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=y(n("W9HT")),a=y(n("2/Rp")),o=y(n("kaz8")),i=y(n("lrIw")),l=y(n("Vl3Y")),c=y(n("5rEg")),s=y(n("kLXV")),u=y(n("2fM7")),p=Object.assign||function(e){for(var t=1;t0){var a=e;r&&(a=e.filter((function(e){return e.name.toLowerCase().indexOf(r.toLowerCase())>-1})));var o=a&&a.map((function(e){return g.default.createElement(_,{key:e.id,value:e.name},e.name)}));n.setState(v({},t+"_list",o))}},n.subMitFrom=function(){n.props.form.validateFieldsAndScroll((function(e,t){if(e)n.setState({isSpin:!1});else{n.setState({isSpin:!0});var r=n.props.match.params.projectsType,a=n.state,o=a.project_language_id,i=a.project_category_id,l=a.license_id,c=a.ignore_id,s=a.owners_id,u=a.ignoreFlag,d=a.licenseFlag,f=a.categoreFlag,g=a.languageFlag,m=h.Base64.encode(t.password),x=r&&"mirror"===r?"/projects/migrate.json":"/projects.json";sessionStorage.newProjectValue=JSON.stringify(p({},t,{project_language_id:o,project_category_id:i,license_id:l,ignore_id:c})),b.default.post(x,p({},t,{auth_password:m,project_language_id:g?o:void 0,project_category_id:f?i:void 0,license_id:d?l:void 0,ignore_id:u?c:void 0,user_id:s})).then((function(e){e&&e.data.id&&(r&&"mirror"!==r&&n.props.showNotification("项目创建成功!"),n.props.history.push({pathname:"/"+e.data.login+"/"+e.data.identifier,query:{showNps:!0}})),n.setState({isSpin:!1})})).catch((function(e){n.setState({isSpin:!1})}))}}))},n.ChangePlatform=function(e,t,r,a){var o;n.setOptionsList(a,r,e),n.setState((v(o={},r+"_id",t.key),v(o,r+"_name",e),o))},n.blurCategory=function(e,t,r){var a,o=t&&t.filter((function(t){return t.name===e}));o&&0!==o.length||(n.props.form.setFieldsValue(v({},r,void 0)),n.setState((v(a={},r+"_name",void 0),v(a,r+"_id",void 0),a)),n.setOptionsList(t,r))},n.checkId=function(e,t,n,r,a){var o=r.filter((function(e){return e.name===t}));t||n(),o&&o.length>0?n():n("请在下拉选项中选择正确的"+a+"!"),n()},n.changeMirrorCheck=function(){var e=n.state.mirrorCheck;n.setState({mirrorCheck:!e})},n.ChangeAddr=function(e){var t=e.target.value;if(t.indexOf("/")>-1){var r=t.split("/"),a=r[r.length-1];if(a.indexOf(".")>-1){var o=a.split(".")[0];if(!o)return;n.props.form.setFieldsValue({repository_name:o,name:o})}else n.props.form.setFieldsValue({repository_name:a})}},n.changeDesc=function(e){var t=e.target.value;n.setState({descNum:t?t.length:0})},n.showCateFunc=function(e){var t=n.state.CategoryList;n.setState({categoreFlag:e.target.checked}),e.target.checked&&(!t||t&&0===t.length)&&n.getCategory()},n.showLanguageFunc=function(e){var t=n.state.LanguageList;n.setState({languageFlag:e.target.checked}),e.target.checked&&(!t||t&&0===t.length)&&n.getLanguage()},n.showIgnoreFunc=function(e){var t=n.state.GitignoreList;n.setState({ignoreFlag:e.target.checked}),e.target.checked&&(!t||t&&0===t.length)&&n.getGitignore()},n.showLicenseFunc=function(e){var t=n.state.LicensesList;n.setState({licenseFlag:e.target.checked}),e.target.checked&&(!t||t&&0===t.length)&&n.getLicenses()},n.state={preType:"0",languageValue:"0",gitignoreType:"0",LicensesType:"0",mirrorCheck:!1,CategoryList:void 0,LanguageList:void 0,GitignoreList:void 0,LicensesList:void 0,OwnerList:void 0,isSpin:!1,project_language_id:void 0,project_category_id:void 0,license_id:void 0,ignore_id:void 0,owners_id:void 0,owners_name:void 0,project_language_list:void 0,project_category_list:void 0,license_list:void 0,ignore_list:void 0,owners_list:void 0,project_language_name:void 0,project_category_name:void 0,license_name:void 0,ignore_name:void 0,descNum:0,categoreFlag:!1,languageFlag:!1,ignoreFlag:!1,licenseFlag:!1},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),d(t,[{key:"render",value:function(){var e=this,t=this.props.form.getFieldDecorator,n=this.props.match.params.projectsType,s=this.state,u=s.CategoryList,p=s.LanguageList,d=s.GitignoreList,f=s.LicensesList,h=s.isSpin,b=s.owners_list,y=s.OwnerList,v=s.project_language_list,_=s.project_category_list,w=s.license_list,k=s.ignore_list,E=s.mirrorCheck,j=s.descNum,O=s.ignoreFlag,C=s.licenseFlag,S=s.languageFlag,F=s.categoreFlag;return g.default.createElement("div",{className:"main back-white",style:{padding:"0px",border:"none"}},g.default.createElement("div",{className:"newPanel"},g.default.createElement("div",{className:"newPanel_title"},n&&"mirror"===n?"导入":"新建","项目"),g.default.createElement(r.default,{spinning:h},g.default.createElement(l.default,null,g.default.createElement("div",{className:"newPanel_content"},n&&"mirror"===n&&g.default.createElement(g.default.Fragment,null,g.default.createElement(l.default.Item,{label:"导入仓库URL",style:{marginBottom:"0px"},colon:!1},t("clone_addr",{rules:[{required:!0,message:"请填写镜像版本库地址"}]})(g.default.createElement(c.default,{placeholder:"请输入需要导入到本项目的仓库地址",onBlur:this.ChangeAddr}))),g.default.createElement("p",{className:"formTip color-orange"},"示例:https://github.com/facebook/reack.git")),n&&"mirror"===n&&g.default.createElement("div",{className:"pb10"},g.default.createElement("p",{className:"mt10 mb10 color-grey-3 pointer",onClick:this.changeMirrorCheck},"需要授权验证",g.default.createElement("i",{className:E?"iconfont icon-xiajiantou font-13 ml10 color-grey-8":"iconfont icon-youjiantou font-13 ml10 color-grey-8"}),g.default.createElement("span",{className:"ml20 font-12 color-red"},"如果导入项目为私有仓库,则必须填写相应平台正确的用户名和密码")),E&&g.default.createElement("div",{className:"df mb10",style:{alignItems:"center"}},g.default.createElement("span",{className:"mr10"},"用户名"),g.default.createElement("input",{type:"password",style:{display:"none"}}),g.default.createElement(l.default.Item,{style:{marginBottom:"0px"},label:""},t("auth_username",{rules:[]})(g.default.createElement(c.default,{placeholder:"请输入对应平台的登录用户名",style:{width:"240px"}}))),g.default.createElement("span",{className:"mr10"},"密码"),g.default.createElement(l.default.Item,{style:{marginBottom:"0px"}},t("password",{rules:[]})(g.default.createElement(c.default.Password,{placeholder:"请输入对应平台的登录密码",autocomplete:"new-password",style:{width:"240px"}}))))),g.default.createElement(x.AlignCenter,null,g.default.createElement(l.default.Item,{label:"拥有者",style:{width:"260px"},colon:!1,className:"explainPos"},t("user_id",{rules:[{required:!0,message:"请选择拥有者"},{validator:function(t,n,r){return e.checkId(t,n,r,y,"拥有者")}}]})(g.default.createElement(i.default,{style:{width:"260px",height:"35px"},placeholder:"请选择拥有者",onChange:function(t,n){return e.ChangePlatform(t,n,"owners",y)},className:"plateAutoComplete",onBlur:function(t){return e.blurCategory(t,y,"owners")}},b))),g.default.createElement("span",{className:"ml10 mr10 mt10 font-18"},"/"),g.default.createElement(l.default.Item,{label:"项目名称",className:"flex1 explainPos",colon:!1},t("name",{rules:[{required:!0,message:"请填写项目名称"}]})(g.default.createElement(c.default,{placeholder:"例如:团队协作方法与研究",maxLength:50})))),g.default.createElement(l.default.Item,{label:g.default.createElement("span",null,"项目标识 ",g.default.createElement("span",{className:"color-grey-9"},"(项目url标识部分)")),colon:!1},t("repository_name",{rules:[{required:!0,message:"请填写项目标识"}]})(g.default.createElement(c.default,{placeholder:"项目标识请使用与项目相关的英文关键字",maxLength:100}))),g.default.createElement("div",{className:"pr"},g.default.createElement("span",{className:"toprightNum"},j,"/200"),g.default.createElement(l.default.Item,{label:"项目简介",colon:!1,style:{marginBottom:"0px"}},t("description",{rules:[]})(g.default.createElement(c.default.TextArea,{maxLength:200,placeholder:"项目的介绍",autoSize:{minRows:2,maxRows:6},onChange:this.changeDesc})))),("deposit"===n||!n)&&g.default.createElement(g.default.Fragment,null,g.default.createElement(l.default.Item,{className:"privatePart"},t("ignoreFlag")(g.default.createElement(o.default,{checked:O,onChange:function(t){return e.showIgnoreFunc(t)}},".gitignore"))),O&&g.default.createElement(l.default.Item,null,t("ignore",{rules:[{required:O,message:"请选择gitignore"},{validator:function(t,n,r){return e.checkId(t,n,r,d,"gitignore")}}]})(g.default.createElement(i.default,{placeholder:"请选择gitignore,用来定义哪些文件不需要添加到版本管理中",onChange:function(t,n){return e.ChangePlatform(t,n,"ignore",d)},className:"plateAutoComplete",onBlur:function(t){return e.blurCategory(t,d,"ignore")}},k))),g.default.createElement(l.default.Item,{className:"privatePart"},t("licenseFlag")(g.default.createElement(o.default,{checked:C,onChange:function(t){return e.showLicenseFunc(t)}},"开源许可证"))),C&&g.default.createElement(l.default.Item,null,t("license",{rules:[{required:C,message:"请选择开源许可证"},{validator:function(t,n,r){return e.checkId(t,n,r,f,"开源许可证")}}]})(g.default.createElement(i.default,{placeholder:"请选择开源许可证",onChange:function(t,n){return e.ChangePlatform(t,n,"license",f)},className:"plateAutoComplete",onBlur:function(t){return e.blurCategory(t,f,"license")}},w)))),g.default.createElement(l.default.Item,{className:"privatePart"},t("private")(g.default.createElement(o.default,{value:"limit"},"将项目设为私有",g.default.createElement("span",{className:"font-13 color-grey-9"},"(只有项目所有人或拥有权限的项目成员才能看到)")))),n&&"mirror"===n&&g.default.createElement(l.default.Item,{className:"privatePart"},t("is_mirror")(g.default.createElement(o.default,{value:"limit"},"该仓库将是一个",g.default.createElement("span",{className:"color-blue"},"镜像"),"(设置为镜像后,该项目为只读,不能进行push等相关操作)"))),g.default.createElement(l.default.Item,{style:{margin:"0px"},className:"privatePart"},t("categoreFlag")(g.default.createElement(o.default,{checked:F,onChange:function(t){return e.showCateFunc(t)}},"项目类别"))),F&&g.default.createElement(l.default.Item,{className:"privatePart"},t("project_category",{rules:[{required:F,message:"请选择项目类别"},{validator:function(t,n,r){return e.checkId(t,n,r,u,"项目类别")}}]})(g.default.createElement(i.default,{placeholder:"请选择项目类别",onChange:function(t,n){return e.ChangePlatform(t,n,"project_category",u)},className:"plateAutoComplete",onBlur:function(t){return e.blurCategory(t,u,"project_category")}},_))),g.default.createElement(l.default.Item,{className:"privatePart"},t("languageFlag")(g.default.createElement(o.default,{checked:S,onChange:function(t){return e.showLanguageFunc(t)}},"项目语言"))),S&&g.default.createElement(l.default.Item,null,t("project_language",{rules:[{required:S,message:"请选择项目语言"},{validator:function(t,n,r){return e.checkId(t,n,r,p,"项目语言")}}]})(g.default.createElement(i.default,{placeholder:"请选择项目语言",onChange:function(t,n){return e.ChangePlatform(t,n,"project_language",p)},className:"plateAutoComplete",onBlur:function(t){return e.blurCategory(t,p,"project_language")}},v))),g.default.createElement("div",{className:"mt20"},"注:",g.default.createElement("span",{className:"ant-form-item-required"})," 为必填项,否则为选填"),g.default.createElement(l.default.Item,{className:"formTip mt20"},g.default.createElement(a.default,{type:"primary",onClick:this.subMitFrom,className:"mr20"},n&&"mirror"===n?"导入":"创建","项目"),g.default.createElement(m.Link,{to:"/explore",className:"btn_32"},"取消")))))))}}]),t}(f.Component),k=l.default.create({name:"NewWorkForm"})(w);t.default=k},"O/iA":function(e,t,n){var r=n("SE3x");"string"==typeof r&&(r=[[e.i,r,""]]);var a={hmr:!0,transform:void 0};n("aET+")(r,a);r.locals&&(e.exports=r.locals)},O3gP:function(e,t,n){"use strict";n.r(t);n("cIOH"),n("O/iA"),n("OaEy"),n("5NDa")},QkTP:function(e,t,n){},SE3x:function(e,t,n){(t=n("JPst")(!1)).push([e.i,"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-select-auto-complete {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5;\n list-style: none;\n font-feature-settings: 'tnum';\n}\n.ant-select-auto-complete.ant-select .ant-select-selection {\n border: 0;\n box-shadow: none;\n}\n.ant-select-auto-complete.ant-select .ant-select-selection__rendered {\n height: 100%;\n margin-right: 0;\n margin-left: 0;\n line-height: 32px;\n}\n.ant-select-auto-complete.ant-select .ant-select-selection__placeholder {\n margin-right: 12px;\n margin-left: 12px;\n}\n.ant-select-auto-complete.ant-select .ant-select-selection--single {\n height: auto;\n}\n.ant-select-auto-complete.ant-select .ant-select-search--inline {\n position: static;\n float: left;\n}\n.ant-select-auto-complete.ant-select-allow-clear .ant-select-selection:hover .ant-select-selection__rendered {\n margin-right: 0 !important;\n}\n.ant-select-auto-complete.ant-select .ant-input {\n height: 32px;\n line-height: 1.5;\n background: transparent;\n border-width: 1px;\n}\n.ant-select-auto-complete.ant-select .ant-input:focus,\n.ant-select-auto-complete.ant-select .ant-input:hover {\n border-color: #6e90ff;\n border-right-width: 1px !important;\n}\n.ant-select-auto-complete.ant-select .ant-input[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n cursor: not-allowed;\n opacity: 1;\n background-color: transparent;\n}\n.ant-select-auto-complete.ant-select .ant-input[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px !important;\n}\n.ant-select-auto-complete.ant-select-lg .ant-select-selection__rendered {\n line-height: 40px;\n}\n.ant-select-auto-complete.ant-select-lg .ant-input {\n height: 40px;\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.ant-select-auto-complete.ant-select-sm .ant-select-selection__rendered {\n line-height: 24px;\n}\n.ant-select-auto-complete.ant-select-sm .ant-input {\n height: 24px;\n padding-top: 1px;\n padding-bottom: 1px;\n}\n.ant-input-group > .ant-select-auto-complete .ant-select-search__field.ant-input-affix-wrapper {\n display: inline;\n float: none;\n}\n",""]),e.exports=t},lrIw:function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return F}));var r=n("cDcd"),a=n("i+PK"),o=n("eHJ2"),i=n.n(o);function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(){return(c=Object.assign||function(e){for(var t=1;t li{\n list-style-type: decimal;\n color:#888;\n height:24px;\n line-height:24px;\n }\n}"],["{\n padding-left: 20px;\n & > li{\n list-style-type: decimal;\n color:#888;\n height:24px;\n line-height:24px;\n }\n}"]),E=L(["{\n color:#28BD6C!important;\n position:relative;\n &:after{\n position:absolute;\n bottom:-2px;\n left:0px;\n width:100%;\n height:1px;\n content:'';\n background:#28BD6C;\n }\n}"],["{\n color:#28BD6C!important;\n position:relative;\n &:after{\n position:absolute;\n bottom:-2px;\n left:0px;\n width:100%;\n height:1px;\n content:'';\n background:#28BD6C;\n }\n}"]),j=L(["{\n height:32px;\n line-height:32px;\n border-radius:2px;\n background-color:#BBBBBB;\n color:#fff;\n padding:0px 12px;\n display:inline-block;\n min-width:64px;\n text-align:center;\n letter-spacing: 4px;\n}"],["{\n height:32px;\n line-height:32px;\n border-radius:2px;\n background-color:#BBBBBB;\n color:#fff;\n padding:0px 12px;\n display:inline-block;\n min-width:64px;\n text-align:center;\n letter-spacing: 4px;\n}"]),O=L(["{\n width:1200px;\n margin:20px auto;\n text-align:center;\n display:flex;\n align-Items:center;\n background-color:#fff;\n justify-content: center;\n}"],["{\n width:1200px;\n margin:20px auto;\n text-align:center;\n display:flex;\n align-Items:center;\n background-color:#fff;\n justify-content: center;\n}"]),C=L(["{\n background:#fafafa;\n padding:20px 30px;\n width:100%;\n}"],["{\n background:#fafafa;\n padding:20px 30px;\n width:100%;\n}"]),S=n("vOnD"),F=(r=S)&&r.__esModule?r:{default:r};function L(e,t){return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}t.Banner=F.default.div(a),t.AlignCenterBetween=F.default.div(o),t.FlexAJ=F.default.div(i),t.AlignCenter=F.default.div(l),t.AlignTop=F.default.div(c),t.AlignAJBottom=F.default.div(s),t.Box=F.default.div(u),t.LongWidth=F.default.div(p),t.Long=F.default.div(d),t.ShortWidth=F.default.div(f),t.Short=F.default.div(g),t.Gap=F.default.div(m),t.WhiteBack=F.default.div(h),t.Blueline=F.default.a(x),t.Redline=F.default.a(b,(function(e){return e.bold?"#fff":"#F73030"}),(function(e){return e.bold?"#F73030":"#fff"})),t.Greenline=F.default.a(y,(function(e){return e.bold?"#fff":"#28BD6C"}),(function(e){return e.bold?"#28BD6C":"#fff"})),t.Greenback=F.default.a(v),t.Blueback=F.default.a(_),t.Redback=F.default.a(w),t.NumUl=F.default.ul(k),t.GreenUnder=F.default.a(E),t.Cancel=F.default.a(j),t.Content=F.default.div(O),t.GroupProjectBackgroup=F.default.div(C)}}]); \ No newline at end of file diff --git a/static/js/runtime~main.852876dd.js b/static/js/runtime~main.04837fff.js similarity index 94% rename from static/js/runtime~main.852876dd.js rename to static/js/runtime~main.04837fff.js index d4fbc5c43..5b4ee6edb 100644 --- a/static/js/runtime~main.852876dd.js +++ b/static/js/runtime~main.04837fff.js @@ -1 +1 @@ -!function(e){function d(d){for(var c,a,r=d[0],n=d[1],o=d[2],u=0,l=[];u